Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- multibranch
- kaniko
- jnlp
- Docker
- EC2
- ingress-nginx
- 쿠버네티스
- helm
- helm-chart
- AWS
- RDS
- cloud controller manager
- ElastiCache
- sshtunneling
- redis oss
- 인프런
- Certbot
- Tunneling
- datagrip
- port forawrding
- elasticahe
- argocd
- vue3
- ssafy #싸피 #ssafy 12기 #싸피 12기 #ssafy 합격 #싸피 합격 #합격 후기
- Kubernetes
- 인프런강의
- ChatGPT
- 워커노드
- ssh
- k8s
Archives
- Today
- Total
처누
[201 Created] 3주차 - 상수를 static final로 관리하는 것과 enum으로 관리하는 것의 차이는 뭘까? 본문
Enum이란?
- Enum은 열거형이라고 하며 관련이 있는 상수들의 집합이다.
과거엔?
과거에는 아래와 같이 상수값들을 메서드 내에서 따로 선언해서 사용했다.
public static final int MONDAY = 1;
public static final int THUESDAY = 2;
public static final int WEDNESDAY = 3;
public static final int THURSDAY = 4;
public static final int FRIDAY = 5;
public static final int SATURDAY = 6;
public static final int SUNDAY = 7;
하지만 이러한 상수 선언은 다음과 같은 문제점을 가진다.
- 타입 안정성을 보장할 수 없다.
- 자바에서는 NAMESPACE를 제공하지 않기 때문에 표현력이 좋지 못하다.
- 정수 상수는 문자열로 표현하기가 어렵다. 문자열로 출력하려면 따로 메서드를 만들어야한다.
- 프로그램이 깨지기 쉽다.
ENUM의 등장
enum Day {
MONDAY(1)
THUESDAY(2)
WEDNESDAY(3)
THURSDAY(4)
FRIDAY(5)
SATURDAY(6)
SUNDAY(7)
}
자바 Enum의 장점은 다음과 같다.
- 위 코드에서 Day 타입을 매개변수로 받는 메서드를 선언했다면 7개의 값 중 하나임이 확실하고, 다른 타입의 값을 넘기려 하면 컴파일 오류가 발생한다.
- 문자열과 비교해 IDE의 적극적인 지원을 받을 수 있다.
- 각자의 이름 공간이 있어서 같은 상수도 공존할 수 있다.
- 새로운 상수를 추가하거나 순서를 바꿔도 다시 컴파일하지 않아도 된다.
- 허용 가능한 값들을 제한할 수 있다.
- 리팩토링시 변경 범위가 최소화된다.
- 데이터들 간의 연관관계를 표현할 수 있다.
'스터디' 카테고리의 다른 글
[Clean Code] 7장 - 오류 처리 (0) | 2024.01.20 |
---|---|
[Clean Code] 5장 - 형식 맞추기 (0) | 2024.01.15 |
[Clean Code] 3장 - 함수 (1) | 2024.01.15 |
[Clean Code] 2장 - 의미 있는 이름 (1) | 2024.01.14 |
[201 Created] 1주차 Java Collection - Array와 ArrayList의 차이 (3) | 2023.10.23 |