일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- GitHub
- 깃허브
- 파이어베이스
- 마우이
- typescript
- Binding
- 닷넷
- MVVM
- 함수
- db
- MSSQL
- Animation
- React JS
- 플러터
- Maui
- JavaScript
- HTML
- 리엑트
- 바인딩
- Flutter
- 오류
- 애니메이션
- spring boot
- .NET
- 자바스크립트
- page
- MS-SQL
- Firebase
- listview
- AnimationController
Archives
- Today
- Total
개발노트
6. [Spring Boot] application.yml 설정하기 본문
반응형
application.yml 적용순서
- 프로젝트 구조 확인: 먼저 Spring Boot 프로젝트의 구조를 확인하세요. src/main/resources 디렉터리 내에 application.yml 파일을 위치시켜야 합니다.
- 애플리케이션 실행 시 로드: Spring Boot 애플리케이션을 실행할 때 application.yml 파일이 자동으로 로드됩니다. 이 파일에 정의된 설정은 애플리케이션에 적용됩니다.
- 프로파일 설정: application.yml 파일은 여러 프로파일에 따라 설정을 구성할 수 있습니다. 예를 들어, application-dev.yml 또는 **application-prod.yml**과 같이 환경에 따라 다른 설정을 제공할 수 있습니다. 애플리케이션 실행 시 프로파일을 지정하여 해당 프로파일에 따른 설정을 로드할 수 있습니다.
application.yml, application.properties 비교 (동일한 작업을 수행함)
application.yml
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/homebar_db?serverTimezone=Asia/Seoul
username: root
password: 9999
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
show_sql: true
format_sql: true
- server.port: 8080:
- 애플리케이션의 내장 웹 서버인 Tomcat의 포트를 8080으로 설정합니다. 이는 애플리케이션이 기본적으로 8080 포트에서 실행될 것을 의미합니다.
- spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver:
- 사용할 데이터베이스 드라이버 클래스를 지정합니다. 여기서는 MySQL 데이터베이스를 사용할 것이며, 그에 따른 JDBC 드라이버를 설정합니다.
- spring.datasource.url: jdbc:mysql://localhost:3306/homebar_db?serverTimezone=Asia/Seoul:
- 데이터베이스 연결을 위한 JDBC URL을 설정합니다. **jdbc:mysql://localhost:3306/homebar_db**는 **localhost**의 3306 포트에 위치한 homebar_db 데이터베이스에 연결하겠다는 의미입니다. **serverTimezone=Asia/Seoul**은 MySQL 서버의 시간대를 서울로 설정합니다.
- spring.datasource.username: root:
- 데이터베이스에 연결할 때 사용할 사용자 이름을 지정합니다. 여기서는 **root**를 사용합니다.
- spring.datasource.password: 9999:
- 데이터베이스에 연결할 때 사용할 비밀번호를 지정합니다. 여기서는 **9999**를 사용합니다.
- jpa.hibernate.ddl-auto: update:
- Hibernate의 DDL 자동 생성 기능을 설정합니다. **update**로 설정하면 애플리케이션을 시작할 때 Hibernate가 기존 데이터베이스 스키마와 엔티티 클래스의 정보를 비교하여 필요한 변경을 자동으로 수행합니다.
- jpa.properties.hibernate.show_sql: true:
- Hibernate가 실행한 SQL 쿼리를 콘솔에 출력하도록 설정합니다. 개발 및 디버깅 목적으로 유용합니다.
- jpa.properties.hibernate.format_sql: true:
- 출력된 SQL 쿼리를 포맷팅하여 읽기 쉽게 표시하도록 설정합니다. 쿼리 디버깅 시 도움이 됩니다.
application.properties
spring.application.name=api-server
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#DB url-> mysql://[DB URL]:[port]/[DB Name]?serverTimezone=UTC
spring.datasource.url=jdbc:mysql://localhost:3306/homebar_db?serverTimezone=Asia/Seoul
spring.datasource.username=root
spring.datasource.password=9999
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
*yml 과 동일
yml(YAML)을 사용하는 이유
- 가독성: YAML 파일은 들여쓰기를 사용하여 계층적인 구조를 표현하기 때문에 가독성이 좋습니다. 프로퍼티들이 계층적으로 표현되므로 복잡한 설정도 이해하기 쉽습니다.
- 구조적 유연성: YAML은 리스트나 맵 등의 데이터 구조를 쉽게 표현할 수 있습니다. 이러한 구조적 유연성은 복잡한 설정을 다룰 때 유용합니다. 예를 들어, 프로파일에 따라 다른 설정을 구성할 수 있고, 리스트나 객체 형태의 데이터를 보다 직관적으로 표현할 수 있습니다.
- 프로퍼티 값 지정: YAML은 값을 지정할 때 큰따옴표(")를 사용하지 않아도 되며, 여러 줄로 값을 나타낼 수 있습니다. 이는 설정을 보다 자연스럽게 표현할 수 있게 해줍니다.
- Spring Boot와의 통합: Spring Boot는 기본적으로 YAML 파일을 지원하며, application.yml 파일을 사용할 경우 자동으로 로드합니다. 따라서 별도의 설정 없이도 application.yml 파일을 사용할 수 있습니다.
- 프로퍼티의 우선순위: YAML 파일은 프로파일에 따라 다른 설정을 제공할 수 있고, 프로퍼티 값의 우선순위를 설정할 수 있습니다. 이를 통해 각 환경에 맞는 설정을 간편하게 관리할 수 있습니다.
- 표현의 다양성: YAML은 다양한 데이터 타입을 지원하므로, 문자열, 숫자, 리스트, 맵 등 다양한 형태의 데이터를 표현할 수 있습니다. 이는 설정 파일을 보다 풍부하게 표현할 수 있게 해줍니다.
이러한 이유로 많은 개발자들이 application.yml 파일을 선호하며, Spring Boot 애플리케이션에서 설정 파일을 작성할 때 YAML 형식을 사용하는 경우가 많습니다. 다만, 개발자의 취향과 프로젝트 요구 사항에 따라 application.properties 파일을 사용할 수도 있습니다.
반응형
'서버 개발 > Spring Boot' 카테고리의 다른 글
8. [Spring Boot] @ManyToOne 무한재귀 호출 문제 해결하기 (0) | 2024.04.30 |
---|---|
7. [Spring Boot] PropertyReferenceException 에러 해결 (Java "_" 언더바 인식 못함 문제) (0) | 2024.04.30 |
5. [Spring Boot] JPA 로 삽입, 조회, 수정, 삭제 기능 만들기(with ResponsEntity) (0) | 2024.04.16 |
4. [Spring Boot] Optional 사용 (NullPointerException 방지하기) (0) | 2024.04.16 |
3. [Spring Boot] JPA, findAll() 메소드로 전체 Data 가져오기 (0) | 2024.04.15 |
Comments