이중화된 서버 다중 프로파일 적용

Reading-Snail·2023년 12월 5일
1

운영서버는 이중화 되어있어 두 서버 모두 OP라는 하나의 프로파일을 바라보고 있게 설계 되어있었습니다. 프로젝트 도중 이중화된 서버 안에서도 별도의 빈프로퍼티로 작동해야 하는 상황이 발생하여 어떻게 분리할지에 대한 고민이 생겼습니다.

첫번쨰 나온 방안은 배포단계에서 별도의 해당 Context파일을 바꿔치는 방식이었습니다. 하지만 성에 차지 않고, 필요 이상으로 복잡해진다는 느낌이 들어 좀 더 고민해보게 되었습니다. 코드 상의 분기처리를 배포단계까지 가지고 오는 것이 마음에 들지 않았습니다.

그러던 중 토비의 3.1 vol.2 초반에서 언급된 profile설정이 떠올랐고, 그 중에서도 프로파일이 여러개 설정될 수 있다는 사실이 기억 났습니다. 여러 개 설정될 수 있다면 OP_1, OP_2를 OP와는 별개로 추가하여 추가되어야 하는 각각의 톰캣 서버에 프로파일을 추가해주기만 하면 되는 부분이었습니다.

관련 자료를 좀 더 찾아봤고, 톰캣에서 다중 프로파일 설정을 할 수 있으며, 톰캣에 설정된 프로파일의 순서는 상관이 없지만 스프링에 정의된 빈의 가장 마지막 순서의 빈이 적용된다는 것을 알았습니다. 즉, 빈이 서로 중복되지 않는다면 두 프로파일 모두 적용된다는 것입니다.

다만 혹시 Spring.profile.active 정보를 직접 사용하는 곳은 없는지 걱정이 되었고, 탐색해보니 로그인 관련 부분에서 서버의 프로파일에 따라 다른게 동작하도록 설정된 java코드 내용이 있었습니다. 이 부분은 프로파일 정보를 구분자로 잘라 첫번째 프로파일만 참고하도록 조정하였습니다.

뒤돌아보며..

결국 아는 만큼 보이는 것 같습니다. 토비의 스프링을 꼼꼼히 읽지 않았다면 다중 프로파일에 대한 설정도 알지 못했을 것입니다. 결국 계속 공부하는 사람이 또 새롭고, 단순하며 편리한 방법으로 문제를 해결 할 수 있는 것 같습니다.

profile
책읽는 달팽이 || 공학도에서 개발자로! || 결국 과거의 흐름을 이해했을 때 지금의 것들을 통찰력있게 바라볼 수 있다고 믿습니다.

0개의 댓글

관련 채용 정보