-저는 아직 공부하고 있는 학생이기 때문에 틀린 내용이 있을 수 도 있습니다. -
Enum이 무엇일까요?
제가 받았던 리뷰내용에서 특정 이미지 타입과 같은 부분에서 Enum을 사용하여, 주어진 값이 아닌 다른 값이 들어올 수 없도록 방지함으로써 Exception을 막아주기 위해 사용했습니다.
제가 공부했던 부스트코스 과정을 예로들면
Todo List를 만드는데 각 Todo항목의 type을 Enum으로 만들어 주거나,
네이버 예약시스템에서 이미지 type을 Enum으로 관리하여 실수를 줄일 수 있게 하라고 했습니다.
Java Enum 활용기 - 우아한형제들 기술 블로그
https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html
내용을 참고하여 작성하였습니다.
TODO List를 예로 들겠습니다.
Type이 "TODO", "DOING" "DONE" 이렇게 세가지가 존재할 것입니다.
각 타입이 어디에 위치하느냐에 따라 카드가 위치하게 됩니다.
public enum TodoType { TODO, DOING, DONE }
Enum은 상수이기 때문에 모든 변수는 대문자로 작성하는 것을 권장합니다.
다른 클래스에서는 private String type; → private TodoType type;으로 선언하여 변수를 갖게 되죠.
String 타입으로 선언된 type에서는 TODO, DOING, DONE 이외로 다른 문자열이 들어올 수 있지만,
TodoType 타입으로 선언된 type에서는 TODO, DOING, DONE 이외의 값이 들어올 수 없게 됩니다.
처음 Enum을 사용했을 때 SQL에서는 type 변수를 String 타입으로 받고 String 타입으로 주입하게 되는데,
저는 처음에는 JDBC를 사용할 때마다 switch / case 로 Enum을 사용했습니다.
하지만, 이 방법은 코드가 너무 길어져서 TodoType.valueOf(type.toUpperCase()) 이런식으로 String 문자열을 enum으로 바꿨어요.. ㅜㅜ
뭔가 이 방법이 좋은 방법은 아닌거 같은데 ㅜ 혹시 더 좋은 방법이 있으면 댓글로 공유 부탁드립니다.
아직 많이 부족하지만, 그래도 부족한 내용 조금 씩 채워가면서 공유할 수 있도록 하겠습니다.
+) 간단한 팁!!
Javascript 와 Python에서도 enum을 사용할 수 있어요!!
너무 간단해서 따로 포스팅하지는 않겠습니다. 하지만 개발과정에서 꽤 유용하니까 한번 찾아보세요!
'JAVA웹 개발' 카테고리의 다른 글
Map과 VO(Value Object)의 차이 (0) | 2021.05.26 |
---|---|
N-tech Service 인턴 교육 후기 (0) | 2021.05.20 |
댓글