목록 보기
코드 품질 개선 기법 5편: 나쁜 열거가 좋은 계층을 몰아낸다
아키텍처

코드 품질 개선 기법 5편: 나쁜 열거가 좋은 계층을 몰아낸다

라인
라인
2025년 1월 31일

두줄요약

외부 저장소 값과 enum 선언을 `name`이나 `ordinal`로 직접 묶으면 리팩토링 때 외부 계약까지 깨질 수 있습니다. 별도 매핑값과 변환 계층으로 외부 값과 내부 정의를 분리하는 방법을 소개했습니다.

핵심 내용

  • 외부 저장소나 API 값과 enum 선언을 name, ordinal로 직접 연결하면 리팩토링 시 외부 값까지 함께 깨지는 결합 문제
  • 컨버터가 부패 방지층 역할을 하도록 외부 값과 enum 내부 정의를 분리하는 설계 필요
  • dbValue 같은 별도 속성과 매핑 테이블로 외부 값 변환을 관리하면 이름 변경, 순서 변경의 영향 범위 축소
  • 임시 변환 용도라면 예외적으로 사용할 수 있지만, 가능하면 enum 타입 자체를 유지하는 편이 바람직

적용해볼 점

  • enum 직렬화·역직렬화 코드에서 name, ordinal 사용 여부 점검
  • 외부 계약값과 내부 도메인값을 분리하는 전용 매핑 계층 도입
  • 리팩토링 시 외부 API/DB 포맷 영향까지 함께 검토

댓글 0

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

댓글을 불러오는 중...