Application Properties & YAML
application.properties/yml, @Value, @ConfigurationProperties, profiles, 외부 프로퍼티를 사용한 설정
1Spring Boot에서 application.properties와 application.yml의 주요 차이점은 무엇인가요?
Spring Boot에서 application.properties와 application.yml의 주요 차이점은 무엇인가요?
답변
두 파일 모두 Spring Boot를 설정하는 데 사용되지만, 서로 다른 형식을 사용합니다. YAML 형식(.yml)은 들여쓰기를 통한 계층 구조를 허용하여 복잡한 설정에 대해 더 읽기 쉽습니다. properties 형식(.properties)은 평면적인 key=value 구문을 사용합니다. Spring Boot는 둘 중 하나를 자동으로 로드하며, 둘 다 존재하는 경우 .properties가 우선합니다.
2Spring Boot에서 내장 서버 포트를 변경할 수 있는 프로퍼티는 무엇인가요?
Spring Boot에서 내장 서버 포트를 변경할 수 있는 프로퍼티는 무엇인가요?
답변
server.port 프로퍼티는 내장 서버(Tomcat, Jetty, Undertow)의 HTTP 포트를 설정합니다. 기본적으로 Spring Boot는 포트 8080에서 시작합니다. 이 프로퍼티는 application.properties(server.port=9000) 또는 YAML(server: port: 9000)에서 정의할 수 있습니다. 또한 JVM 인자(-Dserver.port=9000)나 환경 변수로 재정의할 수도 있습니다.
3로컬 PostgreSQL 데이터베이스를 위해 YAML에서 spring.datasource.url 프로퍼티를 어떻게 선언하나요?
로컬 PostgreSQL 데이터베이스를 위해 YAML에서 spring.datasource.url 프로퍼티를 어떻게 선언하나요?
답변
YAML에서 계층적 프로퍼티는 들여쓰기(탭이 아닌 공백)를 사용합니다. spring.datasource.url 프로퍼티는 spring → datasource → url로 분해됩니다. 각 레벨은 공백 2칸으로 들여쓰기됩니다. 이 계층 구조는 평면적인 properties 버전(spring.datasource.url=jdbc:postgresql://localhost:5432/mydb)보다 설정을 더 읽기 쉽게 만듭니다.
Spring Boot 애플리케이션 시작 시 'dev' profile을 활성화하려면 어떻게 하나요?
Spring 빈에 구성 프로퍼티를 주입할 수 있는 어노테이션은 무엇입니까?
+13 면접 질문