RDB 에서는 주로 number 로 저장 했는데 몽고디비에서는 조금 다르게 string 으로 저장해도 괜찮을까요 ? number 로 저장하고 사용자에게 보여줘야 하는 경우에 매핑해서 string 값으로 보여주곤 했는데요. 몽고디비는 RDB 와는 다른 방법으로 접근법 해야한다고 들었고 string 으로 저장해버리면 어떨가 싶어서요. 왜냐하면 몽고디비는 '저장된 값을 그대로 화면에 보여준다' 라는 기조가 있기 때문에 number 를 string 으로 변환하는 중간 과정을 없애도 괜찮아 보이고 string 값을 저장 하더라도 큰 문제는 없어 보여서요. 다른 분들은 어떻게 사용하시나요 ? 이렇게 사용해보신분 있나요 ?
답변 1
저도 비슷한 고민을 한적이 있어요. 결국 상황에 따라서 다르게 선택한다 인것 같아요. 저는 결국 string 타입을 사용하는것으로 결정 했습니다. 결정 하면서 한가지 우려된 점은 용량이에요. 몽고 디비는 각 document 의 최대 용량은 16MB 로 제한됩니다. 그래서 string 으로 사용할 경우 특히 저장하는 타입이 array 로 대량으로 저장된다면 사이즈가 증가하는 단점이 생깁니다. 하지만 일반적인 상황에 16MB 를 채우는 일이 얼마나 자주 발생 할까를 고민해보면 단점이 아닌것 같기도 하고요. 그래서 데이터가 16MB 를 넘을 위험이 있는 경우에만 number 사용을 고려해도 될것 같아요. 그래서 string 을 사용해서 얻는 장점이 단점보다 크다고 판단 했습니다. 추가로 이런 상황은 거의 없겠지만 만드는 서비스가 국제 서비스라서 i18n 을 고려해야 string 보다 number 가 더 적절할 수 있을것 같아요.
익명
작성자
3월 16일
오 넵 저도 string 으로 저장해 봐야 겠어요! 답변 감사합니다 ㅎㅎ
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직 개발자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!