본문 바로가기

Infra14

MongoDB - (11) - 애플리케이션 설계(4) 연결된 포스팅이다 이전 글을 참고하라. 스키마 설계 고려 사항 데이터 embed 방식과 참조 방식 중 결정하기 최적화를 위한 팁 - (현재지점) 일관성 고려 사항 스키마 마이그레이션 방법 스키마 관리 방법 몽고 DB가 데이터 스토리지로 적합하지 않은경우 데이터 조작을 위한 최적화 애플리케이션을 최적화하려면 읽기와 쓰기 성능을 분석하여 어느 것이 병목을 일으키는지 먼저 판단해야한다. 읽기 최적화 : 올바른 인덱스를 사용하여 하나의 도큐먼트에서 최대한 많은 정보를 반환. 쓰기 최적화 : 보통 갖고 있는 인덱스 개수를 최소화하고 갱신을 가능한 한 효율적으로 수행 아주 강한 트레이드 오프를 갖고 있는 것이 느껴진다. 따라서 당신이 구현하고자 하는 애플리케이션의 Read Write비율을 미리 예측하고 이를 통해 .. 2023. 4. 24.
MongoDB - (10) - 애플리케이션 설계(3) 연결된 포스팅이다 이전 글을 참고하라. 스키마 설계 고려 사항 데이터 embed 방식과 참조 방식 중 결정하기 - (현재지점) 최적화를 위한 팁 일관성 고려 사항 스키마 마이그레이션 방법 스키마 관리 방법 몽고 DB가 데이터 스토리지로 적합하지 않은경우 정규화 및 비정규화 정규화 : 각 컬렉션 간의 참조를 이용해 여러 컬렉션으로 나누는 작업 비정규화 : 모든 데이터를 하나의 도큐먼트에 내장 비 정규화는 정보가 갱신되면 여러 도큐먼트가 갱신되야하지만, 하나의 쿼리로 모든 데이터를 가져올 수 있음을 뜻한다. 따라서 정규화는 RDBMS를 설계하는 방법과 매우 유사하며, 비정규화는 MongoDB의 특색을 잘 표현한다. 아래는 정규화스러운 데이터 표현 예제이다. db.studentClasses.findOne({".. 2023. 4. 24.
MongoDB - (9) - 애플리케이션 설계(2) 연결된 포스팅이다 이전 글을 참고하라. 스키마 설계 고려 사항 - (현재지점) 데이터 embed 방식과 참조 방식 중 결정하기 최적화를 위한 팁 일관성 고려 사항 스키마 마이그레이션 방법 스키마 관리 방법 몽고 DB가 데이터 스토리지로 적합하지 않은경우 스키마 설계 패턴 아래와 같이 다양한 패턴이 존재한다. 다형성 패턴(Polymorphic pattern) 속성 패턴(Attribute pattern) 버킷 패턴(Bucket pattern) 이상치 패턴(Outlier pattern) 계산된 패턴 (Computed pattern) 서브셋 패턴(Subset pattern) 확장된 참조 패턴(Extended Reference pattern) 근사 패턴(Approximation pattern) 트리 패턴(Tree.. 2023. 4. 22.
MongoDB - (9) - 애플리케이션 설계 본 섹션은 내게는 굉장히 유의미한 섹션이 될 것이다. 따라서 다른 포스팅 처럼 대충하지 않고 열심히 해보겠다. 한 번에 전부 기술하지 않고 연결된 포스팅으로 아래사항을 다룰 것이다. 스키마 설계 고려 사항 데이터 embed 방식과 참조 방식 중 결정하기 최적화를 위한 팁 일관성 고려 사항 스키마 마이그레이션 방법 스키마 관리 방법 몽고 DB가 데이터 스토리지로 적합하지 않은경우 스키마 설계 고려 사항 RDBMS와는 달리 스키마를 모델링하기 위해서는 쿼리 데이터 접근 패턴 을 이해해야한다. 다음은 설계 시 주요 요소이다. 제약 사항 쿼리 및 쓰기의 접근패턴 관계 유형 카디널리티 제약 사항 몽고 DB의 도큐먼트 최대 크기는 16MB이며 디스크에서 전체 도큐먼트를 읽고 쓴다. 갱신은 전체 도큐먼트를 다시 쓰며.. 2023. 4. 22.