Spring Cloud Config란?각 서비스는 자체적인 설정 정보를 가지고 있으며, 보통 application.yml 또는 application.properties 파일에서 관리합니다. 하지만 설정 정보 하나를 변경하기 위해 애플리케이션을 재배포해야 하는 경우가 많습니다. 또한 여러 서비스의 동일한 설정을 변경해야 할 때는 각 서비스마다 개별적으로 수정해야 하는 번거로움이 있습니다. 이런 상황에서 Spring Cloud Config를 사용하면 여러 서비스의 설정 정보를 중앙에서 관리하고, 변경된 설정을 실시간으로 각 서비스에 적용할 수 있습니다. Spring Cloud Config는 분산 환경에서 애플리케이션 설정을 중앙화하고, 설정 변경 시 실시간으로 이를 반영할 수 있는 기능을 제공합니다. 이 글..
마이크로서비스 아키텍처에서 API Gateway는 클라이언트 요청을 적절한 서비스로 라우팅하는 중요한 역할을 합니다. 이 게이트웨이에서 발생하는 문제는 모든 트래픽이 영향을 받기 때문에 시스템 전체 가용성에 직접적인 영향을 미칩니다. 최근 Spring Cloud Gateway에서 X-Forwarded-Prefix 헤더가 요청 경로에 영향을 미치는 이슈를 발견했습니다. 이 글에서는 문제 상황부터 원인 분석, 해결 방법까지 상세히 공유하고자 합니다.1. 문제 상황: 예상치 못한 라우팅 경로 변경Spring Cloud Gateway를 기반으로 한 API Gateway를 개발 환경에서 테스트하던 중, 이상한 현상을 마주쳤습니다. X-Forwarded-Prefix 헤더가 포함된 요청을 보냈을 때, Gateway가..
상황 LIME 서비스 개발 중에, 특정 상황에서 사용자에게 포인트를 지급하는 요구사항이 있었다. 포인트는 댓글 작성, 댓글 채택, 리뷰 작성 세 가지 상황에서 지급된다. 현재 LIME 서비스에서는 이 로직을 AOP로 구현하고 있다. AOP는 주로 비지니스 로직과 그 외 공통 로직을 분리하는 프로그래밍 방식으로 사용되는데, 포인트 지급이라는 비지니스 로직을 AOP로 처리하는 것이 다소 어색해 보였다. 따라서, 이 기능을 '직접 메소드 호출' 또는 '이벤트 처리' 중 어느 방식으로 변경할지 고민하게 되었다. 고려 사항 1. 관심사의 분리 포인트 지급이 비지니스 로직의 한 부분이라는 건 분명하다. 그렇다면 이 로직은 포인트 지급이 발생하는 로직(댓글 생성, 댓글 채택, 리뷰 생성)과 분리되어야 하는 관심사인가..