ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.