Spring Boot 시리즈 1편 – 기본 설정과 프로젝트 구조 정리
Spring Boot의 기본 설정과 프로젝트 구조를 이해하는 것은 백엔드 개발의 첫걸음입니다. 자동 설정, 의존성 관리, 폴더 구조까지 상세히 설명합니다.
Spring Boot 시리즈 1편 – 기본 설정과 프로젝트 구조 정리
Spring Boot는 복잡한 설정 없이 빠르게 스프링 애플리케이션을 시작할 수 있도록 도와주는 프레임워크입니다.
이번 시리즈의 첫 번째 편에서는 Spring Boot의 기본 개념, 자동 설정 원리, 프로젝트 구조, 그리고 실행 원리까지 단계적으로 정리해보겠습니다.
📌 Spring Boot란?
Spring Boot는 Spring Framework 기반의 스타터 프레임워크로, 설정 파일을 최소화하고 내장 톰캣 서버로 쉽게 실행할 수 있는 점이 특징입니다.
키워드: Spring Boot 기본 설정, 자동 설정, 내장 서버, starter dependencies
✅ 왜 Spring Boot를 써야 할까?
- 복잡한 XML 설정 → 자동 구성으로 대체
- 빠른 애플리케이션 실행 (내장 톰캣)
- 프로젝트 템플릿 제공 (Spring Initializr)
- 프로덕션 준비된 기본 설정 제공
⚙️ Spring Boot 기본 설정 이해하기
1. Spring Initializr로 프로젝트 생성
공식 사이트: https://start.spring.io
설정 예시:
- Project: Gradle or Maven
- Language: Java
- Spring Boot: 3.x
- Dependencies: Spring Web, Lombok, Spring Boot DevTools, Spring Data JPA 등
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.example.demo
│ │ │ └── DemoApplication.java
│ │ └── resources
│ │ ├── application.properties (or application.yml)
│ │ └── static / templates
│ └── test
핵심 클래스 DemoApplication.java는 @SpringBootApplication으로 시작하며, 애플리케이션의 진입점을 정의합니다.
2. @SpringBootApplication의 정체는?
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
해당 애노테이션은 다음 3가지를 포함합니다:
- @Configuration – 빈 정의 파일로 사용
- @EnableAutoConfiguration – 스프링이 자동으로 설정
- @ComponentScan – 같은 패키지 하위의 Bean들을 탐색
3. application.properties 설정
Spring Boot의 핵심은 application.properties 또는 application.yml 파일에 있습니다.
이 설정 파일을 통해 DB 연결, 포트, 로깅 등 다양한 환경 설정을 손쉽게 구성할 수 있습니다.
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=1234
spring.jpa.hibernate.ddl-auto=update
4. 내장 톰캣 실행 구조
Spring Boot는 Tomcat 서버를 따로 설치하지 않고, JAR 파일 안에 포함된 톰캣을 실행합니다.
- SpringApplication.run() 실행 시 내부에서 내장 톰캣을 초기화
- 외부 WAR 배포가 필요 없이 JAR 실행 가능 (java -jar demo.jar)
- application.properties로 포트 등 서버 설정 변경 가능
🧠 실무 인사이트 – 기본 설정의 중요성
Spring Boot를 학습하면서 가장 많이 실수하는 부분 중 하나는 기본 설정을 깊이 있게 이해하지 않고 바로 개발을 시작하는 것입니다.
하지만 설정 파일과 실행 구조를 명확히 이해해야 나중에 다음과 같은 상황에 대처할 수 있습니다:
- 다양한 환경(dev/stage/prod) 설정 분리
- REST API 프로젝트 구조 설계
- 의존성 충돌 및 자동 설정 오류 디버깅
✅ 마무리 요약
항목 설명
Spring Boot 역할 | Spring 기반 개발의 복잡함 제거, 빠른 셋업 |
자동 설정의 원리 | @SpringBootApplication → 자동 Bean 등록 |
프로젝트 구성 | main/resources와 패키지 구조 이해 필수 |
실행 방식 | 내장 톰캣, java -jar로 바로 실행 가능 |
설정 파일 | application.properties로 환경 설정 제어 |
📌 다음 편 예고
Spring Boot 시리즈 2편: REST API 구조 설계와 Controller 작성 가이드