강의

멘토링

로드맵

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

든든한꼬마님의 프로필 이미지
든든한꼬마

작성한 질문수

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

‘데이터베이스 설계를 잘한다’ 혹은 ‘데이터 모델링을 잘한다’는 게 어떤 의미인가요?

작성

·

15

0

안녕하세요, 강사님. 강의를 들으면서 데이터베이스 설계와 모델링의 중요성을 많이 느끼고 있습니다.

문득 ‘데이터베이스 설계를 잘한다’ 혹은 ‘데이터 모델링을 잘한다’는 게 어떤 의미인지 궁금해졌습니다.

설계 과정에는 개념적, 논리적, 물리적 모델링 등 여러 단계가 있고, 각 단계마다 좋은 설계의 기준이 조금씩 다를 것 같은데요.

실무에서는 이런 기준을 어떤 방식으로 판단하시나요?

만약 같은 요구사항을 모델링했을 때 한쪽은 유지보수성이 높고 다른 쪽은 성능이 좋은 경우, 어떤 관점에서 우선순위를 정하시는지도 궁금합니다.

 

좋은 강의 제작해주셔서 감사합니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 든든한꼬마님.

데이터베이스 설계 및 모델링을 잘한다는 것은 다음과 같은 여러 요소를 고려하여 최적의 데이터 구조를 만드는 능력을 의미합니다:

  1. 개념적 모델링: 비즈니스 요구사항을 올바르게 이해하고, 이를 반영할 수 있는 논리적인 구조를 만드는 것이 중요합니다. 이는 사용자와의 소통, 요구사항 분석 능력도 포함합니다.

  2. 논리적 모델링: 여러 엔티티 및 그들 간의 관계를 명확히 정의하고, 데이터 무결성과 사용자 요구를 충족하는 구조를 설계해야 합니다.

  3. 물리적 모델링: 논리적 설계를 실제 데이터베이스 시스템에 맞게 최적화하는 과정으로, 성능과 물리적 제약들을 고려하여 적절히 구현해야 합니다.

실무에서는 대개 다음의 기준을 사용하여 설계를 평가합니다:
- 정규화 수준: 데이터 중복을 제거하고 무결성을 보장하는 구조인지 확인합니다.
- 확장성: 요구사항의 변화나 데이터 증가에 대비하여 설계를 확장성 있게 구성해야 합니다.
- 성능: 쿼리 성능이 적절한지, 인덱싱이 잘 되어 있는지를 판단합니다.

유지보수성 vs 성능 문제에서는 상황에 따라 다른 우선순위를 적용할 수 있습니다. 예를 들어, 처음 단계에서는 유지보수성을 우선으로 두고 데이터 모델을 설계하며, 추후 필요에 따라 성능 최적화를 진행하기도 합니다. 이 과정은 팀의 목표와 프로젝트의 성격에 크게 의존할 수 있습니다.

더 자세한 내용은 다음 링크의 질문과 답변에서 참고하실 수 있습니다:
1. 객체설계에 대해서 질문이 있습니다.
2. 데이터 중심 테이블 설계와 객체 중심의 테이블 설계
3. 데이터베이스 설계 질문드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

든든한꼬마님의 프로필 이미지
든든한꼬마

작성한 질문수

질문하기