미니 프로젝트/게시판

[Java] 게시판 ① 설계

웹개발자(진) 2024. 5. 16. 16:09
반응형

1. 작업 환경

IntelliJ IDEA 2024.1
Springboot 3.2.5
Oracle Open JDK 17.0.9
queryDslVersion 5.0.0
MariaDB 10.6 UTF-8
Gradle

 


 

2. build.gradle

웹 애플리케이션 개발 관련:

implementation 'org.springframework.boot:spring-boot-starter-web'
: 스프링 부트에서 제공하는 웹 애플리케이션 개발을 위한 스타터 라이브러리입니다.

DB 관련:

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
: 스프링 부트에서 제공하는 JPA 데이터 지원을 위한 스타터 라이브러리입니다.
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
: MariaDB JDBC 드라이버를 런타임 시에만 사용합니다.

템플릿 엔진 및 레이아웃 관련:

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
: 스프링 부트에서 제공하는 Thymeleaf 템플릿 엔진을 사용하기 위한 스타터 라이브러리입니다.
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '3.0.0'
: Thymeleaf 레이아웃 디알렉트 라이브러리를 추가합니다.

테스트 관련:

testImplementation 'org.springframework.boot:spring-boot-starter-test'
: 테스트 시에 사용되는 스프링 부트 테스트 스타터 라이브러리입니다.
testCompileOnly 'org.projectlombok:lombok'
: 테스트 시에만 사용되는 롬복 라이브러리입니다.
testAnnotationProcessor 'org.projectlombok:lombok'
: 테스트 시에도 롬복을 사용하기 위한 어노테이션 프로세서를 추가합니다.

개발자 도구 관련:

compileOnly 'org.projectlombok:lombok'
: 개발 시에만 사용되는 롬복 라이브러리입니다.
developmentOnly 'org.springframework.boot:spring-boot-devtools'
: 개발 시에만 사용되는 스프링 부트 개발 도구입니다.

기타:

implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
: QueryDSL JPA 라이브러리를 추가합니다.
annotationProcessor(...)
: QueryDSL을 사용하기 위한 어노테이션 프로세서들을 추가합니다.
implementation 'org.modelmapper:modelmapper:3.1.1'
: 모델 매퍼(ModelMapper) 라이브러리를 추가합니다.

 


 

3. 프로젝트 구조

Entity를 활용하여 DB를 Springboot안에서 만들고 수정한다.

Controller를 통해 GET/POST 방식으로 model에 값을 담아서 thymeleaf를 이용해서 View를 출력한다.

RootConfig에 Mapping 정보를 미리 만들어 Service에서 mapping을 진행한다.

thymeleaf는 미리 layout을 정해 일정한 형태의 출력을 가지게 한다.

project_root
│    └── config
│       └── RootConfig
│    └── Controller
│       └── BoardController
│    └── domain
│       ├── BaseEntity
│       └── Board
│    └── dto
│       ├── BoardDTO
│       ├── pageResposeDTO
│       └── PageRequestDTO
│    └── repository
│       └── search
│       	└── BoardSearch
│       	└── BoardSearchImpl
│       └── BoardRepository
│    └── Serivce
│       ├── BoardService
│       └── BoardServiceImpl
│ 	 Application
│
│
├── resource
│      └── templates
│      		└── board
│      			└── list.html
│      		└── layout
│            		└── basic.html
│
└── application.properties

 


 

4. DB구조

사용자가 입력한 정보를 DB에 담고 필요한 정보를 DB에서 불러오는 형태로 프로젝트를 진행하였다.


 


 

 

반응형