챕터 4: 애플리케이션 구성 및 실행
스프링부트 애플리케이션을 효과적으로 구성하고 실행하기 위해서는 설정 파일, 프로파일 설정, 그리고 애플리케이션 실행 방법을 잘 이해해야 합니다. 이 장에서는 application.properties와 application.yml 파일의 역할, 프로파일 설정, 그리고 기본 애플리케이션 실행 방법을 다룹니다.
4.1 application.properties와 application.yml
스프링부트에서는 설정 파일을 통해 애플리케이션의 다양한 설정을 관리할 수 있습니다. application.properties와 application.yml 파일은 애플리케이션 설정을 정의하는 데 사용됩니다.
4.1.1 설정 파일의 역할
설정 파일은 애플리케이션의 환경 설정을 관리하는 데 사용됩니다. 데이터베이스 연결 정보, 서버 포트 번호, 로그 레벨 등 다양한 설정을 정의할 수 있습니다.
4.1.2 주요 설정 항목
여기에서는 application.properties 파일과 application.yml 파일의 주요 설정 항목을 살펴보겠습니다.
- server.port: 애플리케이션이 실행되는 포트를 설정합니다.
- spring.datasource.url: 데이터베이스 연결 URL을 설정합니다.
- spring.datasource.username: 데이터베이스 사용자 이름을 설정합니다.
- spring.datasource.password: 데이터베이스 비밀번호를 설정합니다.
- logging.level.*: 로깅 레벨을 설정합니다.
예시: application.properties
# 서버가 사용할 포트 번호를 설정
server.port=8080
# 데이터베이스 연결 URL, 사용자 이름, 비밀번호 설정
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
# 스프링 프레임워크의 로깅 레벨을 INFO로 설정
logging.level.org.springframework=INFO
예시: application.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
logging:
level:
org.springframework: INFO
4.2 프로파일 설정
프로파일은 애플리케이션의 다른 환경(예: 개발, 테스트, 프로덕션)에 따라 다른 설정을 적용할 수 있게 해줍니다.
4.2.1 프로파일 개념과 사용
프로파일은 특정 환경에서만 활성화되는 설정 그룹입니다. application-{profile}.properties 또는 application-{profile}.yml 파일을 사용하여 프로파일별 설정을 정의할 수 있습니다.
4.2.2 다양한 프로파일 설정 예제
여기에서는 개발과 프로덕션 환경을 위한 설정 예제를 살펴보겠습니다.
예시: application-dev.properties
# 개발 환경에서는 포트를 8081로 설정
server.port=8081
# 개발 데이터베이스 연결 정보
spring.datasource.url=jdbc:mysql://localhost:3306/devdb
spring.datasource.username=dev
spring.datasource.password=devpassword
# 개발 환경에서는 디버그 로그 레벨 사용
logging.level.org.springframework=DEBUG
예시: application-prod.properties
# 프로덕션 환경에서는 포트를 8080으로 설정
server.port=8080
# 프로덕션 데이터베이스 연결 정보
spring.datasource.url=jdbc:mysql://localhost:3306/proddb
spring.datasource.username=prod
spring.datasource.password=prodpassword
# 프로덕션 환경에서는 정보 로그 레벨 사용
logging.level.org.springframework=INFO
프로파일을 활성화하려면 application.properties 파일에 다음과 같이 설정합니다:
# 활성화할 프로파일을 지정
spring.profiles.active=dev
또는 JVM 옵션을 사용하여 프로파일을 활성화할 수도 있습니다:
java -jar myapp.jar --spring.profiles.active=prod
4.3 기본 애플리케이션 실행 및 확인
4.3.1 메인 클래스와 실행 방법
기본 애플리케이션 클래스를 작성하고 실행하는 방법을 살펴보겠습니다.
예제: 메인 클래스 (Maven 및 Gradle 공통)
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @SpringBootApplication: 스프링부트 애플리케이션의 진입점
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// SpringApplication.run(): 애플리케이션을 시작하는 메서드
SpringApplication.run(DemoApplication.class, args);
}
}
Maven을 사용하여 애플리케이션 실행
mvn spring-boot:run
Gradle을 사용하여 애플리케이션 실행
./gradlew bootRun
4.3.2 기본 실행 로그 확인
애플리케이션을 실행하면 스프링부트는 다양한 로그를 출력합니다. 여기서는 기본 실행 로그의 중요한 부분을 살펴보겠습니다.
- 애플리케이션 시작 시 로고 및 버전 정보
- 애플리케이션 컨텍스트 초기화 정보
- 내장 서버(예: Tomcat) 시작 정보
- 애플리케이션이 실행 중인 포트 정보
예시: 기본 실행 로그
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.0.0)
2024-06-01 10:00:00.000 INFO 12345 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 17 on localhost with PID 12345
2024-06-01 10:00:00.500 INFO 12345 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2024-06-01 10:00:01.000 INFO 12345 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2024-06-01 10:00:01.000 INFO 12345 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.5 seconds (JVM running for 2.0)
이 로그는 애플리케이션이 성공적으로 시작되었음을 나타냅니다. 내장 Tomcat 서버가 포트 8080에서 실행 중임을 알 수 있습니다.
예시 설명
- application.properties와 application.yml:
- 이 파일들은 애플리케이션의 다양한 설정을 정의하는 데 사용됩니다. 예를 들어, 서버 포트 번호, 데이터베이스 연결 정보 등을 설정할 수 있습니다.
- application.properties와 application.yml 파일은 동일한 설정을 다르게 표현할 수 있으며, 개인의 선호도에 따라 사용할 수 있습니다.
- 각 파일에 설정된 항목들은 애플리케이션이 실행될 때 자동으로 적용됩니다.
- 프로파일 설정:
- 프로파일을 사용하면 애플리케이션의 다른 환경(예: 개발, 테스트, 프로덕션)에 따라 다른 설정을 적용할 수 있습니다. 이를 통해 각 환경에 맞는 최적의 설정을 사용할 수 있습니다.
- 프로파일별 설정 파일을 통해 다양한 환경에 맞는 설정을 분리하여 관리할 수 있습니다.
- spring.profiles.active 설정을 통해 활성화할 프로파일을 지정할 수 있으며, JVM 옵션을 통해 프로파일을 동적으로 변경할 수도 있습니다.
- 기본 애플리케이션 실행 및 확인:
- 스프링부트 애플리케이션은 SpringApplication.run() 메서드를 통해 실행됩니다. 이 메서드는 애플리케이션 컨텍스트를 초기화하고 내장 서버를 시작합니다.
- 애플리케이션 실행 시 출력되는 로그를 통해 애플리케이션의 상태를 확인할 수 있습니다. 로그에는 애플리케이션의 시작 시간, 활성화된 프로파일, 내장 서버 포트 정보 등이 포함됩니다.
- 실행 로그를 통해 애플리케이션이 정상적으로 시작되었는지, 어떤 설정이 적용되었는지 등을 확인할 수 있습니다.
이 장에서는 스프링부트 애플리케이션의 설정 파일 관리, 프로파일 설정, 그리고 기본 실행 방법을 통해 애플리케이션을 효과적으로 구성하고 실행하는 방법을 다루었습니다.
'IT 강좌(IT Lectures) > SpringBoot' 카테고리의 다른 글
6강. 컨트롤러(Controller)와 라우팅(Routing) (0) | 2024.07.09 |
---|---|
5강. 의존성 주입 (DI)와 빈 관리 (0) | 2024.06.27 |
3강. 스프링부트 프로젝트 생성 (0) | 2024.06.24 |
2강. 개발 환경 설정 (0) | 2024.06.21 |
1강. 스프링부트 소개 (0) | 2024.06.21 |