Subjects

Background

우리는 엔티티를 다룰 때, **status**를 자주 다룹니다. 이것을 데이터베이스에 문자열이 아닌 코드 값으로 저장하기 위해서 열거 타입에 code라는 필드를 만들어 사용하기도 했구요.

오늘 우리가 하려는 것은 열거타입에서 이 code 필드가 고유한지 소스 코드로 확인하는 것입니다.

첫 번째 진도인 ‘함수형 enum 유틸리티’에서 code 필드의 고유성을 확인합니다.

두 번째 진도인 ‘시맨틱 status code’에서 각 비트에 의미를 담고, 이를 다루는 빌더 클래스를 만듭니다.

세 번째 진도인 ‘컴파일타임 체크 빌더’에서 타입 세이프한 빌더로 업그레이드해 봅니다.

Codes

**EnumUtil**을 제외한 모든 코드는 src/**test**에 작성했습니다.


준비하기

SampleStatus