-
002. Spring 기본구조IT 공부방 [기본지식 정리]/Spring JPA 2025. 4. 14. 13:48
1. Gradle / Maven 빌드 보조 도구로 라이브러리를 자동 참조시킨다.
2. Maven 기본 구조를 가지고 있기에 초기화되면 아래와 같은 구조를 가진다.
project-root/ ├── src/ │ ├── main/ │ │ └── java/ → 실제 애플리케이션 코드 (컴파일 대상) │ └── test/ │ └── java/ → 테스트 코드 (JUnit, Mockito 등) ✅ Gradle은 왜 src/test/java만 테스트로 인식할까? Gradle은 컴파일 대상과 테스트 대상을 나눠서 관리합니다. 이걸 sourceSets라고 부르는데, 기본 설정은 이렇게 되어 있어요: Gradle의 기본 sourceSets sourceSets { main { java { srcDirs = ['src/main/java'] } } test { java { srcDirs = ['src/test/java'] } } } [gradle.build] > testImplementation 'org.springframework.boot:spring-boot-starter-test' (추가) 여기서 testImplementation 은 test sourceSet에만 적용되는 스코프입니다. 즉, src/main/java에 있는 클래스에서는 이걸 인식하지 못해요.
*) 실제 시스템 구성 예시
my-app/ ├── build.gradle ├── settings.gradle ├── gradle/ # Gradle Wrapper 관련 설정 (옵션) ├── gradlew # Gradle 실행 스크립트 (Unix) ├── gradlew.bat # Gradle 실행 스크립트 (Windows) └── src/ ├── main/ │ ├── java/ │ │ └── com/jaybee/myapp/ │ │ ├── MyAppApplication.java # 메인 클래스 │ │ ├── controller/ │ │ ├── service/ │ │ ├── repository/ │ │ └── domain/ # 엔티티 클래스들 │ └── resources/ │ ├── application.yml # 설정 파일 │ ├── static/ # 정적 리소스 (HTML, JS, CSS) │ └── templates/ # Thymeleaf 템플릿 └── test/ ├── java/ │ └── com/jaybee/myapp/ │ ├── controller/ │ ├── service/ │ └── repository/ │ └── UserRepositoryTest.java └── resources/ └── application-test.yml # 테스트용 설정 파일
테스트 코드에서는 메인에 있는 엔티티(Entity)를 그대로 가져다 씁니다.
별도로 만들지 않고, 메인 코드의 실제 Entity, Repository, Service 등 모두를 테스트 대상으로 사용함.
-> 단, 리포지토리나 리포지토리에서 사용할 resource들만 커스텀하여 별도로 관리하고 활용함.3. JAVA 프로젝트 구성 중 체크사항
Java 21 환경 세팅 완료 (Gradle 8.13로 업그레이드) ✅ Gradle Wrapper 수정 완료 (gradle-wrapper.properties) ✅ Spring Boot + JPA 의존성 설정 완료 ✅ MySQL 외부 DB 연결 성공 (allowPublicKeyRetrieval=true 등 설정 반영) ✅ application.properties 설정 정상 작동 ✅ 테스트 통과 확인 build, test 성공 ✅ Entity/Repository 구조 동작 확인 ✅ 오류 핸들링 age not null 문제 등 디버깅 완료 'IT 공부방 [기본지식 정리] > Spring JPA' 카테고리의 다른 글
001. JPA란? (1) 2025.04.14 099. Spring JPA 에러 (0) 2025.04.14 000. Spring JPA - MVC 패턴 설계 (1) 2025.04.09