관리 메뉴

백엔드 엔지니어 이재혁

[MSA 전환기] Day 4 - MS별 버전 관리, CORS 관리 본문

케어매칭 서비스 배포

[MSA 전환기] Day 4 - MS별 버전 관리, CORS 관리

alex00728 2025. 11. 4. 22:10

MS별 버전 관리

AS-IS (모놀로식 기반)

기존에는 프론트 ↔ 백엔드 API 버전을 하나로 관리했다.
개인 사이드 프로젝트라 크게 버전이 바뀔 일이 없었던 것이 컸다.

 

TO-BE (MSA 기반)

Micro Service 간의 독립성 보장을 위해 각 서비스가 독립적으로 버전 관리를 할 수 있도록 바꿔주었다.

 

기존 백엔드 시스템(플랫폼 서버)에 변화를 줄 필요는 없었고,

(기존의 APP 버전을 플랫폼 서버가 이어받아서 사용)

프론트엔드에서 각 서비스별로 버전을 다르게 지정할 수 있도록 수정을 했다.

 

관련 PR: https://github.com/Jaehyuk-Lee/carematching-front/pull/76

 

CORS 관리

기존에 백엔드에서 관리하던 CORS도 API Gateway로 제어권을 넘겼다.

클라이언트와 마이크로서비스 간의 CORS 문제를 한 곳에서 처리하기 용이해질거라고 생각한다.

특히... 현재 CORS 정책은 origin만 유효하다면 모든 요청을 허용하는 방식으로 정해놓았기 때문에 통합관리하는 것이 유리하다.

 

관련 PR: https://github.com/Jaehyuk-Lee/carematching-backend/pull/99

 

기타

Docker Hub에서 `openjdk:21-slim` 이미지가 없어졌다.

Github Action에서 빌드 자동화한 CI 스크립트가 에러를 넘겨줬다.

 

`Error: buildx failed with: ERROR: failed to build: failed to solve: openjdk:21-slim: failed to resolve source metadata for docker.io/library/openjdk:21-slim: docker.io/library/openjdk:21-slim: not found`

 

설마 이미지가 없어졌다고? 라는 생각이 들었는데, 정말로 없어졌다... ㄷㄷ

레파지토리가 전부 날아간 상황 (혹은 비공개)

 

slim으로 커스텀한 이미지가 있어서 그걸 썼었는데, 업로더가 이미지를 날려버릴 수도 있구나... 경험하고 이제는 검증된 사용자의 이미지를 쓰는 쪽으로 가려고 한다. 보안상으로도 그게 좋을 것 같고...

 

캐노니컬(우분투)에서 배포하는 jre 이미지로 바꿨다. Verified Publisher 인증도 붙어있다.

https://hub.docker.com/r/ubuntu/jre