자바 프로그래밍 3주차 학습일지

학습한 내용 정리 — 스프링 부트 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이 처리함)