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

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

라인
라인
2025년 1월 31일

두줄요약

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

핵심 내용

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

적용해볼 점

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

다음 읽기

같은 회사의 연관 글

코드 품질 개선 기법 9편: 왔던 길을 되돌아가 보자

양방향 변환은 한쪽 로직을 기준으로 다른 쪽을 유도하는 편이 안전했습니다. 중복 값과 누락은 테스트로 보강하는 방식이 유효했습니다.

라인
라인
백엔드

댓글 0개

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

댓글을 불러오는 중...