회원 가입, 로그인, 게시판 CRUD를 구현 해보자

 

구성 환경

 

SpringBoot, Gradle, Thymeleaf, Jpa(JPQL), jar, H2

 

Type Gradle Project
Language  Java
Packaging Jar
Java Version 11
Group com.board
Artifact 프로젝트명, board
Version Spring Boot 2.7.3
Package Name com.board
Developer Tools Lombok
SQL H2Driver
Template Engines Thymeleaf
Web Spring Web

https://start.spring.io/ 사용

Spring 을 사용할 예정이기에 Spring Web 추가 , 사용의 편리를 위한 Lombok

DB 를 위해 H2 Database 를 추가 , JPA 추가

템플릿 엔진으로는 Thymeleaf 추가

 

Lombok 사용을 위해 설정 -> Annotation Processors 검색 -> Enable annotation processing 선택

 

 

 

H2 DB 설정

 

application.properties

# H2 설정
spring.datasource.url=jdbc:h2:tcp://localhost/~/board
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver

# JPA 설정
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.format_sql=true


# Log 설정
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type=trace

 

 

build.gradle

plugins {
   id 'org.springframework.boot' version '2.7.3'
   id 'io.spring.dependency-management' version '1.0.13.RELEASE'
   id 'java'
}

group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
}

repositories {
   mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
   implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
   implementation 'org.springframework.boot:spring-boot-starter-web'

   implementation 'org.springframework.boot:spring-boot-devtools'
   implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
   
   compileOnly 'org.projectlombok:lombok'
   runtimeOnly 'com.h2database:h2'
   annotationProcessor 'org.projectlombok:lombok'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
   useJUnitPlatform()
}

devtools 는 html 을 수정하는 경우 , 서버를 재시작 하지 않고 보여주는 툴 -> 선택

p6spy 는 SQL 실행 파라미터를 로그로 남기기 때문에 입력한 값이 ? ? 가 아닌 실제 값으로 표현 -> 선택( 운영 단계에서는 성능 테스트 해보고 적용 )

 

 

 

 

H2 DB 실행

 

ERD

 

Member 테이블과 Board 테이블 두 개의 테이블 1:N 관계로 구성하였다.

더 많은 테이블과 엔티티는 추후에 필요한 경우 점차 추가해 나가 본다.

복사했습니다!