수강생 13,659명
난이도 초급
수강기한 무제한
김영한의 데이터베이스 설계 2편 - 오픈 일정 확정
안녕하세요. 여러분
드디어 <데이터베이스 설계 2편: 실무에서 반드시 마주치는 9가지 설계 패턴> 강의가 오픈 준비 막바지에 들어갔습니다. 이번 강의는 오는 1월 28일에서 31일 사이에 정식 출시될 예정입니다.
실무에서 필연적으로 마주하게 되는 9가지 핵심 패턴을 통해 최적의 실무 데이터베이스 설계 방법을 익히고, 어떤 상황에서도 자신 있게 설계를 주도하는 진정한 전문가로 거듭나실 수 있도록 돕겠습니다.
<강의 내용>
제목: 김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
설계 1편에서 데이터 모델링의 정석을 다졌다면, 이제는 현업에서 반드시 마주치게 되는 복잡하고 까다로운 요구사항들을 해결해야 할 때입니다.
실제 프로젝트 설계를 시작하면, 우리는 필연적으로 다음과 같은 난제들과 마주하게 됩니다.
공통 코드를 어떻게 설계해야 할까?
'무한 계층 구조의 카테고리, 어떻게 설계해야 조회 성능을 망치지 않을까?'
'데이터 변경 이력, 도대체 어떤 방식으로 남겨야 최선일까?'
'회원이 탈퇴하면 데이터를 바로 지워도 될까? 아니면 남겨둬야 하나?'
'통계 쿼리만 돌리면 DB가 느려지는데, 어떻게 구조를 개선해야 할까?'
'상품마다 제각각인 수많은 옵션 값들은 어떻게 저장해야 하지?'
'요즘 많이 쓴다는 JSON, 관계형 DB에는 어떻게 녹여내는 게 좋을까?'
"놀랍게도 실무에서 겪는 데이터베이스 문제는 대부분 비슷합니다. 복잡해 보이는 실무의 난제들도 결국 9가지 핵심 유형으로 귀결됩니다.
이 강의는 바로 이런 고민들에 대한 명쾌한 해답을 드립니다.
이번 강의에서는 수많은 프로젝트를 거치며 철저히 검증된 저의 실전 설계 노하우를 아낌없이 공개합니다. 막막했던 문제들을 9가지 해법으로 저와 함께 예제를 통해 하나씩 정복해 봅시다.
이 강의를 통해 여러분은 실무 현장에서 바로 사용하게 될 '9가지 핵심 설계 패턴'을 완벽하게 마스터하게 됩니다.
공통 코드 설계: 시스템의 표준과 확장을 책임지는 견고한 코드 관리 체계
계층 구조 설계: 카테고리, 조직도 같은 복잡한 트리 구조를 효율적으로 처리하는 모델링
데이터 변경 추적: 누가, 언제, 무엇을 변경했는지 기록하는 전략
데이터 변경 이력: 데이터의 과거 상태를 보존하고 시점별로 조회하는 이력 관리 패턴
SOFT DELETE: 데이터의 복구 가능성과 무결성을 보장하는 논리적 삭제 기법
통계 테이블 설계: 대용량 데이터 환경에서도 성능 저하 없는 고속 집계 전략
상속 관계 설계: 부모, 자식 구조를 관계형 DB에서 사용하는 전략
동적 설계 (EAV):상품 옵션처럼 수시로 변하는 속성을 유연하게 수용하는 설계
JSON 데이터 설계: NoSQL의 유연함을 관계형 데이터베이스에 녹여내는 현대적인 설계 기법
여기에 더해, 단순히 이론을 나열하는 것을 넘어 각 패턴의 확실한 장단점과 실무 선택 기준은 물론, 성능 최적화 기법까지 실무에 필요한 모든 노하우를 담았습니다.
마지막으로 "실무 설계는 정해진 정답을 찾는 것이 아니라, 상황에 맞는 최선의 트레이드오프(Trade-off)를 선택하는 과정입니다. 이 강의를 통해 여러분의 시야를 진짜 실무 레벨로 높여드리겠습니다. 그리고 그 어떤 프로젝트를 마주하더라도, 주저 없이 자신 있게 설계할 수 있는 진정한 설계 전문가로 만들어 들어드리겠습니다."
저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.
여러분께 도움이 되었으면 합니다.
<전체 학습 목차>
1. 강의 소개와 수업 자료
2. 공통 코드 설계
- 공통 코드가 필요한 이유
- 공통 코드 테이블 설계
- 공통 코드를 더 범용성 있게 - 그룹화 설계
- 공통 코드와 추가 속성
- 공통 코드의 단점
- 공통 코드의 단점 해결 방안1
- 공통 코드의 단점 해결 방안2
- 공통 코드 vs 애플리케이션 ENUM 1
- 공통 코드 vs 애플리케이션 ENUM 2
- 공통 코드 vs 애플리케이션 ENUM 3
- 공통 코드 설계와 비즈니스 설계의 차이
- 정리
3. 계층 구조 설계
- 계층 구조 설계가 필요한 이유
- 인접 리스트 모델
- 계층 구조 조회의 어려움
- CTE와 재귀 쿼리 1
- CTE와 재귀 쿼리 2
- 폐쇄 테이블 모델 1
- 폐쇄 테이블 모델 2
- 정리
4. 데이터 변경 이력 설계1
- 데이터 변경 이력 설계가 필요한 이유
- 변경 추적 컬럼 - 기본
- 변경 추적 컬럼 - 변경 사유
- 변경 추적 컬럼 - 감사(Audit) 컬럼
- 정리
5. 데이터 변경 이력 설계2
- 컬럼에 이전 값 보관 방식
- 현재 테이블로 이력 관리 - 시작
- 현재 테이블로 이력 관리 - 단점 1
- 현재 테이블로 이력 관리 - 단점 2
- 현재 테이블로 이력 관리 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 시작
- 전체 행 스냅샷 이력 테이블 - 주의점
- 전체 행 스냅샷 이력 테이블 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 한계
- 컬럼 단위 변경 로그 테이블
- 공통 이력 테이블
- 정리
6. SOFT DELETE
- SOFT DELETE가 필요한 이유
- SOFT DELETE - is_deleted 컬럼 방식
- SOFT DELETE - deleted_at 컬럼 방식 1
- SOFT DELETE - deleted_at 컬럼 방식 2
- SOFT DELETE vs HARD DELETE
- SOFT vs HARD vs STATUS
- SOFT DELETE와 이력 테이블
- SOFT DELETE와 인덱스 설계
- 정리
7. 통계 테이블 설계
- 통계 데이터와 성능 문제
- 통계 테이블 설계
- 주간, 월간 통계의 효율적인 처리
- 실시간 통계와 하이브리드 설계
- 멱등성 설계
- 마이크로 배치
- UPSERT 최적화
- 정리
8. 상속 관계 설계
- 상속 관계 설계 - 문제 상황
- 구현 클래스마다 테이블 전략
- 구현 클래스마다 테이블 전략의 장단점
- 단일 테이블 전략
- 단일 테이블 전략의 장단점
- 조인 전략
- 조인 전략의 장단점
- 정리
9. 동적 설계 - EAV
- EAV 설계 - 기존 방식의 한계와 새로운 접근법
- EAV 패턴 소개
- EAV 실습 - 쇼핑몰 상품 속성 관리
- EAV 패턴 개선 - 속성 정의 테이블
- EAV의 장단점과 사용 시 주의사항
- EAV 실무 활용 사례
- 정리
10. JSON 설계
- EAV의 한계와 JSON의 필요성
- JSON 문법
- MySQL에서 JSON 사용하기 1
- MySQL에서 JSON 사용하기 2
- JSON 활용 - 다양한 실무 사례 1
- JSON 활용 - 다양한 실무 사례 2
- JSON 인덱스와 성능 최적화 1
- JSON 인덱스와 성능 최적화 2
- JSON 설계의 장단점과 한계
- JSON 사용 가이드라인
- 관계형 데이터베이스 vs NoSQL
- 정리







