개발자

몽고 디비에서 type 값을 저장하는 필드를 추가하려고 하는데 어떤 데이터 타입을 사용할지 고민입니다. (number vs string)

2023년 03월 15일조회 87

RDB 에서는 주로 number 로 저장 했는데 몽고디비에서는 조금 다르게 string 으로 저장해도 괜찮을까요 ? number 로 저장하고 사용자에게 보여줘야 하는 경우에 매핑해서 string 값으로 보여주곤 했는데요. 몽고디비는 RDB 와는 다른 방법으로 접근법 해야한다고 들었고 string 으로 저장해버리면 어떨가 싶어서요. 왜냐하면 몽고디비는 '저장된 값을 그대로 화면에 보여준다' 라는 기조가 있기 때문에 number 를 string 으로 변환하는 중간 과정을 없애도 괜찮아 보이고 string 값을 저장 하더라도 큰 문제는 없어 보여서요. 다른 분들은 어떻게 사용하시나요 ? 이렇게 사용해보신분 있나요 ?

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

답변 1

김형준님의 프로필 사진

저도 비슷한 고민을 한적이 있어요. 결국 상황에 따라서 다르게 선택한다 인것 같아요. 저는 결국 string 타입을 사용하는것으로 결정 했습니다. 결정 하면서 한가지 우려된 점은 용량이에요. 몽고 디비는 각 document 의 최대 용량은 16MB 로 제한됩니다. 그래서 string 으로 사용할 경우 특히 저장하는 타입이 array 로 대량으로 저장된다면 사이즈가 증가하는 단점이 생깁니다. 하지만 일반적인 상황에 16MB 를 채우는 일이 얼마나 자주 발생 할까를 고민해보면 단점이 아닌것 같기도 하고요. 그래서 데이터가 16MB 를 넘을 위험이 있는 경우에만 number 사용을 고려해도 될것 같아요. 그래서 string 을 사용해서 얻는 장점이 단점보다 크다고 판단 했습니다. 추가로 이런 상황은 거의 없겠지만 만드는 서비스가 국제 서비스라서 i18n 을 고려해야 string 보다 number 가 더 적절할 수 있을것 같아요.

profile picture

익명

작성자

2023년 03월 16일

오 넵 저도 string 으로 저장해 봐야 겠어요! 답변 감사합니다 ㅎㅎ

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

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

또는

이미 회원이신가요?

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

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

새로운 질문 올리기

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