728x90
스프링 부트 기본 프로젝트 구조
Spring Initializr에서 생성한 기본 프로젝트는 다음과 같은 디렉토리 구조로 구성됩니다:
demo/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/demo/
│ │ │ └── DemoApplication.java ← 메인 클래스
│ │ └── resources/
│ │ ├── static/ ← 정적 파일(css, js, 이미지)
│ │ ├── templates/ ← HTML 템플릿(Thymeleaf 등)
│ │ ├── application.properties ← 설정 파일
│ │ └── application.yml ← (선택) YAML 형식 설정
│ └── test/
│ └── java/
│ └── com/example/demo/ ← 테스트 코드
├── build.gradle or pom.xml ← 의존성 및 빌드 설정
└── .gitignore, README.md 등
각 디렉토리/파일 상세 설명
DemoApplication.java
- 스프링 부트 애플리케이션의 진입점
- @SpringBootApplication 애너테이션이 핵심
- 실행: main() 메서드로 프로그램 시작됨
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
src/main/java/
- 애플리케이션의 비즈니스 로직이 담기는 핵심 디렉토리
- 보통 아래와 같이 기능별로 패키지를 나눕니다:
com.example.demo
├── controller/
├── service/
├── repository/
├── entity/
└── config/
패키지 | 역할 |
controller | 사용자 요청을 받는 API, View 진입점 |
service | 비즈니스 로직 처리 |
repository | DB 접근(JPA, MyBatis 등) |
entity | 데이터베이스 매핑 객체 |
config | 스프링 설정(JavaConfig 등) |
src/main/resources/
스프링이 자동으로 로딩하는 설정 및 리소스 디렉토리
디렉토리/파일 | 설명 |
static/ | 정적 리소스(css, js, 이미지 등) 제공 (ex: /css/style.css) |
templates/ | Thymeleaf, Freemarker 같은 템플릿 엔진의 HTML 파일 위치 |
application.properties 또는 application.yml | 환경 설정 (포트, DB, 로그 등) |
src/test/java/
- JUnit 기반 테스트 코드 작성 디렉토리
- 스프링 부트는 테스트 프레임워크가 내장되어 있어 단위 테스트/통합 테스트 작성이 용이함
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
}
build.gradle 또는 pom.xml
- 의존성 관리 및 빌드 설정 파일
- 어떤 라이브러리를 사용할지 정의하며, 스프링 부트 스타터(spring-boot-starter-web 등)를 선언
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
프로젝트 구조 팁
- 패키지 구조는 처음부터 기능별로 정리하는 습관을 들이세요.
- 실무에서는 controller, service, repository, dto, exception 등의 패키지 구성이 기본입니다.
- resources/application.yml은 설정의 중심입니다. 환경마다 다르게 관리할 수도 있어요 (application-dev.yml, -prod.yml 등).
요약
위치 | 역할 |
DemoApplication.java | 애플리케이션 시작 지점 |
controller/ | API 및 사용자 요청 처리 |
service/ | 핵심 로직 구현 |
repository/ | 데이터베이스와의 통신 |
resources/ | 설정 파일 및 정적 리소스 |
LIST
'SpringBoot > 스프링 부트 프로젝트 생성' 카테고리의 다른 글
내장 톰캣 이해하기 (0) | 2025.04.14 |
---|---|
application.properties vs application.yml (0) | 2025.04.14 |
Spring Initializr 사용법 (0) | 2025.04.14 |