Spring Boot 프로젝트의 구조

김형진·2024년 3월 10일

Spring

목록 보기
14/15
post-thumbnail

1. 프로젝트 구조 개요

my-spring-boot-project/
│
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myproject/
│   │   │               ├── controller/
│   │   │               ├── dto/
│   │   │               ├── entity/
│   │   │               ├── repository/
│   │   │               ├── service/
│   │   │               └── MySpringBootApplication.java
│   │   │
│   │   └── resources/
│   │       ├── static/
│   │       ├── templates/
│   │       ├── application.properties
│   │       └── logback.xml
│   │
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── myproject/
│                       └── MySpringBootApplicationTests.java
│
└── pom.xml

2. 주요 디렉토리와 파일

  • src/main/java: Java 소스 코드를 보관하는 디렉토리입니다. 주요 패키지 구조는 다음과 같습니다:

    • controller: 웹 요청을 처리하는 컨트롤러 클래스를 저장합니다.
    • dto: 데이터 전송 객체를 저장합니다.
    • entity: 데이터베이스의 테이블과 매핑되는 엔티티 클래스를 저장합니다.
    • repository: 데이터베이스와 상호작용하는 리포지토리 인터페이스를 저장합니다.
    • service: 비즈니스 로직을 처리하는 서비스 클래스를 저장합니다.
    • MySpringBootApplication.java: Spring Boot 애플리케이션의 진입점이 되는 메인 클래스입니다.
  • src/main/resources: 애플리케이션 설정 파일 및 정적 리소스를 보관하는 디렉토리입니다.

    • src/main/resources/static: 정적 리소스 파일(이미지, CSS, JavaScript 등)을 보관하는 디렉토리입니다.
    • src/main/resources/templates: Thymeleaf나 Freemarker와 같은 템플릿 엔진을 사용할 때 HTML 템플릿 파일을 보관하는 디렉토리입니다.
    • application.properties: 애플리케이션의 설정을 포함하는 파일입니다.
      logback.xml: Logback을 사용하여 로깅 설정을 구성하는 파일입니다.
    • src/main/resources/db/migration: 데이터베이스 마이그레이션 스크립트를 보관하는 디렉토리입니다. Flyway나 Liquibase와 같은 마이그레이션 도구를 사용할 때 주로 활용됩니다.
  • src/test/java: 테스트 소스 코드를 보관하는 디렉토리입니다. 일반적으로는 단위 테스트 및 통합 테스트 클래스가 여기에 위치합니다.

  • pom.xml: Maven 프로젝트의 설정 파일로, 프로젝트의 종속성 및 빌드 설정을 정의합니다.

3. 마치며

Spring Boot 프로젝트의 구조는 개발자와 팀이 프로젝트를 효율적으로 관리하고 협업할 수 있도록 잘 설계되어야 합니다. 각 디렉토리와 파일은 명확한 역할을 갖고 있으며, 이를 준수하여 프로젝트를 구성함으로써 유지보수성과 확장성을 높일 수 있습니다.

0개의 댓글