[Tistory] Enum 키워드를 사용하여 UserEnum을 정의(Enum 장점)

yuzu sim's avatar
Sep 15, 2024
[Tistory] Enum 키워드를 사용하여 UserEnum을 정의(Enum 장점)

1. Enum 정의 (예시)

먼저 UserEnum을 정의하여 유저 중복 여부에 따라 상태를 구분합니다.
public enum UserEnum { USER_EXIST, // 사용자 존재 USER_NO_EXIST // 사용자 없음 }

2. 사용 목적

  • 상태 정의: 사용자의 존재 여부를 명확히 표현
  • USER_EXISTUSER_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. 주요 장점

  1. 명확한 의미 부여
      • enum을 사용하면 상수 값에 의미 있는 이름을 부여할 수 있어, 코드에서 그 상수가 무엇을 의미하는지 명확하게 알 수 있다.
      • 예를 들어, OrderStatus.PENDING은 단순히 0이라는 숫자보다 더 직관적이다.
  1. 타입 안전성
      • enum은 정의된 값만 사용할 수 있기 때문에, 잘못된 값이 사용되는 것을 방지할 수 있다.
      • 이는 코드의 안정성과 오류 예방에 도움을 준다.
  1. 코드 가독성 향상:
      • 코드에서 상수 값을 직접 사용하는 것보다, 의미 있는 이름을 가진 enum 값을 사용하는 것이 더 읽기 쉽고 이해하기 쉽다.
  1. 유지보수 용이
      • 값의 집합이 변경되거나 확장될 때, enum을 사용하면 해당 변경 사항을 중앙에서 관리할 수 있어 유지보수가 더 용이하다.
  1. 관련 행동이나 메서드 정의 가능
      • enum에 메서드를 추가하여 관련된 행동을 정의할 수 있다.
      • 예를 들어, 각 enum 값에 대해 특정 행동을 구현할 수 있다.
Share article

Coding_study