ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring boot 게시판 (gradle, mybatis) #0
    개발(게시판 프로젝트)/낙서장 2022. 8. 16. 16:13

     

    포스팅 전...

    다른 일을 하면서 혼자 프로젝트를 진행하는게 생각보다 쉽지 않다.. (해봤자 게시판 따위지만...)

    대학교때 했던 프로젝트는 오래?되어서 해당 코드를 복기하는건 시간낭비라 판단, 혼자 게시판 프로젝트 만들어보며 포트폴리오 준비 중..

    처음엔 프로젝트 시작 전 관련 기술들을 정리하여 포스팅하고 중간점검, 리뷰 등을 할 생각이었지만 이마저도 실천하기 쉽지 않음.

    늦었지만 지금이라도 정리해서 글을 남겨 놓으려고 한다.

     

    개발환경 및 기술

    운영체제 : Mac

    JAVA 11

    IDE - STS4 (Spring Tool Suite4)

    spring boot(2.7.1), gradle, mybatis, bootstrap

    AWS - RDS(Maria DB), EC2

     

    *주요 기능

    - 로그인 (Spring Security)

    - 회원가입 (일반 회원, 소셜 회원(미구현) )

    - 글쓰기, 글수정 (회원만 글 작성 가능)

    - 댓글 (회원만 댓글 작성 가능)

    - 페이징

    - 파일 업로드 (미구현)

     

     

    초기 프로그램 설치 과정은 생략


    프로젝트 (패키지) 구조

    application.yml 파일

    # UTF-8 설정
    server:
      servlet:
        encoding:
          charset: UTF-8
          force: true
    # mybatis 설정
    mybatis:
      type-aliases-package: com.jongeon.mybatisboard
      # mybatis mapper 파일 위치 설정
      mapper-locations: mybatis-mapper/**/*.xml
    
    spring:
      datasource:
        #mariadb
        hikari:
          driver-class-name: org.mariadb.jdbc.Driver
          username: 아이디
          jdbc-url: db주소
          password: '패스워드'
    
    #thymeleaf
      thymeleaf:
        cache: 'false'
      freemarker:
        cache: 'false'
      #devtools 
      devtools:
      ## 자동재시작 사용여부
    # classpath 감지 주기 설정(선택사항) 서버재시작 주기를 길게 하려면 숫자 변
    # poll-interval 값은 항상 quiet-period 보다 커야한다.
    #spring.devtools.restart.poll-interval=2s
    #spring.devtools.restart.quiet-period=1s
        restart:
          enabled: 'true'
      # 새로고침 서버 재시작 옵션       
        livereload:
          enabled: 'true'
    
      #Spring Security 기본 계정(user) id, pwd 설정    
      security:
        user:
          name: user
          password: 0000

     

    build.gradle 파일

    plugins {
        id 'org.springframework.boot' version '2.7.1'
        id 'io.spring.dependency-management' version '1.0.11.RELEASE'
        id 'java'
    }
    
    group = 'com.jongeon.mybatisboard'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '11'
    
    configurations {
        compileOnly {
            extendsFrom annotationProcessor
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        // ##### jdbc #####
        implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    
        // ##### Thymeleaf #####
        // Thymeleaf layout 의존성 추가
        implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
        implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.1.0'
    
        // Spring 프로젝트에 필요한 대부분의 라이브러리가 추가 됨 (Starter-web)
        implementation 'org.springframework.boot:spring-boot-starter-web'
    
        // ##### Mybatis #####
        implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
    
        // ########## Spring Security 사용을 위한 의존성 추가 (starter-security)
        //스프링 시큐리티 인증을 받은 로그인 한 사용자의 정보를 타임리프에서 사용하고 싶을 때 사용
        implementation 'org.springframework.boot:spring-boot-starter-security'
        implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
    
        // ##### lombok #####
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
    
        // ##### Devtools #####
        // 브라우저로 전송되는 내용들에 대한 코드가 변경되면
        // 자동으로 어플리케이션을 재시작
        // 브라우저에도 업데이트를 해주는 역할을 한다.
        developmentOnly 'org.springframework.boot:spring-boot-devtools'
    
        // ##### MariaDB #####
        runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
        annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    
        // Test 환경 구성을 위한 의존성 주입, 테스트 코드를 수행할 때만 적용
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    
    tasks.named('test') {
        useJUnitPlatform()
    }
    

     


    *해당 게시판 프로젝트는 spring boot 사용 방법을 알아가기 진행 (연습용?)
    *소스코드가 미흡하고 효율적이지 못할 수 있습니다.

     

    github : https://github.com/KimJongEon/2022MyBatisBoard

     

    GitHub - KimJongEon/2022MyBatisBoard: 2022MyBatisBoard

    2022MyBatisBoard. Contribute to KimJongEon/2022MyBatisBoard development by creating an account on GitHub.

    github.com

    ERD 참고

    https://www.erdcloud.com/d/pjs8fdRuTahNoy3xs

     

    2022_게시판 프로젝트

    Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

    www.erdcloud.com

     

Designed by Tistory.