개발자

실무에서 RDB 테이블을 분리할 때 고려하는 기준에는 어떤 것들이 있나요?

2023년 05월 21일조회 144

안녕하세요! 백엔드 개발자를 꿈꾸고 있는 취준생입니다! 최근 진행 중인 프로젝트에서 api와 DB를 개발하던 중 궁금한 사항이 생겨 질문 올려봅니다! (기술 스택은 spring boot, mybatis, mysql 활용 중입니다.) 처음 기획 단계에서 DB를 설계할 때 이론적으로 배웠던대로 데이터 중복 저장을 최소화 하고 데이터 간의 관계를 최대한 반영하기 위해서 테이블을 무작정 잘게 나눴는데요! 설계 후 개발 과정에서 까다로운 사항들과 계속 마주치게 되더라구요..! 지금 생각나는 까다로웠던 사항들만 대략 정리해보면, - 테이블 간의 관계가 복잡해져 쿼리가 길어지고 복잡해졌고,(가독성에도 영향을 주는 듯 하더라구요!) - 특정 데이터를 조회할 때, 오직 join 조건만을 위해 여러 테이블들이 탐색되어지는 경우 발생했고, - 데이터 변경(삽입 수정 삭제) 과정이 까다로워졌고, - 테스트를 위한 더미 데이터 설정에 어려움이 있었어요..! 성능적으로 효율적인게 가장 중요하지만, 개발 과정에서의 효율성(소요 기간, 가독성, 유지보수 등) 또한 중요하다고 알고 있어서요! 그리고 join이 많이 수행되는게 데이터 수가 늘어남에 따라 오히려 성능 저하로 이어지는 경우가 있을 것이라 생각되었습니다! 그래서 실무에서는 상황에 따라 테이블 분리 정도가 다를 것 같은데, 이때 어느정도까지 분리하는게 적절한지 논의하는 과정에서 주로 어떤 사항들에 대한 고민이 이루어지는지 여쭤보고 싶습니다! 구구절절한 질문 읽어주셔서 감사합니다 :)..

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

답변 2

최경훈님의 프로필 사진

구구절절한데 고민하면서 많은 성장을 하실것 같은 질문이네요! 관계형DB하다보면 테이블을 더 만드느냐 컬럼을 추가하느냐에 따른 고민이 많이 생깁니다. 글쓴분은 그에 따르는 일장일단을 잘 알고 계시니 이거저거 해보시면서 경험하시면 그 사이에서 어떤정도로 균형을 잡는게 이 프로젝트에 도움이 되는지 자연스레 깨닫게 될것입니다.

joseph님의 프로필 사진

질문에 힌트가 있어 보여요. 데이터의 생명주기를 먼저 고려해 보시고, 추가로 스키마의 크기를 고려해 보시면 좋을 것 같아요. DB는 희소한 자원이기 때문에 DB의 역할을 최소화하는 방향으로 설계하는게 좋다고 알고 있습니다.

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

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

또는

이미 회원이신가요?

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

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

새로운 질문 올리기

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