Spring Boot - Spring Project 관련

TopOfTheHead·2025년 10월 15일

Spring Boot

목록 보기
4/26

Spring Initializer

Spring Boot Project 생성 start.spring.io
Spring Boot 3은 최소한 Java 17의 버전을 필요로 한다.
SNAPSHOT 버전Spring Boot Team이 현재 개발하는 버전으로서 새로운것을 배울때 사용은 부적합.

Group ID : 프로젝트 그룹을 설정
프로젝트를 구분하는 용도로 보통 회사명을 기입 ex ) com.KTCloud
Artifact ID : 프로젝트최종 결과물 이름
▶ 보통 프로젝트명을 기입
Name : 프로젝트 이름
Description : 프로젝트 설명
Package name : 패키지명

Spring Project Package 기본 구성

  • src/build.gradle :
    Spring Project에 필요한 library , Dependency를 설정 시 사용하는 파일

  • src/main/java :
    Java Source Code가 위치하는 디렉토리

    src/main/java/{패키지}/ 별 기능별 디렉토리 명명법

    디렉토리명은 모두 소문자 작성이 관례

    • 컨트롤러 : ~/controller/도메인/컨트롤러클래스
      Controller Layer를 저장하는 디렉토리
      @Controller@RestController가 선언된 클래스를 저장

    • 서비스 : ~/service/도메인/서비스클래스
      Service Layer를 저장하는 디렉토리
      서비스 인터페이스@Service가 선언된 클래스를 저장

    • 레포지토리 : ~/service/도메인/레포지토리모듈
      Repository LayerDAO Class를 저장하는 디렉토리
      Repository와 관련된 @Repository가 선언된 JpaRepository 인터페이스구현 클래스 등을 저장

    • 설정 : ~/config/설정모듈
      설정 역할클래스를 저장하는 패키지
      DB Connection접속정보를 저장한 설정 클래스 등이 포함

      Spring에서는 주로 @Configuration이 선언된 Class를 저장

      설정파일이름Configuraion.Class 로 설정

    • 인프라 : ~/infra/모듈
      。각 Infra 모듈 ( 외부 API 모듈 등 )을 저장하는 디렉토리

    • ~/constants/상수모듈
      。각 enum 등을 저장하는 디렉토리

    • ~/exception/예외처리모듈
      。각 ExceptionHandler 등을 저장하는 디렉토리

    • ~/util/유틸모듈
      。사전 검증용 메서드개발자가 정의하여 공통적으로 유용하게 사용하는 모듈들을 저장

      코드블록 선택 후 F6을 눌러서 Util 클래스를 새로 생성 후 저장


    • ~/stereotype/모듈
      。여러 클래스에서 공통적으로 사용중인 기능을 정형화하는 모듈을 저장하는 패키지
      JdbcTemplate 처럼 템플릿 메서드 패턴 등을 사용하여 각 클래스에서 공통기능을 사용함으로써 발생하는 중복 코드를 제거하는 용도의 모듈 등이 저장됨.

    • 도메인 ( = 비즈니스모델) : ~/domain/도메인클래스

      。각 DB EntityBusiness Model 역할의 도메인 클래스를 저장하는 디렉토리

      DTO : ~/domain/dto
      DTO 역할의 Class를 저장하는 디렉토리

      ~/domain/dto/request : Request DTO를 저장

      ~/domain/dto/response : Response DTO를 저장



  • src/main/resources :
    Spring ProjectConfiguration 파일과 resource가 위치.
    (ex : html , css , 설정( application.properties ) 파일 등 )
    • application.yml :
      Application의 log level , profile , actuator 등 의 많은 세부설정을 정의하는 configuration file
      application.yml로 설정이 가능

    • src/main/resources/static :
      이미지, js 등의 정적파일을 저장하는 디렉토리
      Spring Bootjs 파일 참조 시 src/main/resources/static을 기준으로 참조

    • src/main/resources/templates :
      템플릿 관련 파일( html, jsp 등 )을 저장하는 디렉토리
      ▶ 주로 서버에서 사용됨

      View Resolver에서 jsp 파일 또는 thymeleaf를 조회시의 기본디렉터리 경로


  • src/test/java :
    어플리케이션의 전반적인 Test code가 위치하는 디렉토리
    JUnit, Mockito등에 의해 수행되는 Unit Test Code를 해당 디렉토리에 작성.

    Business Logic이 구현된 src/main/java하위 package 경로와 동일

    src/mainClass에서 ctrl + shift + T의 단축키를 입력 시 해당 Class 대응하는 Test Class로 진입 가능
    Test Class명메인Class명Test로 지정

    어플리케이션 실행 시 src/test파일을 참조할 수 없다
    gradle에 의해 빌드 시 해당 src/test 파일이 포함되지않으므로, src/test 파일을 참조할 수 없다.

Spring Project 명 변경
Projectsettings.gradle에서 rootProject.name=이름으로 변경

profile
공부기록 블로그

0개의 댓글