채널톡 아이콘

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다.

(5.0) 수강평 2,133개

수강생 25,414명

난이도 초급

수강기한 무제한

새소식

57 개

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

    안녕하세요. 김영한입니다.

    드디어 7년전 처음 목표로 했던 백엔드 개발자 전체 로드맵이 완성되었습니다.

    전체 로드맵 완성과 백엔드 마스터 패스를 다시 열어달라는 많은 분들의 요청에 따라 김영한의 백엔드 마스터 패스를 기간 한정으로 소개합니다.

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


    오늘 출시한 「김영한의 실전 데이터베이스 - 성능 최적화」 강의를 마지막으로, 실전 자바부터 스프링, JPA, 데이터베이스 설계와 성능 최적화까지 이어지는 모든 로드맵을 완성했습니다.

    첫 강의를 시작한 뒤 여기까지 오는 데 7년이 걸렸습니다.

    저와 함께 긴 시간 동안 함께해 주신 여러분께 진심으로 감사드립니다.


    7년의 대장정, 그리고 완성

    처음 강의를 시작할 때 한 가지 목표가 있었습니다.

    실무에서 만난 수많은 신입, 주니어, 시니어 개발자분들을 떠올리며, 개발자가 제대로 성장하는 데 필요한 모든 실전 기술을 하나의 큰 로드맵으로 완성하겠다는 목표였습니다.

    단순히 특정 기술 하나를 설명하는 데 그치지 않고,

    • 자바와 객체지향의 기본기

    • 스프링의 핵심 원리

    • 스프링 부트와 JPA를 활용한 실무 개발

    • 데이터베이스 설계

    • 대용량 데이터와 성능 최적화

    까지 백엔드 개발자가 성장하면서 반드시 만나게 되는 주제들을 빠짐없이 담고 싶었습니다.

    신입에서 주니어로, 주니어에서 시니어로 성장하기까지 필요한 전체 과정을 제대로 만들어보겠다는 목표였습니다.

    그리고 7년이 지난 지금, 데이터베이스 성능 최적화 강의를 끝으로 처음 생각했던 전체 로드맵이 마침내 완성되었습니다.

    돌아보면 참 긴 여정이었습니다.

    강의를 만들면서 수없이 다시 촬영하고, 더 좋은 설명을 고민하고, 실무에 꼭 필요한 내용만 담기 위해 수 없이 고민하고 검증했습니다.


    솔직히 살면서 무언가를 이렇게 오래 유지한다는 것은 쉬운 일이 아닙니다. 저 역시 수없이 슬럼프에 빠지고, 순간순간 지치고 힘든 시간을 겪었습니다. 회사에서 정신없이 일하고 돌아와서 녹초가 된 상태로 저녁 늦게 강의를 찍던 날들도 많았습니다.

    생각해보면 그런 순간마다 저를 다시 일으켜 세운 것은 여러분이 남겨주신 작은 수강평 하나하나였습니다. 강의를 들어주시고, 응원해 주시고, 또 열심히 공부해서 본인이 원하던 회사로 이직한 성장의 이야기를 전해주신 그 모든 메시지들이 저에게는 정말 큰 힘이 되었습니다. 그렇게 쌓인 작은 응원들이 결국 이 긴 여정을 끝까지 이어올 수 있게 해준 가장 큰 이유였습니다. 수강평 하나하나를 볼 때 마다, 또 지나가면서 저를 알아보시고 반갑게 건내주시는 작은 인사 하나가 제가 하는 일이 그래도 누군가에게는 도움이 되는 일이구나 생각하며 힘을 얻게 되었습니다.

    돌이켜보면 이 모든 과정은 결코 혼자 만든 시간이 아니었습니다. 여러분과 함께 만들어온 시간이었고, 함께 완성해온 여정이었습니다.

    진심으로 감사드립니다.


    백엔드 마스터 패스 기간 한정 출시

    전체 로드맵 완성과 백엔드 마스터 패스를 다시 열어달라는 많은 분들의 요청에 따라 김영한의 백엔드 마스터 패스를 기간 한정으로 소개합니다.

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

    이번 마스터 패스는 백엔드 개발자의 기초부터 실무, 그리고 시니어 개발자가 고민해야 하는 설계와 성능 최적화까지 모두 이어지는 전체 로드맵입니다.


    패스 상품 구성 — 4개의 핵심 로드맵 통합

    백엔드 마스터 패스에는 다음 4개의 전체 로드맵이 포함됩니다.

    • 김영한의 실전 자바 로드맵

    • 김영한의 스프링 완전 정복 로드맵

    • 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵

    • 김영한의 실전 데이터베이스 로드맵

    자바의 기본 문법과 객체지향부터 시작해서 스프링, JPA, 데이터베이스 설계와 성능 최적화까지 하나의 흐름으로 학습할 수 있습니다.

    특히 이번에는 마지막 퍼즐이었던 「김영한의 실전 데이터베이스 - 성능 최적화」 강의까지 정식으로 포함되면서 백엔드 마스터 전체 로드맵이 완성되었습니다.


    마지막 퍼즐, 데이터베이스 성능 최적화

    서비스가 성장하고 데이터가 쌓이기 시작하면 결국 데이터베이스 성능 문제를 만나게 됩니다.

    개발할 때는 잘 동작하던 쿼리가 운영 환경에서 갑자기 느려지고, 단순한 조회 하나가 서비스 전체의 병목이나 장애로 이어지기도 합니다.

    이때 필요한 것은 단순히 인덱스를 몇 개 추가하는 요령이 아닙니다.

    데이터베이스가 데이터를 어떻게 저장하고 조회하는지, 실행 계획을 어떻게 분석해야 하는지, 옵티마이저가 왜 특정 인덱스와 조인 순서를 선택했는지 이해해야 합니다.

    이번 성능 최적화 강의에서는 다음 내용을 다룹니다.

    • EXPLAIN과 EXPLAIN ANALYZE를 통한 실행 계획 분석

    • B+Tree와 인덱스 내부 구조

    • 클러스터드 인덱스와 세컨더리 인덱스

    • 복합 인덱스 설계 원리

    • Using filesort 진단과 최적화

    • ICP, 커버링 인덱스, 스킵 스캔

    • 옵티마이저와 히스토그램

    • 조인과 랜덤 액세스 최적화

    • 정렬, 페이징, 그룹핑 성능 개선

    • 사전 집계 테이블을 활용한 대용량 통계 처리

    이제 애플리케이션을 제대로 만드는 방법을 넘어, 서비스가 성장했을 때 발생하는 성능 문제까지 직접 분석하고 해결할 수 있는 전체 과정이 완성되었습니다.


    AI 시대, 왜 전체 로드맵이 필요한가

    AI가 코드를 작성해주는 시대가 되면서 개발자의 기본기는 오히려 더 중요해지고 있습니다.

    AI는 개발자의 능력을 대체하는 도구가 아니라 증폭하는 도구입니다.

    기본기가 탄탄한 개발자는 AI에게 더 좋은 질문을 할 수 있고, AI가 만든 결과가 올바른지 검증할 수 있습니다.

    반대로 기본기가 부족하면 코드가 겉으로 동작하더라도 다음과 같은 문제를 발견하기 어렵습니다.

    • 객체지향 설계가 무너진 코드

    • 유지보수가 어려운 구조

    • 잘못된 트랜잭션 처리

    • 비효율적인 데이터 접근

    • 운영 환경에서 장애를 일으키는 쿼리

    • 데이터가 증가할수록 느려지는 설계

    AI 기술과 도구는 계속 변하겠지만, 좋은 코드와 나쁜 코드를 구분하는 눈, 객체지향의 원리, HTTP와 웹의 동작 방식, 트랜잭션, 데이터베이스 설계와 성능 최적화 같은 기본기는 변하지 않습니다.

    알아야 질문할 수 있고, 알아야 검증할 수 있으며, 알아야 더 나은 결과로 개선할 수 있습니다.

    이번 백엔드 마스터 패스에는 바로 그 변하지 않는 본질을 담았습니다.


    지속적인 강의 리뉴얼

    전체 로드맵은 완성되었지만 강의 제작이 끝난 것은 아닙니다.

    앞으로도 기술 변화와 실무 환경에 맞춰 기존 강의를 지속적으로 리뉴얼할 예정입니다.

    필요에 따라 전체 영상 리뉴얼, 부분 영상 리뉴얼, 매뉴얼과 예제 프로젝트 업데이트 등을 진행하겠습니다.

    마스터 패스를 구매하신 분들은 이후 강의가 리뉴얼되거나 가격이 변경되더라도 추가 비용 없이 업데이트된 내용을 계속 학습할 수 있습니다.

    저를 믿고 선택해 주신 분들에 대한 최소한의 예의이자 약속입니다.


    마지막으로

    이 패스는 단순히 여러 강의를 묶은 상품이 아닙니다.

    제가 오랜 시간 실무에서 배우고, 실패하고, 고민했던 내용을 하나의 성장 과정으로 정리한 결과물입니다.

    여러분이 신입을 넘어 주니어로, 주니어를 넘어 시니어로 성장하고, 결국 주변 동료들이 진심으로 함께 일하고 싶어 하는 개발자가 되는 그날까지 든든한 가이드가 되어드리겠습니다.

    감사합니다.

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

    안녕하세요. 여러분

    김영한의 실전 데이터베이스 성능 최적화 강의가 드디어 오픈했습니다.

    오픈 기념으로 데이터베이스 로드맵30% 할인하고 있습니다 🙂

    제목: 김영한의 실전 데이터베이스 - 성능 최적화, 실행 계획과 인덱스 완전 정복

    강의 수: 104개

    강의 시간: 21시간 10분

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


    그리고 데이터베이스 로드맵을 포함한 백엔드 로드맵의 전체 강의 완료 기념으로 김영한의 백엔드 마스터 패스를 기간 한정으로 소개합니다.

    마스터 패스 링크: https://inf.run/uixFt


    <강의 특징>

    이번 강의의 가장 중요한 특징은 실무에 가까운 실제 수백만~천만 건의 데이터를 데이터베이스에 저장한 다음에 저와 함께 하나씩 튜닝해나가는 것입니다. 그래서 수 초씩 걸리던 쿼리를 0.01초 단위의 극한으로 최적화하는 실전 방법을 배우는 것입니다.


    <강의 내용>

    개발할 때는 잘 동작하던 쿼리가 데이터가 쌓이면서 갑자기 느려지는 경우가 있습니다.

    처음에는 0.1초 만에 실행되던 쿼리가 어느 순간 1초, 10초를 넘어가고, 심한 경우 서비스 장애로 이어지기도 합니다.

    이런 상황에서 우리는 다음과 같은 고민을 하게 됩니다.

    • 쿼리가 느린 원인을 어디서부터 찾아야 할까?

    • 실행 계획에 나오는 수많은 항목은 무엇을 의미할까?

    • 인덱스를 만들었는데 왜 사용하지 않을까?

    • 복합 인덱스는 어떤 순서로 설계해야 할까?

    • 인덱스가 많을수록 성능이 좋아질까?

    • Using filesort는 왜 발생하고, 어떻게 제거해야 할까?

    • 페이징 뒤쪽으로 갈수록 쿼리가 느려지는 이유는 무엇일까?

    • 조인 순서는 누가 결정하고, 어떻게 최적화할 수 있을까?

    • 옵티마이저는 왜 예상과 다른 실행 계획을 선택할까?

    데이터베이스 성능 문제는 단순히 SQL 문법을 잘 안다고 해결할 수 있는 문제가 아닙니다.

    데이터베이스가 데이터를 어떻게 저장하고, 인덱스를 어떻게 탐색하며, 옵티마이저가 어떤 기준으로 실행 계획을 선택하는지 이해해야 합니다.

    이 강의는 느린 쿼리를 감으로 수정하는 것이 아니라, 실행 계획과 실제 측정 결과를 근거로 원인을 찾고 해결하는 방법을 다룹니다.

    먼저 MySQL과 InnoDB의 내부 구조를 이해하고, EXPLAIN과 EXPLAIN ANALYZE를 통해 쿼리가 실제로 어떻게 실행되는지 분석합니다.

    이후 수백만 건의 실전 데이터를 사용해서 직접 성능 문제를 만들고 해결합니다.

    • 풀 테이블 스캔을 인덱스 탐색으로 개선

    • 복합 인덱스의 컬럼 순서 결정

    • B+Tree와 인덱스 내부 동작 이해

    • 클러스터드 인덱스와 세컨더리 인덱스 분석

    • Using filesort의 원인 진단과 조기 종료

    • ICP와 커버링 인덱스를 활용한 성능 개선

    • 인덱스 스킵 스캔, 인덱스 머지, MRR 분석

    • 옵티마이저와 히스토그램 활용

    • 조인 순서와 랜덤 액세스 최적화

    • 정렬, 페이징, 그룹핑 성능 개선

    • 스트리밍 집계와 사전 집계 테이블 설계

    단순히 “여기에 인덱스를 추가하세요”라고 결론만 전달하지 않습니다.

    왜 그 인덱스가 필요한지, 데이터베이스 내부에서는 어떤 일이 일어나는지, 실행 계획과 실제 실행 시간은 어떻게 달라지는지를 단계적으로 확인합니다.

    또한 특정 쿼리 하나만 빠르게 만드는 방법을 넘어, 실무에서 계속해서 새로운 성능 문제를 분석하고 해결할 수 있는 기본 원리를 깊이 있게 다룹니다.


    <이 강의를 통해 얻게 되는 것>

    1. 실행 계획을 읽는 능력

    EXPLAIN과 EXPLAIN ANALYZE의 핵심 항목을 이해하고, 느린 쿼리의 원인을 실행 계획에서 찾아낼 수 있습니다.

    2. 인덱스를 직접 설계하는 능력

    단순히 컬럼 하나에 인덱스를 추가하는 수준을 넘어, 데이터 분포와 쿼리 조건에 맞는 복합 인덱스를 설계할 수 있습니다.

    3. 데이터베이스 내부 동작에 대한 이해

    B+Tree, 클러스터드 인덱스, 세컨더리 인덱스, 랜덤 액세스 등 인덱스 내부의 핵심 원리를 이해하게 됩니다.

    4. 실전 성능 최적화 경험

    수백만 건의 데이터를 사용해 느린 쿼리를 직접 분석하고, 수십 배에서 수백 배까지 개선하는 과정을 경험합니다.

    5. 운영 환경의 문제를 해결하는 기준

    인덱스의 장점뿐 아니라 쓰기 성능, 저장 공간, 운영 비용까지 고려해 상황에 맞는 최선의 방법을 선택할 수 있습니다.


    <전체 학습 목차>

    1. 강의 소개와 수업 자료

    2. 실습 환경 구성

    3. 데이터베이스 성능과 MySQL 아키텍처

    4. 실행 계획 1 - EXPLAIN 완전 정복

    5. 실행 계획 2 - ANALYZE 완전 정복

    6. 실전 튜닝 1 - 풀 테이블 스캔 진단과 복합 인덱스 기초

    7. 인덱스 내부 구조 1 - B+Tree

    8. 인덱스 내부 구조 2 - 클러스터드, 세컨더리 인덱스

    9. 실전 튜닝 2 - Using filesort 진단과 조기 종료

    10. 인덱스 심화 1 - ICP, 커버링, 스킵 스캔

    11. 인덱스 심화 2 - 머지, MRR, 신기능, 힌트, 운영

    12. 옵티마이저와 히스토그램

    13. 조인 최적화

    14. 실전 튜닝 3 - 조인 랜덤 액세스 진단과 커버링 인덱스

    15. 정렬, 페이징, 그룹핑 최적화

    16. 실전 튜닝 4 - 스트리밍 집계와 사전 집계 테이블

    17. 다음으로

    데이터베이스 성능 최적화는 단순히 몇 가지 SQL 튜닝 기술을 외우는 과정이 아닙니다.

    데이터가 어떤 경로로 조회되는지 이해하고, 실행 계획을 근거로 병목을 찾아내며, 여러 선택지 사이에서 가장 적절한 해결책을 결정하는 과정입니다.

    이 강의를 통해 느린 쿼리를 만났을 때 막연하게 인덱스부터 추가하는 것이 아니라, 원인을 정확히 분석하고 스스로 해결할 수 있는 개발자로 성장하셨으면 합니다.

    제가 실무에서 수많은 성능 문제를 해결하며 쌓아온 경험과 오랜 고민의 결과를 이번 강의에 담았습니다.

    여러분의 성장에 도움이 되었으면 합니다.

    감사합니다.

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

    안녕하세요. 김영한입니다.

    오랫동안 많은 분들께서 요청해주셨던 김영한의 백엔드 마스터 패스를 기간 한정으로 소개합니다.

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

     

    7년의 여정, 그리고 완성

    첫 강의를 시작한 지 어느덧 7년이 흘렀습니다. 그동안 총 26개의 강의를 만들었고, 누적 수강 59만 명이라는 과분한 성원을 받았습니다.

    처음 강의를 시작할 때 한 가지 다짐이 있었습니다. 실무에서 만난 수많은 신입, 주니어, 시니어 개발자분들을 떠올리며, '정말 제대로 성장할 수 있는 진짜 실무 개발 강의'를 만들겠다는 다짐이었습니다. 신입에서 주니어로, 주니어에서 시니어로 성장하기까지 필요한 모든 실전 기술을 빠짐없이 전달하겠다는 목표가, 7년이라는 시간이 걸려서야 비로소 완성되었습니다.

     

    패스 상품 구성 — 4개의 핵심 로드맵 통합

    이번 마스터 패스는 신입 시절의 기초부터 시니어가 되어서 고민해야 할 성능 최적화까지, 개발자 생애 주기 전체를 함께하는 '평생의 로드맵'입니다.

    • 김영한의 실전 자바 로드맵

    • 김영한의 스프링 완전 정복 로드맵

    • 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵

    • 김영한의 실전 데이터베이스 로드맵

     

    7월 출시 신규 강의 포함

    여기에 더해, 7월 출시 예정인 「김영한의 실전 데이터베이스 - 성능 최적화」 강의를 함께 제공합니다. (154,000원 예정)

    이 강의는 제가 가장 공들여 제작하고 있는 강의입니다. 실무 장애의 80%는 데이터베이스 성능 문제에서 발생하기 때문입니다. 서비스가 커지고 대규모 트래픽이 몰리기 시작하면, 백엔드 애플리케이션 코드를 아무리 깔끔하게 작성해도 결국 최후의 병목은 데이터베이스에서 터집니다.

    이 강의를 마스터하고 나면, 장애 상황이나 느려진 쿼리 앞에서도 당황하지 않고 정확하게 병목을 짚어내는 '진짜 시니어'의 시야를 갖게 되실 겁니다.

     

    기존 수강생을 위한 보답

    저를 오랫동안 믿고 따라와 주신 분들께는 조금이나마 혜택을 준비했습니다.

    - 기존 강의 구매자: 보유한 강의 수(금액)에 따라 남은 강의에 대해 조금이라도 더 높은 할인율 적용

    - 전 강의 구매자 (찐팬): 마스터 패스를 선물(무료)로 증정

    특별히 지금까지 저의 모든 강의를 믿고 따라와 주신 찐팬 분들께는 감사의 의미로 '패스 상품'과 7월 출시될 '실전 데이터베이스 성능 최적화' 강의를 선물로 드립니다. (꼭! 패스 상품 0원 구매하기를 선택해주세요)

     

    AI 시대, 왜 기본기인가

    AI가 코드를 대신 작성해주는 시대. 실력 있는 개발자와 그렇지 않은 개발자의 차이가 줄어들었을까요? 현장에서는 오히려 반대의 결과가 나타나고 있습니다.

    AI는 개발자의 능력을 대체하는 도구가 아니라 증폭하는 도구입니다.

    실력 있는 개발자는 AI에게 좋은 질문을 던지고, AI가 만든 코드가 좋은 코드인지 위험한 코드인지 판단할 수 있습니다. 설계가 잘못되었는지, 성능 문제가 숨어 있는지, 운영 환경에서 장애로 이어질 수 있는지도 빠르게 알아차립니다.

    반대로 기본기가 부족하면 AI가 만들어준 결과를 검증하기 어렵습니다. 겉으로는 동작하는 것처럼 보여도 설계가 무너져 있거나, 데이터베이스 성능 문제가 숨어 있거나, 운영 환경에서 문제가 터질 수 있습니다.

    AI 기술은 계속 빠르게 변할 것입니다. 하지만 변하지 않는 것이 있습니다.

    • 객체지향의 기본 원리

    • 좋은 코드와 나쁜 코드를 구분하는 눈

    • HTTP와 웹의 동작 원리

    • 트랜잭션과 데이터 접근 기술

    • 데이터베이스 설계와 성능 최적화

       

    이런 기본기는 AI 시대일수록 더 중요해집니다. 알아야 질문할 수 있고, 알아야 검증할 수 있고, 알아야 개선할 수 있기 때문입니다.

    이번 백엔드 마스터 패스에는 바로 그 변하지 않는 본질을 담았습니다.

     

    지속적인 강의 리뉴얼, 추가 비용 없이

    앞으로 기존 강의들도 지속적으로 리뉴얼할 예정입니다. 필요에 따라 전체 영상 리뉴얼, 부분 영상 리뉴얼, 매뉴얼 버전 업 등을 진행합니다.

    지금 마스터 패스를 구매하신 분들은 나중에 리뉴얼된 강의의 가격이 올라도 추가 비용 없이 무료로 업데이트를 받으실 수 있습니다. 저를 믿고 선택해 주신 분들에 대한 저의 최소한의 예의이자 약속입니다. 실전 데이터베이스 성능 최적화 강의 오픈 이후 본격적인 리뉴얼 작업을 시작할 예정입니다.

     

    마지막으로

    이 패스는 단순히 지식을 파는 상품이 아닙니다. 제가 십 수년간 실무에서 배우고, 겪고, 치열하게 고민했던 것들을 여러분께 전달하기 위해 만든, 7년의 노력이 담긴 결정체입니다.

    여러분이 신입을 넘어 주니어로, 주니어를 넘어 시니어로, 그리고 결국 주변 동료들이 진심으로 함께 일하고 싶어 하는 개발자가 되는 그날까지. 제가 여러분 곁에서 든든한 가이드가 되어드리겠습니다.

    감사합니다.

     

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

    안녕하세요. 여러분

    데이터베이스 설계 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
  • 김영한님의 프로필 이미지

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

    이번에 출시할 설계 1편은 9월 16일 ~ 9월 19일 사이에 출시 예정입니다.

     

    데이터베이스 로드맵 - 강의 출시 예정 일정

    • 설계 1편 – 현대적 데이터 모델링 완전 정복 - 9월 중순 출시 예정

    • 설계 2편 - 실무 설계 패턴과 활용 기법 마스터 - 2025년 연말 출시 예정

    • 성능 최적화와 고급 기능편 - 2026년 연초 출시 예정

     

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

    • 강의 수: 83개

    • 강의 시간: 16시간 11분

    • 강의 PDF 자료: 약 400장

       

     

    강의 소개

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

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

     

    강의 핵심 포인트

    * 개념적 → 논리적 → 물리적 모델링

    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

    * 정리

     

    감사합니다.

     

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

    수정됨

    안녕하세요. 여러분

    드디어 데이터베이스 입문, 기본편 두 강의가 오픈했습니다.

    처음 데이터베이스에 입문하는 분들도 부담없이 배울 수 있도록 데이터베이스 입문 강의를 무료로 제공하기로 결정했습니다.

     

    김영한의 실전 데이터베이스 로드맵

    1. 김영한의 실전 데이터베이스 입문 - SQL부터 차근차근 (오픈)

    2. 김영한의 실전 데이터베이스 - 기본편 (오픈)

    3. 김영한의 실전 데이터베이스 - 설계편 (2025년 하반기 예정)

    4. 김영한의 실전 데이터베이스 - 성능 최적화와 고급 기능편 (2025년 하반기 예정)

       

     

    강의 대상

    참고로 이번 강의는 개발자뿐만 아니라 기획자, 데이터 분석가 분들도 들을 수 있도록 쉽게 구성했습니다.

    • 개발자: 데이터베이스 기초를 탄탄히 다지고 싶은 주니어, 비전공자, 취업 준비생

    • 기획자/마케터: 데이터 기반 의사결정이 필요한 분

    • 데이터 분석가: SQL 역량을 쌓고 싶은 입문자

     

    [개발자 관점에서 로드맵 소개]

    개발자라면 전체 로드맵을 모두 따라오시는 것을 추천합니다.

    많은 개발자 분들이 공감하시겠지만, 결국 뛰어난 애플리케이션은 잘 설계된 데이터베이스 위에서 탄생합니다. 애플리케이션 코드만으로는 결코 해결할 수 없는 문제들이 바로 이 데이터베이스 영역에 있기 때문입니다. 이 로드맵은 그 나머지 절반의 핵심 역량을 채워서 여러분을 한 차원 높은 개발자로 만들어 줄 겁니다.

    입문편: 먼저, '입문편'을 통해 데이터베이스와 SQL 기초를 다집니다.

    기본편: 기본편에서는 주니어 개발자에게 반드시 필요한 데이터베이스 기본기를 다룹니다.

    • 조인, 서브쿼리, 유니온, 케이스 문을 통해 어떤 복잡한 비즈니스 요구사항도 SQL로 풀어내는 능력을 갖추게 됩니다.

       

    • 인덱스의 동작 원리를 제대로 파악해 실무에 꼭 필요한 SQL 성능 최적화의 기본기를 다집니다.

    • 트랜잭션과 데이터 무결성을 깊이 이해해서, 데이터가 깨지지 않는 안정적인 애플리케이션을 만들 수 있습니다.

    설계편: 설계편은 여러분을 한 단계 더 높은 수준의 개발자로 만들어 줄 겁니다. 좋은 데이터베이스 설계가 어떻게 애플리케이션의 유지보수성과 확장성을 결정하는지 배우고, 실무에서 마주할 복잡한 요구사항을 체계적으로 모델링하는 능력을 키우게 됩니다.

    성능 최적화와 고급 기능편: 성능 최적화와 고급 기능편은 대용량 트래픽을 다루는 고급 개발자로 가는 마지막 관문입니다. 아무도 해결하지 못하는 데이터베이스 성능 병목을 찾아내고, 서비스의 한계를 끌어올리는 고급 기술들을 마스터하게 될 것입니다.

    이 로드맵을 마스터하면, 여러분이 '단순히 기능을 구현하는 개발자'를 넘어 애플리케이션과 데이터베이스 양쪽을 모두 깊이 있게 이해하고 최적화해서, 어떤 문제 상황에서도 해결의 실마리를 찾아내는 진짜 실력있는 개발자로 성장하게 될 것입니다.

     

    [기획, 데이터 분석가 관점에서 로드맵 소개]

    기획자나 데이터 분석가라면 입문편과 다음 기본편까지 듣는 것을 추천합니다.

    입문편: 입문편을 통해 SQL 기초를 익히면, 더 이상 데이터를 요청하고 기다릴 필요 없이 원하는 답을 즉시 얻는 속도와 독립성을 갖게 됩니다.

    기본편: 기본편에서는 한 걸음 더 나아갑니다.

    조인, 서브쿼리, 유니온, 케이스 문 같은 고급 SQL을 활용해 여러 곳에 흩어진 데이터를 합치고, 나만의 기준으로 재가공하며 분석의 깊이를 더하게 됩니다.

    이 두 과정만으로도 여러분은 데이터에 기반해 서비스를 개선하고, 조직을 설득하고, 개발팀과 원활히 소통하는 핵심 인재로 거듭날 것입니다.

    만약 데이터 기반의 프로덕트를 직접 리드하고 싶다면, 심화 과정으로 '설계편'을 학습해서 데이터 구조에 대한 이해를 넓히는 것도 좋은 선택이 될 수 있습니다.

    기획자와 분석가분들께 이 로드맵의 입문편과 기본편은 데이터로 일하는 방식을 완전히 바꾸어 줄 겁니다.

     

    입문편 - 섹션 목차

    1. 강의 소개와 수업 자료

    2. 데이터베이스 소개

    3. 데이터베이스 시작

    4. SQL - 데이터 관리

    5. SQL - 조회와 정렬

    6. SQL - 데이터 가공

    7. SQL - 집계와 그룹핑

     

    기본편 - 섹션 목차

    1. 강의 소개와 수업 자료

    2. 조인1 - 내부 조인

    3. 조인2 - 외부 조인과 기타 조인

    4. 서브쿼리

    5. UNION

    6. CASE 문

    7. 뷰(View)

    8. 인덱스1

    9. 인덱스2

    10. 데이터 무결성

    11. 트랜잭션

    12. 저장 프로시저, 함수, 트리거

     

    로드맵 진행 관련 질문들을 모아서 답변드려요.

    1. 데이터베이스 로드맵 진행 기본 순서

    - 기본적인 순서는 자바 -> 데이터베이스 -> 스프링 -> 스프링 부트와 JPA 활용 순서입니다.

     

    2. 데이터베이스 로드맵 진행 추천 순서

    가장 효과적인 진행 순서는 데이터베이스 입문편과 기본편을 스프링 로드맵의 스프링 DB1 직전에 학습하는 것입니다.

    따라서 다음 순서로 학습하는 것입니다.

    - ...

    - 스프링 MVC2

    - 데이터베이스 입문

    - 데이터베이스 기본편

    - 스프링 DB 1편

    - 스프링 DB 2편

    - ...

    스프링 부트와 JPA 활용 로드맵을 진행할 때는 최소한 데이터베이스 기본편까지는 듣고 진행하시는 것을 권장합니다.

    데이터베이스 설계편, 성능 최적화와 고급기능은 출시가 되면 다시 한번 정리해서 알려드리겠습니다.

     

    3. mysql 베이스로 학습진행하나요? 오라클로 진행하나요?

    실습은 MySQL을 중심으로 진행되지만, 강의 내용은 MySQL뿐만 아니라 RDBMS 전체를 아우르는 보편적인 지식을 전달하는 데 초점을 맞춥니다. 그래서 특정 데이터베이스에 얽매이지 않는 폭넓은 이해를 목표로 합니다.

    비유를 하자면 이 강의에서 우리는 MySQL이라는 자동차를 운전하는 법을 배울 것입니다. 하지만 단순히 특정 모델의 자동차 조작법만 익히는 것이 아니라, 액셀, 브레이크, 핸들처럼 어떤 자동차(RDBMS)를 타든 기본적으로 알아야 할 운전 원리(RDBMS의 핵심 개념)를 배우는 데 중점을 둘 것입니다. 그래서 다른 RDBMS를 다룰 때도 큰 도움이 될 거에요.

     

    감사합니다.

    1

월 ₩24,200

5개월 할부 시

₩121,000