Spring Boot 기초를 익히기 위해 만든 게시판 CRUD API 프로젝트입니다.
- Language: Java 17
- Framework: Spring Boot 4.0.8
- DB / ORM: MySQL, Spring Data JPA (Hibernate)
- Build Tool: Gradle
- 편의 라이브러리: Lombok
- 테스트 도구: Postman
계층형(Layered) 구조로 구현했습니다.
board/
├── domain/ # Post (게시글 Entity, DB 테이블과 매핑)
├── repository/ # PostRepository (JpaRepository 상속, DB 접근 담당)
├── service/ # PostService (비즈니스 로직 담당)
└── controller/ # PostController, PostRequest (외부 요청 처리)
각 계층의 역할을 분리했습니다.
| 계층 | 역할 |
|---|---|
domain |
게시글 데이터의 모양(틀) 정의, DB 테이블과 매핑 |
repository |
DB 저장/조회/삭제 등 데이터 접근 전담 (JpaRepository로 기본 CRUD 자동 구현) |
service |
"무엇을, 어떻게 처리할지" 판단하는 비즈니스 로직 |
controller |
외부 HTTP 요청을 받아 Service로 전달하는 창구 |
| 기능 | Method | URL | Request Body | 설명 |
|---|---|---|---|---|
| 글 작성 | POST |
/posts |
{ title, content, author } |
게시글 생성 |
| 목록 조회 | GET |
/posts |
- | 전체 게시글 조회 |
| 상세 조회 | GET |
/posts/{id} |
- | 특정 게시글 조회 |
| 수정 | PUT |
/posts/{id} |
{ title, content } |
게시글 수정 |
| 삭제 | DELETE |
/posts/{id} |
- | 게시글 삭제 |