JPA 추가하기 — MenuRepository 로 첫 API 만들기
대상 JdbcTemplate 실습을 마치고 Spring Boot 기본 구조와 3계층 구조를 아는 사람
목표 스프링 부트 webmvc 프로젝트에 JPA 를 추가하고
MenuRepository를 통해/api/v1/admin/menusAPI 를 구현한다완성물
POST /api/v1/admin/menus로 데이터를 저장하고GET /api/v1/admin/menus로 조회하는 실행 가능한 애플리케이션
- Spring Boot 4.1, Java 21, Gradle 이 설치되어 있어야 한다.
- Docker 가 실행되고 있고 PostgreSQL 컨테이너가 떠 있어야 한다.
application.properties만 사용해봐서 YAML 형식은 처음인 상태다.- 패키지명은
com.new-cafe.backend로 통일한다.
STEP 1 / 7JPA 의존성 추가
0개 완료 · 7개 남음
깔끔하게 새로 시작한 여러분의 조별 ncafe 프로젝트에 JPA 라이브러리 설정하고 데이터베이스를 사용해볼 차례이다.
가장 먼저
build.gradle에spring-boot-starter-data-jpa를 추가한다. 이 의존성이 JPA 구현체(Hibernate) 와 Spring Data JPA 를 함께 가져온다.1-1. build.gradle 수정
파일:
build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'org.postgresql:postgresql' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }1-2. Gradle 동기화
IDEA 또는 VSCode 의 Gradle 패널에서 "Sync" 버튼을 누르거나 터미널에서 아래 명령을 실행한다.
./gradlew dependencies --configuration runtimeClasspath | grep jpaWindows 는
gradlew.bat dependencies --configuration runtimeClasspath | findstr jpa✅ 확인
- 터미널에
org.hibernate.orm:hibernate-core와org.springframework.data:spring-data-jpa가 출력된다. - IDE 의 External Libraries 에
hibernate-core가 보인다.
🎓 newlec 쌤의 코멘트
spring-boot-starter-data-jpa는 JPA 스펙을 구현하는 Hibernate 와, JPA 리포지토리를 자동 생성하는 Spring Data JPA 를 한 번에 가져온다. JdbcTemplate 실습 때처럼spring-boot-starter-jdbc만으로는 엔티티 매핑이나 리포지토리 인터페이스 자동 생성이 안 된다. 이 단계에서 의존성만 추가해도 아직 코드가 없으므로 에러는 안 난다.❌ 자주 하는 실수
증상 원인 해결 Could not resolve org.springframework.boot:spring-boot-starter-data-jpaGradle 캐시 문제 또는 네트워크 차단 ./gradlew clean후 다시 동기화, 또는 프록시 설정 확인Lombok annotation processor not foundLombok 의존성 누락 compileOnly와annotationProcessor두 줄 모두 확인📝 이 단계의 핵심
spring-boot-starter-data-jpa가 Hibernate 와 Spring Data JPA 를 함께 가져온다.- 의존성 추가 후 반드시 Gradle 동기화를 해야 IDE 가 인식한다.
- 터미널에