개발자

[TS] 백엔드에서는 enum 써도 되나요?

2023년 08월 07일조회 3,587

타입스크립트에서 enum 쓰지 않아야 하는 이유가 IIFE로 변환되서 트리 쉐이킹이 잘 안 된다는 이유인 걸로 알고있는데 그럼 백엔드에서는 써도 되나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

인기 답변

연양갱님의 프로필 사진

안녕하세요. enum의 사용유무는 백엔드/프론트엔드의 관점에서 보는것보단 각 언어의 특성에 따른 enum사용유무로 접근하셔야 이해하시기가 편할것 같아요. 프론트엔드의 업무를 전문적으로 맡아본것이 아니여서 가볍게 구글링해봤을때는 Tree-shaking이라는 import되지 않는 함수를 지우는 최적화 대상에서 제외되기 때문이 권장하지 않는다고 했습니다. 자바에서는 enum사용을 적극 권장합니다. 첫째 이유로는 enum은 불변(immutable) 불변의 중요성은 데이터의 정합성을 지키는것에 있죠. 두번째로는 자바의 상수(final 자바스크립트는 const)의 사용보다는 가독성 측면으로도 enum사용을 권장하고 있습니다. 아래의 코드예시를 보면 간단하게나마 이해가 편하실 꺼에요. 남자(MAN) 여자(WOMAN)의 구분을 상수로 사용할 경우에는 타입안정성을 보장할 수 없고, 만약 MAN의 값이 02로 바뀔경우 의도치않은 결과가 나올 수 있습니다. 자바에서는 이러한 이유로 enum을 권장하고있고 python과 c에도 enum을 지원하고있지만 자바와는 또다른 구조입니다. 차이중 하나는 java에는 enum에 메서드나 속성을 가질수 있지만 c의 enum은 순수한 정수값일뿐 메서드나 속성을 가질수 없다고합니다. 답변이 참고가 되셨으면 좋겠네요 :)

1
2
3
4
5
6
/** 상수 사용 */
final static Srting MAN ="01";
final static String WOMAN = "02";

/** enum 사용 */
public enum Gender { MAN, WOMAN }
오규민님의 프로필 사진

오규민

서울시립대학교 컴퓨터과학부 개발자2023년 12월 03일

작성자분께서는 타입스크립트로 백앤드를 사용하는 경우에 관해 질문주신 것 같아요 :)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!