DAsP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
반정규화와 성능 근거
원래 이론 →판단 기준
현재 구조:
- 고객별 최근 주문 20건 조회: p95 1.8초
- 목표: p95 300ms 이하
- 호출: 피크 2,000회/분
- 주문 쓰기: 300건/초
- 조회 시 고객 테이블 조인으로 고객등급명을 표시
- 고객등급 변경: 하루 2만 건
후보 1: 주문에 현재 고객등급명 중복
- 예상 조회 p95: 220ms
- 고객등급 변경 시 과거 주문 수백만 건 갱신 가능
- 원천과 중복값 불일치 위험 매우 큼
후보 2: 주문에 주문시점 고객등급코드 저장 + 코드 테이블 조인
- 과거 사실 보존이라는 업무 의미가 명확
- 작은 코드 테이블 조인은 비용이 낮을 수 있음
- 현재 등급 표시가 필요하면 별도 조회
후보 3: 고객별 최근 주문 조회 전용 캐시/읽기 모델
- 허용 지연이 1분이라면 쓰기 모델의 중복 갱신을 줄일 수 있음
- 캐시 장애·재생성·일관성 정책 필요
결론은 “가장 빠른 구조”가 아니라 업무 의미와 허용 지연, DML 비용까지 포함한 총비용으로 선택한다.
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 문제 | 먼저 검토할 대안 | 반정규화 후보 |
|---|---|---|
| 선택적 조회가 느림 | 조건·통계·인덱스·SQL 개선 | 자주 쓰는 속성 중복 또는 좁은 조회 구조 |
| 반복 집계가 비쌈 | 집계 SQL·실행주기·캐시 검토 | 요약 테이블·저장 파생값 |
| 1:1 조인이 항상 발생 | 조인 계획·뷰 검토 | 테이블 통합 |
| 매우 넓은 행의 일부만 조회 | 컬럼 선택·LOB 처리 검토 | 수직 분할 |
| 원격 데이터 조인이 병목 | 통신·배치·캐시 검토 | 통제된 로컬 복제 |
대안의 존재가 반정규화를 금지한다는 뜻은 아니다. 각 대안의 성능·정합성·운영 비용을 같은 부하 조건에서 비교한다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.