함수형 Enum 유틸리티
Functional Enum Utility
시맨틱 Status Code
Semantic Status Code Bits
컴파일타임 체크 빌더
Compile-time Checked Builder
우리는 엔티티를 다룰 때, **status
**를 자주 다룹니다. 이것을 데이터베이스에 문자열이 아닌 코드 값으로 저장하기 위해서 열거 타입에 code
라는 필드를 만들어 사용하기도 했구요.
오늘 우리가 하려는 것은 열거타입에서 이 code
필드가 고유한지 소스 코드로 확인하는 것입니다.
첫 번째 진도인 ‘함수형 enum 유틸리티’에서
code
필드의 고유성을 확인합니다.두 번째 진도인 ‘시맨틱 status code’에서 각 비트에 의미를 담고, 이를 다루는 빌더 클래스를 만듭니다.
세 번째 진도인 ‘컴파일타임 체크 빌더’에서 타입 세이프한 빌더로 업그레이드해 봅니다.
**EnumUtil
**을 제외한 모든 코드는 src/**test**
에 작성했습니다.
build.gradle.kts
application.yml
(src/test/resources)SampleStatus