토스뱅크, MSA 환경 Enum 관리 전략 공개! 0% 에러 달성 비결은?

by DD
11개월 전
조회수 15

MSA 환경에서 Enum 공유 시 발생하는 Deserialize 에러 문제점을 지적함

EnumString 도입, ArchUnit 활용, Meta-Expose 시스템 구축을 통해 문제 해결

Enum deserialize 오류 0% 달성, 안정적인 서비스 운영 및 개발 생산성 향상

EnumString: 유연한 Enum 관리의 시작

EnumString은 Enum의 타입 안정성을 유지하면서도, 예상치 못한 값에 대한 유연한 처리를 가능하게 한다. 구체적으로, toEnumOrElse, toEnumOrThrow 등의 메서드를 제공하여 개발자가 예외 처리 또는 기본값 설정을 선택할 수 있도록 한다. 따라서 Deserialize 오류를 효과적으로 제어하고, 데이터 무결성을 확보한다.

ArchUnit을 활용한 EnumString 강제

ArchUnit을 사용하여 EnumString 사용을 시스템적으로 강제함으로써, 새로운 개발자도 쉽게 EnumString을 활용하도록 유도한다. 패키지 의존성 검사를 통해 Enum 사용 규칙을 정의하고, 빌드 시점에 위반 사항을 감지한다. 결과적으로, Enum 관련 오류 발생 가능성을 줄이고, 코드 품질을 향상시킨다.

Meta-Expose: Enum 배포 동기화 시스템

Meta-Expose는 Enum 버전 동기화를 위한 시스템으로, Enum API를 자동으로 노출하고, Hub에서 정의 일관성을 검증한다. Grafana 대시보드를 통해 실시간 모니터링을 제공하여, Enum 변경 사항을 즉시 파악하고, 배포 누락을 방지한다. 따라서 서비스 안정성을 높이고, Enum 관련 문제를 사전에 예방한다.

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