스프링 부트(Spring Boot)는 자바 기반의 애플리케이션 개발을 간소화하기 위해 제공되는 프레임워크로, 프로젝트의 디렉토리 구조와 설정 파일 관리가 효율적인 개발의 핵심입니다. 이번 글에서는 스프링 부트 프로젝트의 기본 디렉토리 구조와 설정 파일인 application.properties 및 application.yml에 대해 살펴보겠습니다.
스프링 부트 프로젝트의 기본 디렉토리 구조
스프링 부트 프로젝트를 생성하면 다음과 같은 디렉토리 구조가 기본적으로 생성됩니다:
my-spring-boot-project/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── MySpringBootApplication.java
│ │ ├── resources/
│ │ ├── application.properties
│ │ └── static/
│ │ └── templates/
│ ├── test/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── MySpringBootApplicationTests.java
│ └── resources/
├── build.gradle (또는 pom.xml)
└── README.md각 디렉토리와 파일의 역할은 다음과 같습니다:
src/main/java/: 애플리케이션의 주요 소스 코드를 포함합니다.src/main/resources/: 설정 파일과 정적 리소스(예: HTML, CSS, 이미지 등)를 포함합니다.src/test/: 테스트 코드를 포함합니다.build.gradle또는pom.xml: 프로젝트의 빌드 설정 파일로, Gradle 또는 Maven을 사용할 경우 각각 존재합니다.
설정 파일: application.properties와 application.yml
스프링 부트에서는 애플리케이션의 설정을 외부 파일로 관리하여 환경에 따라 유연하게 변경할 수 있습니다. 대표적인 설정 파일로 application.properties와 application.yml이 있습니다.
application.properties
application.properties 파일은 키-값 쌍(key=value) 형태로 설정을 정의합니다. 예를 들어, 서버 포트와 데이터베이스 연결 정보를 다음과 같이 설정할 수 있습니다:
# 서버 설정
server.port=8080
# 데이터베이스 설정
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret이러한 형식은 단순하고 직관적이지만, 계층 구조를 표현하기에는 다소 불편할 수 있습니다.
application.yml
application.yml 파일은 YAML 형식을 사용하여 계층적 구조로 설정을 정의합니다. 동일한 설정을 YAML 형식으로 표현하면 다음과 같습니다:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
YAML 형식은 계층 구조를 들여쓰기로 표현하여 가독성이 높고, 복잡한 설정을 보다 명확하게 작성할 수 있습니다.
application.properties와 application.yml의 비교
두 파일의 주요 차이점은 다음과 같습니다:
| 항목 | application.properties |
application.yml |
|---|---|---|
| 문법 | 키-값 쌍 (key=value) |
계층적 구조 (key: value) |
| 가독성 | 단순하지만 복잡한 설정에는 불편할 수 있음 | 계층 구조로 인해 가독성이 높음 |
| 주석 작성 | # 또는 ! 사용 |
# 사용 |
| 복잡한 데이터 구조 지원 | 제한적 | 배열, 맵 등 복잡한 구조를 간결하게 표현 가능 |
스프링 부트는 두 형식을 모두 지원하며, 프로젝트의 특성과 개발자의 선호도에 따라 선택할 수 있습니다.
결론
스프링 부트 프로젝트의 디렉토리 구조와 설정 파일은 애플리케이션의 유지보수성과 확장성에 큰 영향을 미칩니다. 기본 디렉토리 구조를 이해하고, application.properties와 application.yml의 특징을 파악하여 프로젝트에 적합한 설정 방식을 선택하는 것이 중요합니다.
더 자세한 내용은 Spring Boot 공식 문서를 참고하시기 바랍니다.
'SpringBoot' 카테고리의 다른 글
| Spring Boot: HTTP 메서드와 매핑 (1) | 2024.11.12 |
|---|---|
| Spring Boot: RESTful API란? (0) | 2024.11.11 |
| Spring Boot: 의존성 관리 - Starter 패키지 (0) | 2024.11.10 |
| Spring Boot: 의존성 관리 (2) | 2024.11.09 |
| Spring Boot 이해하기: 기본 개념과 특징 (0) | 2024.11.07 |