회원 가입, 로그인, 게시판 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 |
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 관계로 구성하였다.
더 많은 테이블과 엔티티는 추후에 필요한 경우 점차 추가해 나가 본다.
'프로젝트 > 게시판' 카테고리의 다른 글
V2 - 도메인 생성, Member테스트#2 (0) | 2022.09.05 |
---|---|
V1 - 수정, 삭제 구현하기 (0) | 2022.09.05 |
V1 - 등록, 상세, 리스트 페이지 구현하기 (0) | 2022.09.03 |
V1 - 테스트 코드 작성 (0) | 2022.08.27 |
V1 - JPA CRUD, MySQL (0) | 2022.08.25 |