amplitude.init("2e2e5a386856efdf3237cf254a9d14d9"

[개념 콕] ENUM(열거형)

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
Jun 07, 2024
[개념 콕] ENUM(열거형)
✍🏼
개발에 입문하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개발 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 

ENUM이란?

ENUM은 enumerated type의 줄임말로 '열거형'이라고 불립니다. 프로그래밍에서 열거형은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형입니다. 이 열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자입니다.
 
예시를 살펴봅시다.
enum class PostType{ IMAGE,VIDEO,UNKNOWN }
위 코드에서는 enum을 사용하여 상수를 정의했습니다. 실제로 사용할 때는 열거형이름.상수명 형태로 사용할 수 있습니다. 이를 어떻게 활용할 수 있을까요?
fun checkedType(type: PostType) { when(type) { PostType.IMAGE -> println ("이미지 입니다") PostType.VIDEO -> println ("비디오 입니다") PostType.UNKNOWN -> println ("알수없는 타입입니다.") } } fun main() { val dataType = listOf(PostType.IMAGE , PostType.VIDEO) val index = 0 while(index < dataType.size) { checkedType(dataType[index]) index++ } }
 
위 함수를 실행해 보면 다음과 같은 결과를 얻을 수 있습니다.
이미지 입니다 비디오 입니다
이처럼 프로젝트에서 명확하게 구분할 수 있는 부분을 정의하면서 사용할 수 있습니다.
 
대표적인 예시로 요일을 표현할 때 enum을 활용할 수 있습니다.
enum class Week { MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY ; }
 

ENUM의 확장 기능

ENUM은 상수뿐만 아니라 함수도 가질 수 있습니다. 이를 통해 Enum과 관련된 유틸리티 함수를 정의할 수 있습니다.
enum class PostType{ IMAGE,VIDEO,UNKOWN ; companion object { fun create(text: String) = when(text) { "image" -> IMAGE "video" -> VIDEO else -> UNKOWN } fun getTypeName(type: PostType) = when(type){ IMAGE-> "image" VIDEO-> "video" UNKOWN-> "unknown" } } } fun main() { val img = PostType.create("image") if (img == PostType.IMAGE) { println("IMAGE CREATE!") } }
이 예시에서는 PostType Enum에 create와 getTypeName 함수를 정의하여, Enum 상수와 관련된 유틸리티 기능을 제공하고 있습니다.

ENUM을 사용하는 이유

우선, 코드를 작성할 때 IDE의 지원을 받을 수 있습니다. 위에서 정의한 PostType을 예로 들면, "Im"을 입력할 때 IDE에서 PostType.IMAGE를 자동 완성해 줍니다. 또한, "INAGE"처럼 오타가 발생하면 정의되지 않은 값이라는 에러를 알려줍니다. 이를 통해 자주 발생하는 '휴먼 에러'를 줄일 수 있습니다. 이외에도 허용 가능한 값들을 제한할 수 있어 불확실한 데이터가 들어오는 것을 방지할 수 있습니다. 리팩토링 시에도 Enum의 코드만 수정하면 되므로 데이터의 수정과 추가가 용이합니다. 또한 코드의 가독성이 높아집니다.
 
요약하면, ENUM은 코드의 가독성과 타입 안전성을 높이고, IDE 지원과 유지보수 용이성을 제공하는 유용한 기능입니다.
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
CREDIT
글 | 심규상 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
Share article
Subscribe to our newsletter
RSSPowered by inblog