enum

Category
스터디노트 Spring
Status
Published
Tags
enum
Java
Description
Published
Slug

enum이란?

여러 개의 관련된 상수들을 하나의 그룹으로 묶는 타입
예를 들어, 버튼의 상태를 나타낼 때 "primary", "secondary", "disabled" 같은 문자열을 직접 쓰기보다는, 타입으로 강제해서 실수를 줄이고 코드를 더 명확하게 만들 수 있음
 

TypeScript에서의 enum

enum ButtonType { Primary, Secondary, Disabled } const button: ButtonType = ButtonType.Primary;
  • 기본적으로 숫자 열거형 (0, 1, 2)
  • 값을 지정해줄 수도 있음
enum ButtonType { Primary = "primary", Secondary = "secondary", Disabled = "disabled" }

장점

  • 문자열 반복 실수 방지 ("primery" 같은 오타 예방)
  • IDE 자동완성 가능
 

Java에서의 enum

Java에서는 enum이 더 강력. 단순 상수 묶음 그 이상임
하나의 클래스로 취급되기 때문에 필드, 메서드, 생성자까지 가질 수 있음
public enum ButtonType { PRIMARY, SECONDARY, DISABLED }

사용 예

ButtonType btn = ButtonType.PRIMARY;

 

React 개발자 관점에서 본 Java enum 특징

비교 항목
TypeScript
Java
기본값
숫자 또는 문자열
이름 기반 상수 (객체 느낌)
확장성
enum은 상수만 가능
필드, 생성자, 메서드를 가질 수 있음
런타임 동작
컴파일 후 JS 객체
클래스처럼 작동함 (정적 타입에서 강력함)
switch문에서 사용
O
O
IDE 자동완성
O
O

 
TypeScript의 enum은 단순히 값만 가지지만,
Java의 enum값 + 메서드 + 로직까지 포함할 수 있는 "미니 클래스" 같은 것

  • enum관련된 상수들을 묶어서 사용하는 타입.
  • TypeScript는 간단하고, Java는 더 강력하고 OOP스럽게 쓸 수 있음
  • Java의 enum은 생성자와 메서드를 가질 수 있어서, 로직을 포함한 상태 관리에도 적합