Spring

Spring 3.0에서 profiles 를 이용해 Local, Develop, Production 등에 맞게 이용해보기

kimc 2023. 2. 4. 11:41
반응형

 

이번 글을 통해 배워 갈 내용

  1.  @Profile
  2.  yml 파일에 profile 설정을 해서 test와 production 상황에 DB 다르게 사용해 보기
  3.  테스트 상황과 배포 상황에 맞게 다른 디비 연결하게 세팅하기

실무에서는 상황에 따라 다르지만

주로

데이터베이스를 사용하는 부분에 따라서

Local, Develop, Production 등으로 나누고

 

주요 개발자 들을 제외한

나머지 개발자들은 Production DB등에 접근 불가한 경우가 많습니다

 

저는 주로 @Profile과 DB에 유저권한을 주는데

 

@Profile을 사용함으로써

빈들을 특정 프로파일에 맵핑합니다.

 

 

예를 들어서 

몽고디비를 로컬에 설치하고

로컬에 설치된 몽고디비를 테스트에 사용

몽고디비 원격을 Production에 사용하고자 한다면

 

yml 파일을 아래와 같이 설정하고

spring:
  profiles:
    active: prod
---
spring:
  config:
    activate:
      on-profile: "local"
  data:
    mongodb:
      host: localhost
      port: 27017
      database: local
---
spring:
  config:
    activate:
      on-profile: "non-prod"
  data:
    mongodb:
      host: localhost
      port: 27017
      database: local
---
spring:
  config:
    activate:
      on-profile: "prod"
  data:
    mongodb:
      uri: 주소
      database: 디비

 

테스트 코드를 아래와 같이 작성해 

로컬디비를 테스트용도로 쓰고

배포 및 일반 상황에는 위에 설정된 active : prod 프로파일을 쓸 수 있습니다.

import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest
import org.springframework.test.context.ActiveProfiles

@DataMongoTest
@ActiveProfiles("local")
internal class FluxAndMonoControllerTest {

    @Autowired
    lateinit var helloRepository: HelloRepository

    @Test
    fun findAll() {

        // helloRepository.findAll()
    }
}

참조 및 인용

https://www.baeldung.com/spring-profiles

 


블로그 추천 포스트

https://codemasterkimc.tistory.com/50

 

300년차 개발자의 좋은 코드 5계명 (Clean Code)

이번 글을 통해 배워갈 내용  좋은 코드(Clean Code)를 작성하기 위해 개발자로서 생각해볼 5가지 요소를 알아보겠습니다. 개요 좋은 코드란 무엇일까요? 저는 자원이 한정적인 컴퓨터 세상에서 좋

codemasterkimc.tistory.com

 

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

반응형