spring boot REST API Web 프로젝트 (13) - 환경별 설정을 위해서profile 분리하기

2021. 9. 3. 18:58·스프링/스프링부트 RestAPI 프로젝트

스프링 부트 REST API WEB 프로젝트

깃헙 링크

https://github.com/choiwoonsik/springboot_RestApi_App_Project/tree/main/restApiSpringBootApp

수행 목록

  1. 환경구성 및 helloworld 출력
  2. H2 DB 연동
  3. Swagger API 문서 연동
  4. REST API 설계
  5. RestControllerAdvice를 이용한 통합 예외 처리
  6. Entity - DTO 분리
  7. MessageSource를 이용해 예외 메시지 다국화
  8. JPA Aduting을 이용해 객체 생성시간/수정시간 적용
  9. 스프링 시큐리티 + Jwt를 이용해서 인증 및 권한 체크
  10. 스프링 시큐리티 AuthenticationEntryPoint, AccessDenied로 인증 및 인가 예외처리
  11. Jwt AccessToken + RefreshToken으로 보안성과 사용자 편의성 고도화하기
  12. JUnit Test (단위 테스트)
  13. JUnit Test (통합 테스트)
  14. OAuth 2.0 정리
  15. OAuth 2.0 카카오 로그인 part.1 Authorization code + Token 발급
  16. OAuth 2.0 카카오 로그인 part.2 토큰으로 회원 가입 / 로그인
  17. OAuth 2.0 카카오 로그인 테스트 검증
  18. 환경별 설정을 위해서profile 분리하기 

 


application-yml 파일은 환경구성을 위해 필요한 파일이다. 하지만 local에서 구현을 위해 사용하는 환경구성과 실제 배포를 위한 환경을 다를 수밖에 없다. 따라서 배포용 환경과 로컬 개발용 환경 두개를 분리해서 만들어본다.

 

application-dev.yml과 application-local.yml 두개로 분리

application.yml에는 공통으로 들어가는 설정을 넣고, dev와 local에는 환경에 따라 달라지는 내용을 넣는다.

 

공통 설정 application.yml

spring:
  profiles:
    include: private, local

  freemarker:
    template-loader-path: classpath:/templates
    suffix: .ftl

  messages:
    basename: i18n/exception
    encoding: UTF-8

application-private.yml에는 JWT을 위한 SECRET_KEY, KAKAO OAUTH를 위한 REST_API_KEY 등 프라이빗한 내용들이 들어있다.

 

local용 설정파일 application-local.yml

logging:
  level:
    root: warn
    com.restApi.restApiSpringBootApp: debug #debug info warn error fatal off
server:
  port: 8080

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/restApi
    driver-class-name: org.h2.Driver
    username: sa
  messages:
    basename: i18n/exception
    encoding: UTF-8
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    properties.hibernate:
      hbm2ddl.auto : update
      format_sql: true
    show-sql: true
    generate-ddl: true
    open-in-view: false
  url:
    base: http://localhost:8080
  config:
    activate:
      on-profile: local

 

배포용 설정파일 application-dev.yml

logging:
  level:
    root: warn
    com.restApi.restApiSpringBootApp: info
  file:
    path: /home/ec2-user/api/log

  logback:
    rollingpolicy:
      max-history: 7

server:
  port: 8080

spring:
  profiles: dev
    include: private
  datasource:
    url:
    driver-class-name:
    username:
    password:
  jpa:
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    properties.hibernate:
      format_sql: true
    hibernate:
      ddl-auto: update
    generate-ddl: false
    show-sql: true
    open-in-view: false
  url:
    base: "deploy server ip"

 

배포때와 로컬에서 구동 시 application.yml에서 사용할 설정파일 이름만 바꿔주면 된다.

반응형
저작자표시 (새창열림)

'스프링 > 스프링부트 RestAPI 프로젝트' 카테고리의 다른 글

spring boot REST API Web 프로젝트 (12 - 4) - OAuth 2.0 카카오 로그인 테스트 검증  (1) 2021.09.02
spring boot REST API Web 프로젝트 (12 - 3) - OAuth 2.0 카카오 로그인 part.2 토큰으로 회원 가입 / 로그인  (0) 2021.08.31
spring boot REST API Web 프로젝트 (12 - 2) - OAuth 2.0 카카오 로그인 part.1 Authorization code + Token 발급  (0) 2021.08.29
spring boot REST API Web 프로젝트 (12 - 1) - OAuth 2.0 정리  (0) 2021.08.26
spring boot REST API Web 프로젝트 (11 - 2) - JUnit Test (통합 테스트)  (0) 2021.08.24
'스프링/스프링부트 RestAPI 프로젝트' 카테고리의 다른 글
  • spring boot REST API Web 프로젝트 (12 - 4) - OAuth 2.0 카카오 로그인 테스트 검증
  • spring boot REST API Web 프로젝트 (12 - 3) - OAuth 2.0 카카오 로그인 part.2 토큰으로 회원 가입 / 로그인
  • spring boot REST API Web 프로젝트 (12 - 2) - OAuth 2.0 카카오 로그인 part.1 Authorization code + Token 발급
  • spring boot REST API Web 프로젝트 (12 - 1) - OAuth 2.0 정리
구름뭉치
구름뭉치
구름의 개발일기장
  • 구름뭉치
    구름 개발일기장
    구름뭉치
  • 전체
    오늘
    어제
    • ALL (283)
      • 프로젝트 (23)
        • 토스페이먼츠 PG 연동 시리즈 (12)
        • JWT 방식 인증&인가 시리즈 (6)
        • 스우미 웹 애플리케이션 프로젝트 (1)
        • 스프링부트 기본 보일러 플레이트 구축 시리즈 (2)
        • 마이크로서비스 아키텍쳐 시리즈 (1)
      • 스프링 (43)
        • 스프링부트 API 설계 정리 (8)
        • 스프링부트 RestAPI 프로젝트 (18)
        • 스프링부트 WebSocket 적용기 (3)
        • 스프링 JPA 정리 시리즈 (5)
        • 스프링 MVC (5)
        • 스프링 배치 (2)
        • 토비의 스프링 정리 (2)
      • 기술 학습 (28)
        • 아파치 카프카 (9)
        • 클린 코드 (4)
        • 디자인 패턴의 아름다움 (2)
        • 모던 자바 인 액션 (7)
        • JVM 스레드 딥다이브 (6)
      • Web (25)
        • 정리글 (20)
        • GraphQL 정리글 (2)
        • Jenkins 정리글 (3)
      • 취업 (6)
      • CS (77)
        • 네트워크 전공 수업 정리 (11)
        • OSI 7계층 정리 (12)
        • 운영체제 정리 (19)
        • 데이터베이스 정리 (5)
        • MySql 정리 (17)
        • GoF의 Design Pattern 정리 (12)
      • 알고리즘 (70)
        • 백준 (56)
        • 프로그래머스 (12)
        • 알고리즘 정리본 (1)
      • 기초 지식 정리 (2)
      • 일상 (8)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    마우스
    류블라냐
    mx master s3 for mac
    부다페스트
    마우스 패드
    키보드 손목 받침대
    동유럽
    레이저
    크로아티아
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
구름뭉치
spring boot REST API Web 프로젝트 (13) - 환경별 설정을 위해서profile 분리하기
상단으로

티스토리툴바