티스토리 뷰

스프링 부트 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에서 사용할 설정파일 이름만 바꿔주면 된다.

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday