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

ljh님의 프로필 이미지
ljh

작성한 질문수

실전! 스프링 데이터 JPA

Enum 활용기에 대하여

작성

·

269

3

안녕하세요. 현업에서 JPA로 개발하고 있는 주니어 개발자입니다.

사이드 프로젝트를 진행하면서 **DBMS**단에서 Enum을 사용할 지 VARCHAR를 사용할 지 별도의 Table을 사용할 지 고민을 하고 있습니다.

 

관련하여 향로님께서 써주신 Enum 활용기라는 글을 비롯한 우아한 형제들 기술 블로그에 있는 다른 Enum 내용을 모두 정독하였습니다.

 

하지만 Java 앱 단에서 Enum을 사용한다는 사실은 찾을 수 있었지만, DB에서 데이터를 저장하는 방식은 찾을 수 없었습니다.

이해한 바로는 해당 게시글에서는 Java(JPA)단에서는 Enum을 사용하고 DBMS에서는 VARCHAR, CHAR로 데이터를 저장하는 것 아닐까 싶은데 잘 이해한건가요?

(만약 그렇다면 다른 프로젝트에서 해당 DB 테이블을 사용할 때 어떤 입력 값을 받아야 하는 지 알기 위해 어떻게 해야 할까요..??)

 

> 강의 매우 잘보고 있습니다. 거의 다 2번 이상씩 본 것 같아요..!! 감사합니다. (혹여 무례하지 않다면 질문에 대해 직접 말씀 듣고 싶습니다.)

 

(예시가 빠졌네요!)

가령 Account라는 테이블이 있다면 해당 Account의 상태로 ACTIVE, LOCKED, WITHDRAW, ...)을 저장해야 하는 경우 입니다.

답변 1

0

안녕하세요. ljh님, 공식 서포터즈 David입니다.

만약 그렇다면 다른 프로젝트에서 해당 DB 테이블을 사용할 때 어떤 입력 값을 받아야 하는 지 알기 위해 어떻게 해야 할까요..??

=> Enum 값의 목록이 필요하다면 별도의 테이블을 만들 것 같고, 그게 아니라면 VARCHAR를 사용할 것 같습니다.

DBMS의 enum 타입 사용에 대해서는 아래 글도 한 번 참고해주세요.

https://velog.io/@leejh3224/%EB%B2%88%EC%97%AD-MySQL%EC%9D%98-ENUM-%ED%83%80%EC%9E%85%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80-%EB%A7%90%EC%95%84%EC%95%BC-%ED%95%A0-8%EA%B0%80%EC%A7%80-%EC%9D%B4%EC%9C%A0

감사합니다.

ljh님의 프로필 이미지
ljh

작성한 질문수

질문하기