- 이번 시간에는 yaml 설정을 통해 스프링 프로젝트를 설정해보겠습니다.
- yaml이란 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식으로, 오늘날 xml과 JSON이 데이터 직렬화에 주로 쓰이기 시작하면서, 많은 사람들이 YAML을 '가벼운 마크업 언어'로 사용하려 하고 있습니다.
- 결론적으로, 좀 더 가벼운 마크업 언어를 사용하기 위해서 yaml을 사용하는 것입니다.
- Spring Legacy를 해보았다면 web.xml과 root-context.xml, servlet-context.xml 파일에 대해서 잘 알고있을 것입니다.
- Spring Boot에서는 이 세 가지 파일을 모두 합하여 통째로 application.yml 파일에서 설정할 수 있습니다.
- 즉, 우리는 아래와 같은 코드를 application.yml 파일에 작성하여 설정할 수 있습니다.
server:
port: 8000
servlet:
context-path: /blog
encoding:
charset: UTF-8
enabled: true
force: true
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
username: cos
password: cos1234
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
jackson:
serialization:
fail-on-empty-beans: false
- 위 구문에서 jpa와 jackson 부분은 프로젝트를 진행하며 필요할 때마다마 설명하도록 하고, 이번 시간에는 이를 제외한 나머지 부분에 대한 설명을 먼저 하도록 하겠습니다.
1. server
- 우선 server 부분에서는 port와 servlet, encoding 등을 설정하고 있는데, 만약 우리가 server 부분을 생략한다면 이는 다음과 같은 의미입니다.
server:
port: 8080
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
- 우리는 지금까지 위와 같은 설정을 사용한 것이며 이제 서버에 대한 새로운 설정을 적용한 것입니다.
즉, 이제부터는 아래와 같은 경로를 통해 서버를 이용할 수 있습니다.
2. spring
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
username: cos
password: cos1234
- 다음으로 spring 부분에서는 mvc, datasource 등을 설정하고 있습니다.
- 먼저 mvc의 view 부분은 기존 Spring Legacy에서 ViewResolver를 설정한 부분과 동일한 구문으로, 컨트롤러가 반환한 경로의 앞, 뒤에 prefix와 suffix에 지정한 경로를 붙여서 파일을 찾도록하는 역할을 수행합니다.
- 이는 Spring Legacy에서 ViewResolver를 사용해보았다면 이해하기 쉬운 구문일 것입니다.
- 다음으로 datasource 부분은 우리가 이후 사용하게 될 데이터베이스를 연동하기 위한 부분으로, 역시 기존 Spring Legacy에서 jdbc를 통해 데이터베이스를 연동하고 사용해보았다면 바로 이해할 수 있는 구문입니다.
📌 References
'🚗 Backend Toy Project > 스프링 부트 게시판' 카테고리의 다른 글
[스프링부트 게시판] 8. 회원가입을 위한 insert 테스트 (0) | 2022.05.02 |
---|---|
[스프링부트 게시판] 7. 테이블 생성 (0) | 2022.05.02 |
[스프링부트 게시판] 5. lombok 세팅 및 테스트 (0) | 2022.05.01 |
[스프링부트 게시판] 4. http 요청 실습 (0) | 2022.05.01 |
[스프링부트 게시판] 3. Git 설치 및 GitHub 연동 (0) | 2022.04.30 |