![[Tistory] Enum 키워드를 사용하여 UserEnum을 정의(Enum 장점)](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255BTistory%255D%2520Enum%2520%25ED%2582%25A4%25EC%259B%258C%25EB%2593%259C%25EB%25A5%25BC%2520%25EC%2582%25AC%25EC%259A%25A9%25ED%2595%2598%25EC%2597%25AC%2520UserEnum%25EC%259D%2584%2520%25EC%25A0%2595%25EC%259D%2598%28Enum%2520%25EC%259E%25A5%25EC%25A0%2590%29%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3DCoding_study&w=2048&q=75)
1. Enum
정의 (예시)
먼저
UserEnum
을 정의하여 유저 중복 여부에 따라 상태를 구분합니다.public enum UserEnum { USER_EXIST, // 사용자 존재 USER_NO_EXIST // 사용자 없음 }
2. 사용 목적
- 상태 정의: 사용자의 존재 여부를 명확히 표현
USER_EXIST
와USER_NO_EXIST
는 코드에서 각각 사용자 존재와 부재를 나타낸다.
- 코드 가독성: 이 enum을 사용하면, 숫자나 문자열 대신 의미 있는 이름을 사용하여 코드의 가독성을 높일 수 있다. 예를 들어,
if (status == UserEnum.USER_EXIST)
는if (status == 1)
보다 훨씬 이해하기 쉽다.
- 오류 예방: 잘못된 값이 사용되는 것을 방지한다.
enum
은 정의된 값만 사용할 수 있기 때문에, 잘못된 상태 값이 사용되는 것을 방지할 수 있다.
3. 사용 예
public UserEnum checkUsername(String username) { Optional<User> user = userRepo.findByUsername(username); if (user.isPresent()) { return UserEnum.USER_EXIST; } else { return UserEnum.USER_NO_EXIST; } }
4. 응답 처리
$.ajax({ url: '/username-check?username=' + username, type: 'GET' }).done((res) => { if (res.body === "USER_EXIST") { // 사용자 존재 처리 } else if (res.body === "USER_NO_EXIST") { // 사용자 없음 처리 } }).fail(() => { alert("오류가 발생했습니다. 다시 시도해 주세요."); });
5. 주요 장점
- 명확한 의미 부여
enum
을 사용하면 상수 값에 의미 있는 이름을 부여할 수 있어, 코드에서 그 상수가 무엇을 의미하는지 명확하게 알 수 있다.- 예를 들어,
OrderStatus.PENDING
은 단순히0
이라는 숫자보다 더 직관적이다.
- 타입 안전성
enum
은 정의된 값만 사용할 수 있기 때문에, 잘못된 값이 사용되는 것을 방지할 수 있다.- 이는 코드의 안정성과 오류 예방에 도움을 준다.
- 코드 가독성 향상:
- 코드에서 상수 값을 직접 사용하는 것보다, 의미 있는 이름을 가진
enum
값을 사용하는 것이 더 읽기 쉽고 이해하기 쉽다.
- 유지보수 용이
- 값의 집합이 변경되거나 확장될 때,
enum
을 사용하면 해당 변경 사항을 중앙에서 관리할 수 있어 유지보수가 더 용이하다.
- 관련 행동이나 메서드 정의 가능
enum
에 메서드를 추가하여 관련된 행동을 정의할 수 있다.- 예를 들어, 각
enum
값에 대해 특정 행동을 구현할 수 있다.
Share article