백엔드 엔지니어 이재혁
[MSA 전환기] Day 4 - MS별 버전 관리, CORS 관리 본문
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

'케어매칭 서비스 배포' 카테고리의 다른 글
| 결제 시스템: Enum을 활용한 유한 상태 기계 만들기 (0) | 2025.11.11 |
|---|---|
| [MSA 전환기] Day 2 - 타임아웃 및 http/2 설정 (0) | 2025.11.01 |
| [MSA 전환기] Day 1 - 설계, API Gateway 만들기 (0) | 2025.10.30 |
| 컨테이너 환경 Nginx에 HTTPS 적용 및 인증서 자동 재발급 (0) | 2025.09.24 |
| 케어매칭 AWS 프리티어 배포기 (0) | 2025.07.12 |