인프런 커뮤니티 질문&답변

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

김영한의 실전 자바 - 중급 1편

열거형 - 리팩토링2

이넘 생성자(enum) 선언 할때(코딩 컨베션? 맞냐요?) 질문

해결된 질문

작성

·

130

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 열거형(enum)을 복습하다가 생성자 를 만들때 현업에서는 어떤 방법(코딩 컨베션이라할까요?)을 많이 쓰는지 궁금해서 질문을 드립니다.

ref2 풀더 Grade라는 enum 클래스 를 보시면 영한님은

열거형 필드값?(맞는 말인지 모르겠네요)을 보시면

image.png

1번째 사진처럼 하더라고요,.

그리고 저가 이해하기 쉬울 려고, 주석을 추가 하였는데,

image.png

2번째 사진 처럼, 할 경우도 있을 것 같아서 질문을 드립니다.

현업 개발자분들은 첫번째 or 두번째 사진중 어느 방법을 선호하시고? 쓰시는지 궁금합니다.

답변 부탁 드립니다.

답변 2

1

안녕하세요. 생각하는자님, 공식 서포터즈 OMG입니다.

Enum의 가독성 관점에서 둘 중 어떤 것이 더 많이 선호되는지는 정답이 없다고 생각하는데요,

제 개인적인 선호도나, 회사에서 사용하는 코드 중 자주보이는 방식은 후자(두번째)입니다 😀

인프런의 현 CTO이신 동욱님도 아래 링크에서 확인할 수 있는 것처럼 후자의 방식으로 사용하셨네요^^

https://techblog.woowahan.com/2527/

개인적인 생각으로 어떠한 기준으로 개발할지 정해보면,

(1) discountPercent와 같은 필드가 정의되어 있지 않고 Enum 값의 갯수가 많지 않다면

한줄로 표기할 것 같습니다.(첫번째 방식)

(2) 필드가 정의되어 있다면 가독성 측면에서 줄내림 방식으로 표기할 것 같습니다.(두번째 방식)

 

Enum 작성의 기준을 정하는 데 도움이 되길 바랍니다. 😀

감사합니다.

그러네요. 알겠고, 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

생각하는자님께서 열거형(enum) 생성자를 선언할 때 현업에서 선호하는 코딩 컨벤션에 대해 궁금해 하셨군요. enum 생성자를 활용하는 방법론과 관련하여 제공된 정보에는 두 가지 질문 “문제 풀이1번 enum AuthGrade 질문”“열거형 Stringing - ENUM 에서 질문”이 포함되어 있습니다. 이러한 내용을 바탕으로 질문에 대한 해답을 제공해 드리겠습니다.

주어진 사진들을 통해 이해한 바로는, 첫 번째 방식에서는 enum 선언 시 직접 필드 값(예: BASIC(10) 등)을 지정할 수 있고, 이를 통해 상수별로 특정한 속성 값(여기서는 할인율 discountPercent)을 가지도록 하는 방식을 보여줍니다. 두 번째 방식은 별도의 설명 없이 비슷한 구조로 추정되나, 실제로는 첫 번째 이미지와 연관된 상세한 내용이 없어, 컨벤션에 대한 정확한 비교가 어렵습니다.

현업에서의 enum 사용 방식은 프로젝트나 팀의 컨벤션에 따라 다릅니다. 일반적으로 첫 번째 방법과 같이 enum의 생성자를 사용하여 각 상수에 특정 값을 할당하는 방식은 매우 일반적입니다. 같은 enum 내의 각 상수가 고유한 속성 값을 가지고 있을 때 유용하게 사용됩니다. 이렇게 하는 주요 이유는 상수별로 다른 값을 매핑할 수 있고, 이를 통해 enum이 더 유연하게 활용될 수 있도록 하기 위함입니다.

예를 들어, 서로 다른 멤버십 등급(BASIC, GOLD, DIAMOND)에 각각 다른 할인율을 연결해야 할 때, enum 생성자를 활용하여 각 등급별 할인율을 초기화할 수 있습니다. 이후 getDiscountPercent()와 같은 메서드를 통해 어디서든 해당 할인율을 쉽게 조회할 수 있습니다.

그러나 제가 확인할 수 있는 정보 내에서는 현업 개발자들 사이에서 첫 번째 방식과 두 번째 방식 중 어느 것을 더 선호하는지, 또는 어떤 코딩 컨벤션을 따르는지에 대한 명확한 답변을 제공하지는 못합니다. 일반적으로, 두 방식 모두 enum을 사용하는 유효한 방법입니다. 결국에는 팀 내 정의된 컨벤션 및 실제 사용 사례에 따라 결정될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

그냥 이넘생성자 하나 쓰고 엔터하고, 다시 이넘생성자, 또다시 엔터, 이넘생성자 이런식으로 하는지 아니면 그냥 한줄로 하는지 그게 궁금한거에요..

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

질문하기