학습한 내용 정리 — 스프링 부트 3 구조 & 애플리케이션 개발
1. 스프링 부트 3 프로젝트 기본 구조
•
src/main/java : 메인 자바 코드 파일
•
src/main/resources : 설정 파일, 정적 리소스
•
application.properties / application.yml : 애플리케이션 설정
•
pom.xml (Maven) / build.gradle (Gradle) : 의존성 관리 파일
2. 계층별 구조 및 역할
계층 | 역할 | 주요 애노테이션 |
Controller | 클라이언트 요청 수신 및 응답 처리 | @RestController, @RequestMapping, @GetMapping, @PostMapping |
Service | 비즈니스 로직 처리 | @Service |
Repository | 데이터베이스 접근 처리 | @Repository, JpaRepository |
Entity | DB 테이블과 매핑되는 객체 | @Entity, @Id, @GeneratedValue |
DTO | 계층 간 데이터 전달용 객체 | (일반 클래스) |
3. 주요 개념 정리
Entity (엔티티)
•
DB 테이블과 1:1 매핑되는 JPA 객체
•
@Entity, @Table, @Id 등의 애노테이션 사용
•
데이터베이스 구조를 반영
DTO (Data Transfer Object)
•
Controller
Service 계층 간 데이터 전달
•
엔티티의 민감한 정보 보호
•
JSON 형태로 클라이언트와 통신할 때 사용
JPA Repository
•
Spring Data JPA의 기본 CRUD 제공
•
JpaRepository<Entity, ID> 상속
•
findById(), save(), delete() 등 자동 제공
H2 Database
•
인메모리 데이터베이스로 빠른 테스트 가능
•
애플리케이션 실행 시 자동 생성
•
/h2-console로 데이터 확인 가능
•
종료 시 데이터 삭제됨
RESTful API 구현
•
GET : 조회
•
POST : 생성
•
PUT : 전체 수정
•
DELETE : 삭제
Postman API 테스트
•
다양한 HTTP 메서드 테스트 가능
•
Body에 JSON 입력 후 요청/응답 확인 가능
4. 연습문제 정답
1.
비즈니스 로직을 처리하는 계층은?
→ 서비스 계층
2.
HTTP 요청을 받아 비즈니스 계층으로 전달하는 계층은?
→ 프레젠테이션 계층
3.
데이터 처리를 담당하는 계층은?
→ 퍼시스턴스 계층
4.
요청/응답 흐름 중 틀린 단계는?
→ 2번 (URL 매핑은 Controller가 직접 수행하지 않고 DispatcherServlet이 처리함)