Spring Initializr의 표준 폴더 구조

  • 6 minutes to read

Spring Initializr는 Spring Boot 애플리케이션을 신속하게 시작할 수 있도록 도와주는 도구입니다. Spring Initializr를 사용하여 생성된 프로젝트는 Maven 또는 Gradle을 빌드 도구로 선택할 수 있으며, 표준 폴더 구조를 따릅니다. 이 구조는 코드, 리소스, 테스트 파일 등을 명확하게 분리하여 프로젝트를 체계적으로 관리할 수 있게 합니다. 아래는 Spring Initializr를 통해 생성된 프로젝트의 표준 폴더 구조에 대한 설명입니다.

Spring Initializr 프로젝트의 표준 폴더 구조

java-campus/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── javacampus/
│   │   │               ├── JavaCampusApplication.java
│   │   ├── resources/
│   │       ├── application.properties
│   │       ├── static/
│   │       └── templates/
│   └── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── javacampus/
│       │               └── JavaCampusApplicationTests.java
├── .gitignore
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

주요 디렉터리와 파일 설명

  1. java-campus/: 프로젝트의 루트 디렉터리입니다. Spring Initializr를 통해 생성된 모든 파일과 디렉터리가 이 안에 위치합니다.

  2. src/: 소스 파일이 포함된 디렉터리입니다. maintest 디렉터리로 나누어져 있습니다.

    • main/: 애플리케이션의 주요 코드와 리소스 파일들이 들어갑니다.

      • java/: Java 소스 코드가 포함됩니다. 패키지 구조에 따라 디렉터리가 생성되며, 일반적으로 도메인 이름을 반대로 사용한 디렉터리 구조를 따릅니다. 이 안에 실제 애플리케이션 클래스와 관련된 모든 Java 파일이 위치합니다.
      • resources/: 애플리케이션에서 사용하는 리소스 파일들이 위치합니다. 이 디렉터리는 다음과 같은 하위 디렉터리를 포함할 수 있습니다:
        • application.properties: 애플리케이션의 기본 설정 파일입니다. Spring Boot의 설정 값을 정의할 수 있습니다.
        • static/: 정적 자원(예: HTML, CSS, JavaScript, 이미지 파일)이 위치하는 디렉터리입니다. Spring Boot는 이 디렉터리에 있는 파일을 자동으로 제공할 수 있습니다.
        • templates/: Thymeleaf와 같은 템플릿 엔진에서 사용하는 템플릿 파일이 위치합니다. 이 디렉터리의 파일들은 웹 애플리케이션의 뷰로 렌더링됩니다.
    • test/: 테스트 코드가 포함된 디렉터리입니다.

      • java/: 테스트용 Java 소스 코드가 포함됩니다. src/main/java/와 동일한 패키지 구조를 따르며, JUnit이나 TestNG와 같은 테스트 프레임워크를 사용하는 테스트 클래스가 이곳에 위치합니다.
  3. .gitignore: Git을 사용할 때 버전 관리에서 제외할 파일과 디렉터리를 지정하는 파일입니다. 일반적으로 IDE 설정 파일, 빌드 아티팩트, 로컬 환경 파일 등이 포함됩니다.

  4. mvnw, mvnw.cmd: Maven Wrapper 스크립트입니다. 프로젝트의 특정 Maven 버전을 사용하여 빌드할 수 있게 해주는 도구로, 로컬에 Maven이 설치되어 있지 않아도 이 스크립트를 통해 Maven 명령을 실행할 수 있습니다.

  5. pom.xml: Maven 프로젝트의 구성 파일입니다. 의존성 관리, 빌드 설정, 플러그인 설정 등을 정의하며, 프로젝트를 빌드하고 배포하는 데 필요한 정보를 포함합니다.

  6. README.md: 프로젝트에 대한 설명을 담고 있는 마크다운 형식의 파일입니다. 일반적으로 프로젝트의 개요, 설치 방법, 사용 방법 등을 설명하는 내용이 포함됩니다.

추가 설명

  • 패키지 구조: com.example.javacampus과 같은 패키지 구조는 Spring Initializr에서 프로젝트를 생성할 때 제공된 그룹 ID와 아티팩트 ID에 따라 자동으로 생성됩니다. 이 구조는 프로젝트 내 클래스 파일들을 논리적으로 분리하고 관리하는 데 도움을 줍니다.

  • 자원 관리: src/main/resources/ 디렉터리는 애플리케이션이 실행될 때 클래스패스에 포함되므로, 리소스 파일을 쉽게 참조할 수 있습니다. 예를 들어, application.properties 파일에서 설정 값을 읽거나, 정적 자원(예: HTML 파일)을 제공하는 데 사용됩니다.

Spring Initializr에서 생성된 표준 폴더 구조는 Spring Boot 프로젝트를 체계적으로 관리하고, 유지보수하는 데 도움을 줍니다. 이 구조를 잘 이해하고 활용하면, Spring Boot 애플리케이션을 보다 효율적으로 개발할 수 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com