삽질 주도 개발
article thumbnail
Spring 프로필 환경별 빈 주입하기
Spring 2023. 1. 20. 02:02

오늘은 @Profile을 활용해서 환경별로 빈 주입을 다르게 하는 방법을 알아보도록 한다. 사내 서비스가 사외 서비스로 one-code로 오픈이 되는 경우가 있다. 그렇게 되면 상황별로 처리해야 하는 로직이 틀려질 수 있다. 이때 분기문으로 매번 처리를 하게 되면 코드가 지저분해질 뿐더러 테스트가 어려워지는 코드가 된다. 즉, 환경별로 담당하는 서로 다른 객체에 역할을 분리해주는 것이 더 나은 방법이다. 이때 다형성과 @Profile을 활용하면 보다 나은 방법으로 환경별 로직을 처리할 수 있다. 먼저 @Profile을 사용하지 않는 상황을 생각해보자. profile은 internal과 external이 있다고 가정한다. signIn()은 환경별로 로직이 달라지고, sendOtp()는 공통 로직으로 처리된..

article thumbnail
Spring 환경별 profile 분리
Spring 2022. 11. 17. 20:46

실무에서 보통 개발 환경별로 application profile을 분리한다. 현재 회사에서 사내망(dev, stg, prod), 사외망(dev, stg, prod)에서 각각의 yml로 설정을 분리하는 방식을 사용했다. 기능이 추가될수록 yml 파일은 커지고 누군가는 똑같이 맞추기 위해서 그대로 설정을 다른 yml에 붙여넣으면서 배보다 배꼽이 더 커지는 것을 보고 배꼽을 눌러주기 위해 profile 분리에 대해 공부하고 적용했다. 환경 MACBOOK AIR M1 Intellij ultimate spring boot 2.7 maven3 jdk17 기본적으로 local 환경에서 구동할 경우 어떤 환경으로 서버를 구동할지에 대한 설정이 필요하기 때문에 profiles.active 혹은 profiles.defau..