채널톡 아이콘

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

데이터베이스 설계를 개념적, 논리적, 물리적 3단계로 체계적으로 배우고, 실무 중심 쇼핑몰 프로젝트로 역량을 강화합니다. 현대적 설계 기법과 최신 트렌드를 통해 실전 노하우를 익힙니다.

(5.0) 수강평 197개

수강생 2,590명

난이도 초급

수강기한 무제한

데이터베이스
데이터베이스
데이터베이스설계
데이터베이스설계
sql
sql
mysql
mysql
데이터베이스
데이터베이스
데이터베이스설계
데이터베이스설계
sql
sql
mysql
mysql

새소식

3 개

  • 김영한님의 프로필 이미지

    안녕하세요. 여러분

    데이터베이스 설계 2편 강의가 드디어 오픈 했습니다.

    오픈 기념으로 저의 모든 강의를 30% 할인합니다 🙂

    제목: 김영한의 실전 데이터베이스 설계 2편 – 실무에서 반드시 마주치는 9가지 설계 패턴

    링크: https://inf.run/HgVZ2

     

    <강의 내용>

    설계 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

    - 정리

    0
  • 김영한님의 프로필 이미지

    안녕하세요. 여러분

    드디어 <데이터베이스 설계 2편: 실무에서 반드시 마주치는 9가지 설계 패턴> 강의가 오픈 준비 막바지에 들어갔습니다. 이번 강의는 오는 1월 28일에서 31일 사이에 정식 출시될 예정입니다.

    실무에서 필연적으로 마주하게 되는 9가지 핵심 패턴을 통해 최적의 실무 데이터베이스 설계 방법을 익히고, 어떤 상황에서도 자신 있게 설계를 주도하는 진정한 전문가로 거듭나실 수 있도록 돕겠습니다.

    <강의 내용>

    제목: 김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴

    설계 1편에서 데이터 모델링의 정석을 다졌다면, 이제는 현업에서 반드시 마주치게 되는 복잡하고 까다로운 요구사항들을 해결해야 할 때입니다.

    실제 프로젝트 설계를 시작하면, 우리는 필연적으로 다음과 같은 난제들과 마주하게 됩니다.

    • 공통 코드를 어떻게 설계해야 할까?

    • '무한 계층 구조의 카테고리, 어떻게 설계해야 조회 성능을 망치지 않을까?'

    • '데이터 변경 이력, 도대체 어떤 방식으로 남겨야 최선일까?'

    • '회원이 탈퇴하면 데이터를 바로 지워도 될까? 아니면 남겨둬야 하나?'

    • '통계 쿼리만 돌리면 DB가 느려지는데, 어떻게 구조를 개선해야 할까?'

    • '상품마다 제각각인 수많은 옵션 값들은 어떻게 저장해야 하지?'

    • '요즘 많이 쓴다는 JSON, 관계형 DB에는 어떻게 녹여내는 게 좋을까?'

    "놀랍게도 실무에서 겪는 데이터베이스 문제는 대부분 비슷합니다. 복잡해 보이는 실무의 난제들도 결국 9가지 핵심 유형으로 귀결됩니다.

    이 강의는 바로 이런 고민들에 대한 명쾌한 해답을 드립니다.

     

    이번 강의에서는 수많은 프로젝트를 거치며 철저히 검증된 저의 실전 설계 노하우를 아낌없이 공개합니다. 막막했던 문제들을 9가지 해법으로 저와 함께 예제를 통해 하나씩 정복해 봅시다.

    이 강의를 통해 여러분은 실무 현장에서 바로 사용하게 될 '9가지 핵심 설계 패턴'을 완벽하게 마스터하게 됩니다.

     

    1. 공통 코드 설계: 시스템의 표준과 확장을 책임지는 견고한 코드 관리 체계

    2. 계층 구조 설계: 카테고리, 조직도 같은 복잡한 트리 구조를 효율적으로 처리하는 모델링

       

    3. 데이터 변경 추적: 누가, 언제, 무엇을 변경했는지 기록하는 전략

       

    4. 데이터 변경 이력: 데이터의 과거 상태를 보존하고 시점별로 조회하는 이력 관리 패턴

       

    5. SOFT DELETE: 데이터의 복구 가능성과 무결성을 보장하는 논리적 삭제 기법

       

    6. 통계 테이블 설계: 대용량 데이터 환경에서도 성능 저하 없는 고속 집계 전략

       

    7. 상속 관계 설계: 부모, 자식 구조를 관계형 DB에서 사용하는 전략

       

    8. 동적 설계 (EAV):상품 옵션처럼 수시로 변하는 속성을 유연하게 수용하는 설계

       

    9. 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
    - 정리

     

    7
  • 김영한님의 프로필 이미지

    수정됨

    안녕하세요. 여러분
    데이터베이스 설계 1편 강의가 드디어 오픈 했습니다.

    오픈 기념으로 저의 모든 강의를 30% 할인합니다 🙂

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

    • 강의 수: 83개

    • 강의 시간: 16시간 11분

    • 강의 PDF 자료: 약 400장

       

       

    링크: https://inf.run/SEdxb

     

    [강의 소개]

    데이터베이스는 모든 애플리케이션의 기반입니다.
    하지만, 제대로 설계하지 못하면 프로젝트는 금방 한계에 부딪히고, 유지보수는 지옥이 됩니다.

    이번 강의는 단순히 테이블을 만드는 법이 아니라, 실무에서 통하는 현대적 데이터베이스 설계 방법을 체계적으로 알려드립니다. 그리고 저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.

     

    [강의 핵심 포인트]

    개념적 → 논리적 → 물리적 모델링
    3단계 접근으로 DB 설계를 완전 정복합니다.

    실무에 바로 쓰는 설계 노하우
    이론에만 머무르지 않고, 쇼핑몰 프로젝트를 예제로 활용합니다.

    잘못된 설계의 함정 피하기
    왜 ERD가 중요한지, 왜 정규화가 필요한지, 그리고 언제 역정규화를 해야 하는지 실습을 통해 깨닫게 됩니다.

    키와 관계 설계의 본질
    자연 키 vs 대리 키, 일대일·일대다·다대다 관계, 식별 관계 vs 비식별 관계까지 깊게 다룹니다.

    최신 DB 설계 트렌드 반영
    수십 년 전 교과서에 머무르지 않고, 현대적 데이터 모델링 방법론을 제시합니다.

     

    [배우게 될 것들]

    • 요구사항 분석과 핵심 엔티티 도출

    • ERD 작성 및 용어 사전 관리

    • 정규화(1NF ~ BCNF)와 그 한계

    • 인덱스와 성능 고려한 물리적 모델링

    • 쇼핑몰 프로젝트 전체 DB 설계 실습

     

    [강의 대상]

    • 개발자: 코드 짜기 전에 제대로 된 DB를 설계하고 싶은 분

    • 기획자/분석가: 데이터 흐름과 구조를 근본적으로 이해하고 싶은 분

    • 취업 준비생: 면접에서 차별화된 DB 설계 역량을 보여주고 싶은 분

    • 주니어 개발자: 실무에서 바로 쓸 수 있는 설계 원칙을 배우고 싶은 분

    • 시니어 개발자/리드: 팀의 데이터베이스 설계 품질을 끌어올리고 싶은 분

     

    [강의 전체 목차]

    1. 강의 소개와 수업 자료

    * 1-A. 윈도우 - MySQL 설치 안내

    * 1-B. macOS - 설치 안내

     

    2. 설계의 중요성

    * 데이터베이스 설계의 첫걸음

    * 잘못된 설계가 부르는 재앙

    * 설계의 3단계 - 개념, 논리, 물리

    * 정리

     

    3. 개념적 모델링

    * 요구 사항 분석과 핵심 요소 식별

    * 엔티티란?

    * 엔티티 분류1

    * 엔티티 분류2

    * 속성과 식별자

    * 카디널리티와 참여도

    * ERD 완성하기

    * 연관 엔티티 - 다대다 관계 해결

    * 용어 사전

    * 정리

     

    4. 개념적 모델링 - 실습

    * 실전 요구 사항 분석

    * 실전 개념적 모델링 - 시작

    * 실전 개념적 모델링 - ERD 작성

    * 실전 개념적 모델링 - 용어 사전 작성

    * 정리

     

    5. 논리적 모델링1 - 키

    * 다양한 종류의 키

    * 자연 키 vs 대리 키1 - 자연 키

    * 자연 키 vs 대리 키2 - 대리 키

    * 자연 키 vs 대리 키3 - 성능 트레이드 오프

    * 자연 키 vs 대리 키4 - 현대적인 설계

    * 복합키 설계

    * 다대다 관계와 복합키

    * 정리

     

    6. 논리적 모델링2 - 참여도와 일대다 관계

    * 논리적 모델링 - 관계

    * 참여도

    * 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치1

    * 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치2

    * 일대다(1:N) 다대일(N:1) 관계 - 조인과 뻥튀기

    * 정리

     

    7. 논리적 모델링3 - 일대일, 다대다 관계

    * 일대일(1:1) 관계 - 시작

    * 일대일(1:1) 관계 - 외래 키 위치

    * 일대일(1:1) 관계 - [실습] 관계 확장의 유연성

    * 일대일(1:1) 관계 - 주 테이블에 FK

    * 다대다(M:N) 관계 - 관계형 모델의 한계

    * 다대다(M:N) 관계 - 연결 테이블

    * 다대다(M:N) 관계 - 속성

    * 다대다(M:N) 관계 - 개념적, 논리적 모델링

    * 정리

     

    8. 논리적 모델링4 - 식별 관계, 비식별 관계

    * 식별 관계 vs 비식별 관계 - 개념

    * 식별 관계 vs 비식별 관계 - 일대다(1:N)

    * 식별 관계의 문제점

    * 식별 관계 vs 비식별 관계 - SQL 쿼리, 성능

    * 식별 관계 vs 비식별 관계 - 일대일(1:1)

    * 식별 관계 vs 비식별 관계 - 다대다(M:N) 1

    * 식별 관계 vs 비식별 관계 - 다대다(M:N) 2

    * 식별 관계 vs 비식별 관계 - 현대적인 설계 트렌드

    * 정리

     

    9. 논리적 모델링 - 실습

    * 실전 논리적 모델링 - 시작

    * 실전 논리적 모델링 - ERD 작성

     

    10. 정규화

    * 정규화 - 시작

    * 제1 정규형

    * 제2 정규형

    * 제3 정규형

    * BCNF 정규형

    * 실무와 정규화

    * 정리

     

    11. 물리적 모델링

    * 물리적 모델링 개요

    * 테이블과 컬럼 변환 규칙1 - 기본 규칙

    * 테이블과 컬럼 변환 규칙2 - 축약어와 단수 복수

    * 데이터 타입1 - 문자, 숫자, PK 타입

    * 데이터 타입2 - 날짜와 시간 타입

    * 역정규화

    * 테이블 정의서

    * 정리

     

    12. 물리적 모델링 - 실습

    * 물리적 모델링 - 실습 시작

    * 인덱스 설계 - 실습

    * 역정규화 - 실습

    * 쇼핑몰 테이블 정의서

    * 쇼핑몰 DDL과 DB 만들기

    * 물리적 모델 - ERD 자동 생성

    * 쇼핑몰 기능 확인1

    * 쇼핑몰 기능 확인2

    * 정리

     

    감사합니다.

    5

월 ₩19,800

5개월 할부 시

₩99,000