IT 강좌(IT Lectures)/SpringBoot

4강. 애플리케이션 구성 및 실행

소울입니다 2024. 6. 26. 16:51
728x90
반응형

챕터 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에서 실행 중임을 알 수 있습니다.

예시 설명

  1. application.properties와 application.yml:
    • 이 파일들은 애플리케이션의 다양한 설정을 정의하는 데 사용됩니다. 예를 들어, 서버 포트 번호, 데이터베이스 연결 정보 등을 설정할 수 있습니다.
    • application.properties와 application.yml 파일은 동일한 설정을 다르게 표현할 수 있으며, 개인의 선호도에 따라 사용할 수 있습니다.
    • 각 파일에 설정된 항목들은 애플리케이션이 실행될 때 자동으로 적용됩니다.
  2. 프로파일 설정:
    • 프로파일을 사용하면 애플리케이션의 다른 환경(예: 개발, 테스트, 프로덕션)에 따라 다른 설정을 적용할 수 있습니다. 이를 통해 각 환경에 맞는 최적의 설정을 사용할 수 있습니다.
    • 프로파일별 설정 파일을 통해 다양한 환경에 맞는 설정을 분리하여 관리할 수 있습니다.
    • spring.profiles.active 설정을 통해 활성화할 프로파일을 지정할 수 있으며, JVM 옵션을 통해 프로파일을 동적으로 변경할 수도 있습니다.
  3. 기본 애플리케이션 실행 및 확인:
    • 스프링부트 애플리케이션은 SpringApplication.run() 메서드를 통해 실행됩니다. 이 메서드는 애플리케이션 컨텍스트를 초기화하고 내장 서버를 시작합니다.
    • 애플리케이션 실행 시 출력되는 로그를 통해 애플리케이션의 상태를 확인할 수 있습니다. 로그에는 애플리케이션의 시작 시간, 활성화된 프로파일, 내장 서버 포트 정보 등이 포함됩니다.
    • 실행 로그를 통해 애플리케이션이 정상적으로 시작되었는지, 어떤 설정이 적용되었는지 등을 확인할 수 있습니다.

이 장에서는 스프링부트 애플리케이션의 설정 파일 관리, 프로파일 설정, 그리고 기본 실행 방법을 통해 애플리케이션을 효과적으로 구성하고 실행하는 방법을 다루었습니다. 

 
반응형