스프링 부트 3에서는 애플리케이션 설정을 위해 주로 application.properties 또는 application.yml 파일을 사용합니다. 이러한 설정 파일은 애플리케이션의 다양한 구성 옵션을 정의하고 관리하는 데 매우 유용합니다. 이 글에서는 스프링 부트 3에서 프로퍼티 파일을 설정하는 방법을 상세히 설명하고, 예제를 통해 이를 활용하는 방법을 소개하겠습니다.
1. 기본 프로퍼티 파일 설정
스프링 부트 3에서는 기본적으로 src/main/resources 디렉토리에 application.properties 또는 application.yml 파일을 생성하여 설정을 관리합니다. 다음은 주요 설정 항목들에 대한 예시입니다.
- 서버 설정:
- 서버 포트와 관련된 설정입니다.
# application.properties
server.port=8080
server.servlet.context-path=/myapp
# application.yml
server:
port: 8080
servlet:
context-path: /myapp
- 데이터베이스 설정:
- 데이터베이스 연결 정보와 관련된 설정입니다.
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.jpa.hibernate.ddl-auto=update
# application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: myuser
password: mypassword
jpa:
hibernate:
ddl-auto: update
- 로그 설정:
- 로그 레벨을 조정하는 설정입니다.
# application.properties
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
# application.yml
logging:
level:
org.springframework: INFO
com.example: DEBUG
2. 프로파일(Profile) 설정
스프링 부트는 프로파일(Profile) 기능을 제공하여 다양한 환경(dev, prod 등)에서 다른 설정을 사용할 수 있도록 합니다. 프로파일별 설정 파일을 사용하려면 파일 이름에 프로파일 이름을 추가합니다. 예를 들어, application-dev.properties, application-prod.properties 등을 사용할 수 있습니다.
- 프로파일별 설정 파일:
# application-dev.properties
spring.datasource.url=jdbc:mysql://localhost:3306/devdb
spring.datasource.username=devuser
spring.datasource.password=devpassword
# application-prod.properties
spring.datasource.url=jdbc:mysql://localhost:3306/proddb
spring.datasource.username=produser
spring.datasource.password=prodpassword
- 프로파일 활성화:
- application.properties 파일 또는 application.yml 파일에서 기본 프로파일을 설정할 수 있습니다.
# application.properties
spring.profiles.active=dev
# application.yml
spring:
profiles:
active: dev
또는, 애플리케이션 실행 시 커맨드 라인 인수를 통해 프로파일을 지정할 수도 있습니다.
$ java -jar myapp.jar --spring.profiles.active=prod
3. 외부 설정 파일 사용
스프링 부트는 외부 설정 파일을 통해 애플리케이션 설정을 오버라이드할 수 있습니다. 이는 컨테이너 환경에서 애플리케이션을 실행할 때 유용합니다.
- 외부 프로퍼티 파일 사용:
- 애플리케이션 실행 시 외부 프로퍼티 파일을 지정할 수 있습니다.
$ java -jar myapp.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties,file:./custom.properties
4. 예제 코드
스프링 부트 애플리케이션에서 프로퍼티 파일을 사용하는 간단한 예제를 만들어 보겠습니다. 이 예제에서는 데이터베이스 설정과 로깅 설정을 다룹니다.
- 프로퍼티 파일 설정:
- src/main/resources/application.properties 파일에 다음 설정을 추가합니다.
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
- 엔티티 클래스 생성:
- src/main/java/com/example/demo 디렉토리에 User 엔티티 클래스를 생성합니다.
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
// getters and setters
}
- 레포지토리 인터페이스 생성:
- src/main/java/com/example/demo 디렉토리에 UserRepository 인터페이스를 생성합니다.
package com.example.demo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
- 서비스 클래스 생성:
- src/main/java/com/example/demo 디렉토리에 UserService 클래스를 생성합니다.
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> getAllUsers() {
return userRepository.findAll();
}
public User saveUser(User user) {
return userRepository.save(user);
}
}
- 컨트롤러 클래스 생성:
- src/main/java/com/example/demo 디렉토리에 UserController 클래스를 생성합니다.
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@PostMapping("/users")
public User saveUser(@RequestBody User user) {
return userService.saveUser(user);
}
}
- 애플리케이션 실행 및 테스트:
- 애플리케이션을 실행하고 http://localhost:8080/users 엔드포인트를 통해 사용자 목록을 조회하고, 사용자 데이터를 추가할 수 있습니다.
5. 결론
스프링 부트 3에서 프로퍼티 파일 설정은 애플리케이션의 다양한 구성을 관리하는 데 필수적인 요소입니다. 이 가이드를 통해 기본적인 설정 방법부터 프로파일 설정, 외부 설정 파일 사용 방법까지 다루어 보았습니다. 이러한 설정을 적절히 활용하여 다양한 환경에서 애플리케이션을 효율적으로 관리할 수 있을 것입니다.
'스프링 부트3' 카테고리의 다른 글
스프링 부트 3 설치 및 설정 가이드 (0) | 2024.12.05 |
---|---|
스프링 부트 3란 무엇인가? (0) | 2024.12.05 |
스프링 부트 3의 기본 로그 설정 (0) | 2024.12.04 |
Spring Boot Actuator로 애플리케이션 모니터링하기 (0) | 2024.12.04 |
Spring Boot DevTools로 개발 효율성 높이기 (0) | 2024.12.04 |