목록 보기
에러 0%, MSA에서의 Enum 관리 전략
아키텍처

에러 0%, MSA에서의 Enum 관리 전략

토스
토스
2025년 6월 18일

두줄요약

MSA에서 공용 Enum의 버전 불일치로 생기는 Deserialize 에러를 줄이기 위한 관리 전략을 소개했습니다. 문자열 래핑, 빌드 규칙, 메타 감시로 안전성을 높였습니다.

문제 상황

  • MSA에서 공용 Enum 값이 버전 불일치로 Deserialize 에러를 유발하는 문제
  • 서비스 확장, 담당자 변경, 새 Enum 추가 시 반복적으로 발생하는 운영 리스크

원인 분석

  • 제공자와 소비자 간 Enum 기대 동작이 서로 달라 단일 규칙으로 관리하기 어려운 구조
  • 소비자 버전이 따라가지 못하면 알 수 없는 값이 곧바로 장애로 이어지는 의존성

해결 방법

  • EnumString으로 Enum 값을 문자열 기반으로 다루며 toEnumOrNull, toEnumOrElse, toEnumOrThrow로 처리 정책을 선택
  • ArchUnit으로 소비자 코드의 직접 Enum 사용을 감지해 빌드 단계에서 전파 차단
  • Meta Expose로 Enum 정의를 외부 노출하고 Hub, ServiceDiscovery, Prometheus, Grafana로 버전 불일치 감시

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...