여러 코드에서 공통적인 데이터가 필요한 경우 주로 상수를 사용합니다.
하지만 상수가 여러 개 이상이면 관리하기 힘들기 때문에 Enum(열거타입)을 사용하는 것이 좋습니다.
스프링에서 Enum을 사용하는 방법입니다.
위의 예제 코드는 컨트롤러가 리스트를 json으로 반환하는 예제로 Map의 key 타입이 String, value 타입이 Object로 제너릭 설정했습니다.
하지만 Map의 key를 String으로 하면 아무 String이 key로 쓰일 수 있기 때문에 좋지 않습니다.
또한 key가 오타가 입력되어 클라이언트로 보내진다면 에러가 발생할 수 있습니다.
예를 들어 클라이언트에서 "LIST" 키를 기준으로 데이터 파싱을 처리해야 하는데
"list"나 "array"로 키가 전달된다면 데이터 파싱에 문제가 발생할 수 있습니다.
따라서 이런 문제점을 해결하기 위해서는 Enum을 사용해야 합니다.
Ajax라는 이름의 Enum을 생성했습니다.
4~7라인 : LIST, MSG, SUCCESS, FAIL이라는 Enum 상수 선언
9~11라인: 각 Enum 상수가 가지는 필드, upperCase/lowerCase/normalCase
13~17라인: Enum 상수가 필드를 사용하기 위해 생성자 정의
19~29라인: 각 Enum 상수의 필드 리턴하는 메소드
Map의 key 타입을 앞에서 생성한 AJAX Enum을 사용했습니다.
이렇게 하면 key 타입이 AJAX 이외의 타입을 받을 수 없고, 오타가 발생할 확률도 낮아지기 때문에
코드 안정성에서 좋습니다.
그리고 Enum 상수의 필드를 사용할 수 있기 때문에 확장성과 유연성 측면에서 유용합니다.
해당 글에 대한 정보는 이펙티브 자바 도서를 참고했습니다.
'dev > 스프링' 카테고리의 다른 글
Spring Naver Editor 이미지 업로드 (0) | 2023.06.28 |
---|---|
Spring Boot Logback (0) | 2023.06.21 |
Spring Boot WebSocket (0) | 2023.02.14 |
Spring DI (0) | 2023.02.07 |
SSO 로그인 연동 (0) | 2023.01.10 |