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은 생성자와 메서드를 가질 수 있어서, 로직을 포함한 상태 관리에도 적합