일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- API
- 스프링배치
- 스프링부트
- 백엔드
- submodule
- springbootbatch
- springrestdocs
- multimodule
- spring
- springboot
- batchframework
- 스프링
- 서브모듈
- 프론트엔드
- 회고
- 스타트업
- Kotlin
- batch framework
- 성장
- 문서화
- react
- 멀티모듈
- 스프링부트배치
- batch
- Today
- Total
노트북을 열고.
[SubModule] 4. 프로퍼티 설정하기 본문
1. application.yml 생성하기
이쯤에서 궁금한 점이 생겨야 합니다. 각 모듈은 독립적인 서버의 역할을 합니다. 그렇다면 기본적으로 동일한 도메인을 갖는 각각의 모듈들은 어떻게든 구분되어 관리되어야 할 것입니다. 한 예로 포트구성을 들 수 있겠죠. 그러면 각 Module에 필요한 다양한 환경설정은 과연 어디서 어떻게 하는지 알아보겠습니다.
module-web/src/main/resource 경로에서 application.yml이라는 파일을 생성하겠습니다. 그리고 다음과 같이 작성하겠습니다.
server:
port: 80
야믈 - YAML?
YAML : Ain't Markup Language? 기존의 마크업(Mark-up)방식이 아닌 데이터 중심으로 서술하는 방식을 뜻합니다. 기존의 것보다 형식이 간결하며 보기에도 수월하게 작성할수 있는 언어라 소개해 드릴 수 있겠습니다.
이제부터 module-web의 포트는 80번으로 설정이 되었습니다. 동일한 방법으로 다른 module도 동일한 경로에 application.yml 파일을 생성하여 각각의 고유한 포트번호를 설정할 수 있습니다. 이외에도 다양한 설정(Datasource, logging, etc)을 이 하나의 파일에서 관리할 수 있습니다.
2. profiles 설정하기
각 모듈은 실제 어플리케이션서버를 의미합니다. 서버는 클라이언트의 요청에 따라 맞게처리를 하고 응답을 해주는 역할을 합니다. 뿐만 아니라 많은 요청이 쇄도할 경우 안전하고 안정적인 서비스를 유지될 수 있도록 자원을 관리해주는 역할도 하죠. 이렇듯 서버는 실제 서비스 영역에서 매우 중요한 역할을 합니다. 우리는 이러한 서버를 더욱 체계적으로 로 운영되어 질 수 있도록 실제 서비스 이전의 단계를 정의하고 그 단계에 따라 고유한 설정을 부여할 수 있습니다. 가령 테스트용DB와 운영DB의 설정값을 분리할수 있고 Logging의 레벨도 각각 다르게 부여할 수 있겠죠. 우리는 이러한 그 단계별 역할 에따라 설정을 부여해보도록 하겠습니다.
# module-web/src/main/resources/application.yml
server:
port: 80
---
spring:
profiles:dev
server:
port: 81
---
spring:
profiles:stg
server:
port: 82
한눈으로 봐도 쉽게 읽혀지실 것으로 믿습니다. 잘보여야 하실부분은 profiles입니다. 이제 각 모듈, 다시말해 각 애플리케이션 서버를 실행할 때에 위와 같이 ---를 기준으로 나누어진 profiles에 부여한 이름에 따라 그 이름에 맞는 설정값으로 애플리케이션이 동작합니다. 한번 실행하여 볼까요?
java -jar module-web -D spring.profiles.active=dev
인텔리제이에서는 실행 플러그인을 기본으로 제공합니다. 다음과 같이 상단 우측 셀렉트박스에 [Edit Configurations...] 를 선택후 실행할 Profiles를 지정하여 실행 하실 수도 있습니다.
이것으로 SubModule 프로젝트를 구성은 끝났습니다. 이렇게 구성된 밑바탕안에서 이제 우리가 구현하려는 서비스를 즐겁게 만들어보실 수 있을 것입니다. 앞으로 기반위에서 다양한 스프링부트에서 기본적으로 제공하는 간편하고도 강력한 프로젝트들을 함께 만들어 보도록 하겠습니다. 수고많으셨습니다.
'아는 것'보다 '알아야할 것'이 더 많은 늦깎이 주니어개발자입니다.
알고 있는 지식을 전한다는 목적 보단 막 알게된 지식을 스스로 정리하는 차원에서 포스팅하고 있으니 잘못된 내용이나 부족한 부분이 있더라도 겸허한 이해 부탁드립니다. 댓글이나 쪽지를 통해 첨삭의견주시면 감사히 수렴하고 보완하겠습니다.
'SpringBoot' 카테고리의 다른 글
[spring boot batch] 2. 미납회원 배치처리 구현 (876) | 2019.07.30 |
---|---|
[spring boot batch] 1. 간단한 대용량 배치처리, 스프링부트배치 (785) | 2019.07.30 |
[SubModule] 3. 멀티 모듈생성 (425) | 2019.07.30 |
[SubModule] 2. 프로젝트 생성 (445) | 2019.07.30 |
[SubModule] 1. SubModule 혹은 MultiModule? (406) | 2019.07.30 |