데이터 초심자를 위한 SQL 생존 키트
SQL뱅크
MariaDB와 HeidiSQL을 활용한 실습 중심의 커리큘럼을 통해 데이터를 수집, 전처리, 그리고 분석하는 과정에서 SQL의 핵심 개념과 실무 활용법을 익힐 수 있습니다.
초급
MariaDB, MySQL, SQL
테이블 설계 때문에 답답함을 느끼신 적 있으신가요? "이 테이블이 맞나?", "어떤 컬럼을 PK로 해야 하지?", "관계를 이렇게 연결해도 되나?" "기능 추가할 때 테이블을 다시 만들어야 하는 건 아닐까?" 같은 고민을 하신 적이 있는 분들을 위한 강의입니다.





CJ
임직원들도 이 강의를 듣고 있어요!





CJ
임직원들도 이 강의를 듣고 있어요!
먼저 경험한 수강생들의 후기
5.0
준영
알기 쉽게 기초를 다지기에 좋습니다
5.0
Rootree
개발자이지만 DB 모델링에 관심이 많아서 수강하게 되었습니다. 취업준비할 때 난해하고 이해하지 못했던 개념들이 쉬운 예시와 함께 정리할 수 있어서 좋았습니다. 차근차근 이론에 이어서 예시를 들어주는 설명 덕분에 이해하기 어려울 수 있는 부분도 명확하게 이해가 되었습니다 : ) 경력자이신 분들은 기초적인 내용일지라도 한 번 정리하고 간다는 느낌으로 편하게 들을 수 있는 강의 인 거 같습니다. 강의 톤 자체도 차분하게 설명해주시는 친근한 선배 형처럼 느껴저서 좋았습니다. 이후 선생님 강의들이 나온다면 기대를 가지고 다음 강의를 수강할 거 같습니다 :) 아 그리고 완강하면 커리어적인 고민도 선생님께 여쭤볼 수 있는데, 저한테는 이 부분이 완강하는데 큰 동기부여가 되었던 거 같습니다 ㅎㅎ 조만간 이메일 문의 남기도록 하겠습니다~!! 좋은 강의 만들어주셔서 감사합니다!
5.0
yooonuu
개발중에 테이블을 설계하는 경우가 있는데, 강의를 듣고 아리까리한 부분이 많이 해소가 된 것 같습니다. 무엇보다 잘못 된 테이블 설계로 쿼리짜는게 힘들었는데, 제가 쿼리 작성하는 능력이 모자란게 아니라는 말이 위안이 되네요 ㅠㅠ
요구사항을 분석하고 테이블을 설계할 수 있는 방법
엔티티, 속성, 식별자, 관계에 대한 '논리 데이터 모델링' 필수 개념
DASP, DAP 자격증 취득을 위한 지식
성능을 고려한 테이블 설계 방법
ERD를 그리기 위한 표기법 (IE, Barker)
설계할 때마다 확신이 서지 않는 불안감
수정하려니 이미 엉켜버린 복잡한 구조
기능 추가 = 테이블 재설계의 반복
체계적으로 배운 적 없는 데이터 모델링
이 강의에서는 단순히 '작동만 하는' 테이블이 아닌
확장 가능하고 유지보수하기 쉬운 테이블 설계 방법을 배웁니다.
고객 요구사항을 제대로 담아내는 테이블을 만들기란 쉽지 않습니다.
어떤 구조가 적절한지, 수정하기 쉬운 설계인지, 확장 가능한 구조인지.. 혼자서 판단하기 어렵습니다
검색해봐도 주어진 상황은 모두 다르고 결국 '이게 맞는 방법일까?' 하는 불안감만 커집니다.
많은 개발자분들이 비슷한 경험을 합니다.
프로젝트 초반에는 테이블을 빠르게 만들고 개발 기능을 구현하는 데 집중합니다.
데이터도 적고 요구사항도 크지 않아서 모든 게 순조롭게 느껴지죠.
하지만 시간이 지나면서 프로젝트가 성장하고 복잡도가 높아지면
초기에 "빠르게만" 만든 테이블 구조가 점점 큰 걸림돌이 됩니다.
간단한 기능 추가도 여러 테이블을 수정해야 하고, 데이터 정합성 문제로 버그가 반복되고
결국, "그때 제대로 설계했더라면..." 하고 후회하게 됩니다.
😊
"일단 데이터만 담을 수 있으면 되지!"
깊게 고민하지 않고 설계
빠른 개발을 위해 필요한 속성들을 하나의 테이블에 몰아넣기
데이터 양이 적을 땐 아무 문제 없어 보임
📉
기능을 추가할 때마다 테이블 구조 수정 필요
같은 데이터가 여러 테이블에 중복되어 정합성 문제 발생
쿼리가 점점 복잡해지며 성능이 느려지기 시작함
🚨
기능 하나 추가하는 데 수정해야 할 곳이 너무 많아짐
필요한 데이터를 어느 테이블에서 가져올지 매번 고민
데이터 불일치가 자주 발생하고, 수정하는 데 많은 시간 소요
같은 기능을 구현할 때도, 어떻게 설계하느냐에 따라 결과는 완전히 달라집니다.
확장성을 고려해서 설계된 테이블은 요구사항이 바뀌어도 쉽게 대응할 수 있습니다.
반면 깊게 고민하지 않고 만든 테이블은 작은 변경에도 많은 수정이 필요하고 예상치 못한 문제가 계속 발생합니다.
초반에는 이런 차이가 잘 보이지 않습니다. 둘 다 잘 작동하는것처럼 보이니까요.
하지만 시간이 지날수록 그 차이는 개발 속도와 유지보수 난이도로 나타납니다.
⭐ 이 강의는 확장 가능한 테이블을 설계하는 방법을 다룹니다.
"나중에 고치면 되지"가 아닌, "처음부터 제대로" 만드는 법을 배웁니다.
강의를 마치면 요구사항을 보고 확장 가능한 구조로 설계할 수 있게 됩니다.
📌고객의 요구사항📌
구내식당에서는 매주 식단표를 확인할 수 있다.
식단은 월요일부터 금요일까지 점심/저녁을 제공하고 식단마다
해당 식단을 제공한 영양사 정보를 확인할 수 있다.
식단 메뉴에는 밥과 국은 필수로 포함되고 반찬은 여러 개 포함될 수 있다.
칼로리 또한 관리되어야 한다.
요구르트, 아이스크림, 과일과 같은 부식이 나오는 경우도 있다.
👎고민 없이 설계한 모델
👍충분한 고민을 한 모델
단순 이론이 아닌 실무에서 바로 쓸 수 있는 내용으로 구성
실무에서 자주 겪는 고민과 해결 방법 제시
도서 대여 시스템, 쇼핑몰 등 실무와 가까운 예제 활용
데이터 모델링 단계를 직접 따라하며 학습
700페이지 분량의 PPT 자료로 완벽한 복습
핵심만 요약된 내용으로 개념 파악 용이
언제든지 다시 찾아볼 수 있는 레퍼런스
특별한 준비 없이 바로 시작 가능
종이와 펜만 있어도 충분, 도구는 선택사항
웹 기반 ERD Cloud로 별도 설치 없이 실습
Barker 표기법과 IE 표기법을 모두 설명
강의 소개 : 테이블 설계 과정에서 답답함을 느껴본 적이 있으신가요?
강의에서 다루는 내용
누구를 위한 강의인가? (Feat. DB설계를 필요로 하는 개발자와 초보 모델러)
강의 구성
강의를 수강하기 위한 사전 지식
업무 효율과 개발 생산성 향상 방법
데이터 모델링이란?
우리는 ERD를 관리하고 있지 않아요
이렇게 설계하면 나중에 고생합니다
나의 데이터 모델링 이해도 점검
퀴즈1 : O/X 문제
퀴즈2 : 테이블 개수 맞추기
요구사항 분석부터 테이블 생성까지의 단계
토이 프로젝트로 설명하는 데이터 모델링 단계
요구사항 분석/정의
주제영역 설정
개념 데이터모델링
논리 데이터모델링
물리 데이터모델링
데이터 모델링 단계를 간소화 할 수 있을까?
데이터 모델링 표기법 (Barker,IE)
데이터 모델링을 위한 Barker/IE 표기법
엔티티 표기
속성 표기
식별자 표기
관계 표기
서브타입 표기
데이터 모델링 도구 (ERwin DA# ERDCloud)
ERwin DA# ERDCloud
ERDCloud 실습
엔티티란
엔티티 개념
테이블? 엔티티? 뭐가 다른 걸까
요구사항에서 엔티티를 도출하는 방법
엔티티는 어떻게 도출할까?
데이터 모델링의 핵심 '엔티티 도출'
[실습] 엔티티 도출 따라하기
엔티티가 '잘' 도출 되었는지 확인하기
엔티티의 의미를 명확하게 부여했는지
관리가 필요한 대상인지
집합을 이루고 있는지
업무 프로세스에 종속되어 있는 것은 아닌지
독립성을 가지고 있는지
화면별로 엔티티를 도출하지는 않았는지
엔티티를 분류하면 어떤 데이터가 저장되는지 알 수 있습니다
엔티티에도 성격이 있다
테이블 설계를 잘할 수 있는 비법 : 성격별 엔티티 분류
엔티티 분류의 이점
속성이란
속성 개념
속성의 구성요소
쿼리 개발이 쉬워지는 속성 분류
속성을 분류하는 이유
기초속성
관계속성
추출속성/중복속성
시스템속성
많은 개발자가 놓치는 특별한 속성 설계
특별한 속성
다가속성
복합속성
배타속성
코드속성
속성 도출 방법
진짜 필요한 속성을 찾아내는 비법
[실습]속성 도출 따라하기
식별자란
식별자 개념
식별자 특징
식별자 분류
'OO번호'로 많이 사용되는 인조식별자
본질식별자와 인조식별자(feat.진주어와 가주어)
엔티티 성격별로 주로 사용되는 식별자
본질식별자를 사용할까? 인조식별자를 사용할까?
식별자 선정 방법
[실습] 식별자 선정 따라하기
식별자 선정 시 주의사항
식별자와 관련된 여러가지 이야기
무조건 인조식별자로 만든다면?
상품번호 속성 형태 (000000121 vs GOD000121 vs 121)
사례데이터를 생각하는 습관
관계란
관계 개념
관계와 Join
관계의 구성요소(관계차수,관계선택성,관계명)
관계의 구성요소
관계차수(1:1 / 1:M / M:N)
관계선택성(선택 / 필수)
관계명
관계를 쉽게 연결할 수 있는 비법
관계선이 가지고 있는 숨은 의미
종속관계
참조관계
식별관계와 비식별관계
종속/참조 식별/비식별 관계 정리
실무에서 마주하는 까다로운 관계들(다중,재귀,배타,BOM)
다양한 관계
다중 관계
재귀 관계(= 순환 관계)
배타 관계(= 아크 관계)
BOM 관계
관계 도출 방법
[실습]관계 도출 따라하기1
[실습]관계 도출 따라하기2
관계와 관련된 여러가지 이야기
외래키(FK) 제약조건 필요할까?(feat. 우리회사는 FK를 생성하지 않아요)
관계선을 연결하지 않아도 되는 경우
성능 향상을 위한 관계 연결
서브타입과 슈퍼타입
서브타입/슈퍼타입 개념
서브타입/슈퍼타입 특성
어떤 상황에서 서브타입을 사용할까?
서브타입을 사용하는 이유
서브타입을 도출해야 하는 상황
서브타입 도출 방법
[실습]서브타입 도출 따라하기
서브타입 도출 시 주의사항
서브타입이 포함된 엔티티의 테이블 생성
서브타입이 포함된 엔티티의 테이블 생성 유형 3가지
유형1. 서브타입 구조
유형2. 통합 테이블 구조
유형3. 개별 테이블 구조
테이블 생성 유형 선택 기준
정규화란
정규화 개념
정규화, 왜? 해야 할까
정규화의 장점과 단점
1정규화 - 중복되는 것을 분리하자!
1정규화 정의
1정규화를 하지 않았을 때의 문제점
[실습]개선해볼까요?
2정규화 - 식별자 전체 속성에 완전히 종속되도록!
2정규화 정의
2정규화를 하지 않았을 때의 문제점
[실습]개선해볼까요?
3정규화 - 비식별자 속성끼리 종속관계가 있다?
3정규화 정의
3정규화를 하지 않았을 때의 문제점
[실습]개선해볼까요?
반(비)정규화란
반정규화 개념
반정규화 수행 전 필수! 확인 사항
반정규화의 장점과 단점
성능 개선을 위한 반(비)정규화 방법 3가지
중복 컬럼 생성
중복 테이블 생성
테이블 분할
공통 코드
공통 코드란?
코드를 사용하는 이유
공통 코드 설계 시 주의사항
공통 코드 설계 방법
[실습]공통 코드 설계 방법 1
[실습]공통 코드 설계 방법 2
공통 코드 VS 개별 코드
이력 관리
이력이란?
OO 상황에서는 이력 관리가 필수입니다.
[실습]이력 설계 방법 1
[실습]이력 설계 방법 2
학습 대상은
누구일까요?
업무 영역별 DB 테이블 설계를 필요로 하는 '개발자'
전체 구조에 대해 고민을 하며 데이터 모델링을 해야 하는 '초보 모델러'
DASP, DAP 자격증 취득을 목표로 하시는 분!
선수 지식,
필요할까요?
SQL에서 Join에 대한 개념
Select ~ From ~ Where 쿼리에 대한 기초 이해
커리어인증
72
명
수강생
9
개
수강평
1
개
답변
4.8
점
강의 평점
1
개
강의
안녕하세요 👋
외국계 기업에서 Data Architect로 일하고 있는 Archix입니다.
Back-end 개발자로 출발해 SQLP 🎖, DAP 🎖 자격증을 취득하며 데이터 전문가의 길을 걷게 되었고, 현재는 개발자분들의 데이터 모델 효율화와 쿼리 튜닝을 지원하며 더 나은 데이터 관리를 위해 일하고 있습니다.
여러 프로젝트와 운영을 경험하면서 한 가지를 분명하게 느꼈습니다. 설계가 탄탄한 시스템은 흔들리지 않는다는 것입니다. 반면 설계가 탄탄하지 못한 시스템은 작은 문제들이 반복되고, 결국 불필요한 리소스 낭비로 이어지게 됩니다.
개발자로 일해본 경험이 있기에 이런 상황을 가까이서 겪어왔고, 그 경험을 강의에 녹여 실무에서 바로 활용할 수 있는 내용을 전달드리고자 합니다.
앞으로도 데이터 모델링의 중요성을 다양한 방면에서 알리기 위해 꾸준히 활동할 예정입니다.
강의를 모두 수강하신 후 DA 직무나 커리어에 대해 궁금한 점이 생기신다면, '완강 '인증과 함께 아래 이메일로 편하게 연락 주세요. 가능한 선에서 도움을 드릴 수 있도록 하겠습니다.
감사합니다.
전체
37개 ∙ (9시간 42분)
해당 강의에서 제공:
전체
9개
4.8
9개의 수강평
수강평 4
∙
평균 평점 5.0
5
개발자이지만 DB 모델링에 관심이 많아서 수강하게 되었습니다. 취업준비할 때 난해하고 이해하지 못했던 개념들이 쉬운 예시와 함께 정리할 수 있어서 좋았습니다. 차근차근 이론에 이어서 예시를 들어주는 설명 덕분에 이해하기 어려울 수 있는 부분도 명확하게 이해가 되었습니다 : ) 경력자이신 분들은 기초적인 내용일지라도 한 번 정리하고 간다는 느낌으로 편하게 들을 수 있는 강의 인 거 같습니다. 강의 톤 자체도 차분하게 설명해주시는 친근한 선배 형처럼 느껴저서 좋았습니다. 이후 선생님 강의들이 나온다면 기대를 가지고 다음 강의를 수강할 거 같습니다 :) 아 그리고 완강하면 커리어적인 고민도 선생님께 여쭤볼 수 있는데, 저한테는 이 부분이 완강하는데 큰 동기부여가 되었던 거 같습니다 ㅎㅎ 조만간 이메일 문의 남기도록 하겠습니다~!! 좋은 강의 만들어주셔서 감사합니다!
Rootree님, 수강 후기 감사합니다. 말씀하신 것처럼 난해하고 이해하기 어려웠던 개념들이 실무에서 예상치 못한 변수가 되곤 합니다. 이런 기초 개념들을 명확하게 이해하고 계시면 다양한 상황에서 조금 더 정확한 판단을 하실 수 있을 거라 생각합니다. 상세한 후기 정말감사합니다. 추가로, 커리어 관련 문의는 이메일로 주시면 답장 드리겠습니다. 감사합니다.
수강평 5
∙
평균 평점 4.6
5
개발중에 테이블을 설계하는 경우가 있는데, 강의를 듣고 아리까리한 부분이 많이 해소가 된 것 같습니다. 무엇보다 잘못 된 테이블 설계로 쿼리짜는게 힘들었는데, 제가 쿼리 작성하는 능력이 모자란게 아니라는 말이 위안이 되네요 ㅠㅠ
애매했던 부분이 해소되어 다행입니다. 잘못 설계된 테이블의 쿼리는 특히 인라인 뷰를 많이 사용하게 되고, 비슷한 데이터가 많아 어디서 데이터를 가져와야 하는지 고민이 많아집니다. 앞으로 충분히 고민된, 잘 설계된 구조를 만들어 나가실 수 있을 거예요! 감사합니다.
같은 분야의 다른 강의를 만나보세요!