on
spring profile or maven profile
spring profile or maven profile
어떤 구조를 채택할 것인가?
사실 잘 모르겠다. 결국 내 선택이 무엇이냐 인데..
각 구성의 차이를 살펴보았다.
빌드타임과 런타임
메이븐은 빌드타임에 프로파일을 선택하고 환경에 맞는 결과물을 각각 만들어 낸다. 환경마다 빌드를 따로 해야 된다는 것이다. 필요한 정보만 가지고 최소한의 패키지를 만드는 장점이 있다. 어떻게 보면 당연한 것이었다.
스프링은 모든 환경을 포함한 패키지로 런타임에 선택한다. 빌드를 한번만 해도 된다.
내가 주로 일했던 기업 환경에선 이렇게 못한다. 반려 당하기도 하고 반려를 하기도 했다.
환경에 대한 종속
개발자의 개인 개발환경, 테스트 환경, 운영 환경의 로그인 방식이 모두 다른 경험이 있다. 뿐만 아니다. 어떤 기능은 사용하는 도구의 지원 부족으로 환경에 따라 목업으로 처리한 경우도 있다.
이런 경우는 선택지가 아니다. 메이븐이다. 스프링에서도 @Conditinal 과 기타 주석을 사용하여 처리는 가능하겠지만 그 정도까지 하는건 아니다 싶다.
얼마나 사용하기 쉬운가
메이븐은 사용하기 위해 제법 고민을 해야한다. 소스 구조가 적합하지 않다면 바꿔야 하고, 빌드를 위해 메서드를 쪼개는 경우도 있다. 뜻밖에도 이런 작업의 결과로 소스 구조가 더 깔끔해지는 경험도 있었다. 그만큼 시간을 투자해야 했지만..
스프링은 그냥 쓰면된다. 편하다. 대신 소스가 지저분해 지는 느낌이다.
결론
스프링 프로파일을 선택하였다. 가벼워진 개발환경과 그에 맞는 수준의 구조화가 필요했다.
필요할 때 빌드 도구의 힘을 빌리면 될 것이다.
from http://jgwk.tistory.com/83 by ccl(A) rewrite - 2021-11-28 13:01:37