강의

멘토링

커뮤니티

NEW
개발 · 프로그래밍

/

데이터베이스

쉽게 배우는 데이터 모델링 : 기본 개념부터 실전 테이블 설계까지

테이블 설계 때문에 답답함을 느끼신 적 있으신가요? "이 테이블이 맞나?", "어떤 컬럼을 PK로 해야 하지?", "관계를 이렇게 연결해도 되나?" "기능 추가할 때 테이블을 다시 만들어야 하는 건 아닐까?" 같은 고민을 하신 적이 있는 분들을 위한 강의입니다.

2명 이 수강하고 있어요.

난이도 초급

수강기한 무제한

  • Archix
실무모델링
실무모델링
이론 실습 모두
이론 실습 모두
무작정 따라하기
무작정 따라하기
입문자
입문자
자격증
자격증
실무모델링
실무모델링
이론 실습 모두
이론 실습 모두
무작정 따라하기
무작정 따라하기
입문자
입문자
자격증
자격증

수강 후 이런걸 얻을 수 있어요

  • 요구사항을 분석하고 테이블을 설계할 수 있는 방법

  • 엔티티, 속성, 식별자, 관계에 대한 '논리 데이터 모델링' 필수 개념

  • DASP, DAP 자격증 취득을 위한 지식

  • 성능을 고려한 테이블 설계 방법

  • ERD를 그리기 위한 표기법 (IE, Barker)

여러분의 테이블 설계, 괜찮으신가요?

  • 설계할 때마다 확신이 서지 않는 불안감

  • 수정하려니 이미 엉켜버린 복잡한 구조

  • 기능 추가 = 테이블 재설계의 반복

  • 체계적으로 배운 적 없는 데이터 모델링


이 강의에서는 단순히 '작동만 하는' 테이블이 아닌
확장 가능하고 유지보수하기 쉬운 테이블 설계 방법을 배웁니다.

실무에서 누구나 겪는 고민들

고객 요구사항을 제대로 담아내는 테이블을 만들기란 쉽지 않습니다.
어떤 구조가 적절한지, 수정하기 쉬운 설계인지, 확장 가능한 구조인지.. 혼자서 판단하기 어렵습니다

검색해봐도 주어진 상황은 모두 다르고 결국 '이게 맞는 방법일까?' 하는 불안감만 커집니다.

설계 문제는 시간이 지날수록 커집니다

처음에는 괜찮아 보였는데...

많은 개발자분들이 비슷한 경험을 합니다.
프로젝트 초반에는 테이블을 빠르게 만들고 개발 기능을 구현하는 데 집중합니다.
데이터도 적고 요구사항도 크지 않아서 모든 게 순조롭게 느껴지죠.

하지만 시간이 지나면서 프로젝트가 성장하고 복잡도가 높아지면
초기에 "빠르게만" 만든 테이블 구조가 점점 큰 걸림돌이 됩니다.

간단한 기능 추가도 여러 테이블을 수정해야 하고, 데이터 정합성 문제로 버그가 반복되고
결국, "그때 제대로 설계했더라면..." 하고 후회하게 됩니다.


초기 단계

😊

  • "일단 데이터만 담을 수 있으면 되지!"

  • 깊게 고민하지 않고 설계

    빠른 개발을 위해 필요한 속성들을 하나의 테이블에 몰아넣기

  • 데이터 양이 적을 땐 아무 문제 없어 보임


6개월 후

📉

  • 기능을 추가할 때마다 테이블 구조 수정 필요

  • 같은 데이터가 여러 테이블에 중복되어 정합성 문제 발생

  • 쿼리가 점점 복잡해지며 성능이 느려지기 시작함

1~2년 이 후

🚨

  • 기능 하나 추가하는 데 수정해야 할 곳이 너무 많아짐

  • 필요한 데이터를 어느 테이블에서 가져올지 매번 고민

  • 데이터 불일치가 자주 발생하고, 수정하는 데 많은 시간 소요


해결책 : 제대로 된 데이터 모델링 (테이블 설계)

같은 요구사항, 다른 설계

같은 기능을 구현할 때도, 어떻게 설계하느냐에 따라 결과는 완전히 달라집니다.
확장성을 고려해서 설계된 테이블은 요구사항이 바뀌어도 쉽게 대응할 수 있습니다.

반면 깊게 고민하지 않고 만든 테이블은 작은 변경에도 많은 수정이 필요하고 예상치 못한 문제가 계속 발생합니다.

초반에는 이런 차이가 잘 보이지 않습니다. 둘 다 잘 작동하는것처럼 보이니까요.
하지만 시간이 지날수록 그 차이는 개발 속도와 유지보수 난이도로 나타납니다.

이 강의는 확장 가능한 테이블을 설계하는 방법을 다룹니다.
"나중에 고치면 되지"가 아닌, "처음부터 제대로" 만드는 법을 배웁니다.
강의를 마치면 요구사항을 보고 확장 가능한 구조로 설계할 수 있게 됩니다.


📌고객의 요구사항📌

  1. 구내식당에서는 매주 식단표를 확인할 수 있다.

  2. 식단은 월요일부터 금요일까지 점심/저녁을 제공하고 식단마다

    해당 식단을 제공한 영양사 정보를 확인할 수 있다.

  3. 식단 메뉴에는 밥과 국은 필수로 포함되고 반찬은 여러 개 포함될 수 있다.

    칼로리 또한 관리되어야 한다.

  4. 요구르트, 아이스크림, 과일과 같은 부식이 나오는 경우도 있다.

👎고민 없이 설계한 모델

👍충분한 고민을 한 모델

이 강의의 특징

1. 실전 중심 학습

단순 이론이 아닌 실무에서 바로 쓸 수 있는 내용으로 구성

  • 실무에서 자주 겪는 고민과 해결 방법 제시

  • 도서 대여 시스템, 쇼핑몰 등 실무와 가까운 예제 활용

  • 데이터 모델링 단계를 직접 따라하며 학습

2. 체계적인 강의 자료

700페이지 분량의 PPT 자료로 완벽한 복습

  • 핵심만 요약된 내용으로 개념 파악 용이

  • 언제든지 다시 찾아볼 수 있는 레퍼런스

3. 누구나 쉽게 실습

특별한 준비 없이 바로 시작 가능

  • 종이와 펜만 있어도 충분, 도구는 선택사항

  • 웹 기반 ERD Cloud로 별도 설치 없이 실습

  • Barker 표기법과 IE 표기법을 모두 설명

강의 구성(상세 목차)

1. 데이터 모델링 기초 강의를 시작합니다

강의 소개 : 테이블 설계 과정에서 답답함을 느껴본 적이 있으신가요?

  • 강의에서 다루는 내용

  • 누구를 위한 강의인가? (Feat. DB설계를 필요로 하는 개발자와 초보 모델러)

  • 강의 구성

  • 강의를 수강하기 위한 사전 지식


업무 효율과 개발 생산성 향상 방법

  • 데이터 모델링이란?

  • 우리는 ERD를 관리하고 있지 않아요

  • 이렇게 설계하면 나중에 고생합니다

나의 데이터 모델링 이해도 점검

  • 퀴즈1 : O/X 문제

  • 퀴즈2 : 테이블 개수 맞추기

2. 데이터 모델링을 위한 첫 걸음

요구사항 분석부터 테이블 생성까지의 단계

  • 토이 프로젝트로 설명하는 데이터 모델링 단계

  • 요구사항 분석/정의

  • 주제영역 설정

  • 개념 데이터모델링

  • 논리 데이터모델링

  • 물리 데이터모델링

  • 데이터 모델링 단계를 간소화 할 수 있을까?

데이터 모델링 표기법 (Barker,IE)

  • 데이터 모델링을 위한 Barker/IE 표기법

  • 엔티티 표기

  • 속성 표기

  • 식별자 표기

  • 관계 표기

  • 서브타입 표기

데이터 모델링 도구 (ERwin DA# ERDCloud)

  • ERwin DA# ERDCloud

  • ERDCloud 실습

3. 엔티티[테이블] : 어떤 정보를 테이블로 도출해야 할까요?

엔티티란

  • 엔티티 개념

  • 테이블? 엔티티? 뭐가 다른 걸까

요구사항에서 엔티티를 도출하는 방법

  • 엔티티는 어떻게 도출할까?

  • 데이터 모델링의 핵심 '엔티티 도출'

  • [실습] 엔티티 도출 따라하기

엔티티가 '잘' 도출 되었는지 확인하기

  • 엔티티의 의미를 명확하게 부여했는지

  • 관리가 필요한 대상인지

  • 집합을 이루고 있는지

  • 업무 프로세스에 종속되어 있는 것은 아닌지

  • 독립성을 가지고 있는지

  • 화면별로 엔티티를 도출하지는 않았는지

엔티티를 분류하면 어떤 데이터가 저장되는지 알 수 있습니다

  • 엔티티에도 성격이 있다

  • 테이블 설계를 잘할 수 있는 비법 : 성격별 엔티티 분류

  • 엔티티 분류의 이점

4. 속성[컬럼] : 요구사항에 있는 모든 컬럼을 추가하지는 않습니다.

속성이란

  • 속성 개념

  • 속성의 구성요소

쿼리 개발이 쉬워지는 속성 분류

  • 속성을 분류하는 이유

  • 기초속성

  • 관계속성

  • 추출속성/중복속성

  • 시스템속성

많은 개발자가 놓치는 특별한 속성 설계

  • 특별한 속성

  • 다가속성

  • 복합속성

  • 배타속성

  • 코드속성

속성 도출 방법

  • 진짜 필요한 속성을 찾아내는 비법

  • [실습]속성 도출 따라하기

5. 식별자[PK] : 이런 컬럼을 PK로 선정하세요.

식별자란

  • 식별자 개념

  • 식별자 특징

  • 식별자 분류

'OO번호'로 많이 사용되는 인조식별자

  • 본질식별자와 인조식별자(feat.진주어와 가주어)

  • 엔티티 성격별로 주로 사용되는 식별자

  • 본질식별자를 사용할까? 인조식별자를 사용할까?

식별자 선정 방법

  • [실습] 식별자 선정 따라하기

  • 식별자 선정 시 주의사항

식별자와 관련된 여러가지 이야기

  • 무조건 인조식별자로 만든다면?

  • 상품번호 속성 형태 (000000121 vs GOD000121 vs 121)

  • 사례데이터를 생각하는 습관

6. 관계[FK] : 테이블 간의 연결 - Join

관계란

  • 관계 개념

  • 관계와 Join

관계의 구성요소(관계차수,관계선택성,관계명)

  • 관계의 구성요소

  • 관계차수(1:1 / 1:M / M:N)

  • 관계선택성(선택 / 필수)

  • 관계명

관계를 쉽게 연결할 수 있는 비법

  • 관계선이 가지고 있는 숨은 의미

  • 종속관계

  • 참조관계

  • 식별관계와 비식별관계

  • 종속/참조 식별/비식별 관계 정리

실무에서 마주하는 까다로운 관계들(다중,재귀,배타,BOM)

  • 다양한 관계

  • 다중 관계

  • 재귀 관계(= 순환 관계)

  • 배타 관계(= 아크 관계)

  • BOM 관계

관계 도출 방법

  • [실습]관계 도출 따라하기1

  • [실습]관계 도출 따라하기2

관계와 관련된 여러가지 이야기

  • 외래키(FK) 제약조건 필요할까?(feat. 우리회사는 FK를 생성하지 않아요)

  • 관계선을 연결하지 않아도 되는 경우

  • 성능 향상을 위한 관계 연결

7. 서브타입 : 유사한 엔티티들을 전략적으로 관리하는 법

서브타입과 슈퍼타입

  • 서브타입/슈퍼타입 개념

  • 서브타입/슈퍼타입 특성

어떤 상황에서 서브타입을 사용할까?

  • 서브타입을 사용하는 이유

  • 서브타입을 도출해야 하는 상황

서브타입 도출 방법

  • [실습]서브타입 도출 따라하기

  • 서브타입 도출 시 주의사항

서브타입이 포함된 엔티티의 테이블 생성

  • 서브타입이 포함된 엔티티의 테이블 생성 유형 3가지

  • 유형1. 서브타입 구조

  • 유형2. 통합 테이블 구조

  • 유형3. 개별 테이블 구조

  • 테이블 생성 유형 선택 기준

8. 정규화와 반(비)정규화 : 완벽한 구조 vs 빠른 성능

정규화란

  • 정규화 개념

  • 정규화, 왜? 해야 할까

  • 정규화의 장점과 단점

1정규화 - 중복되는 것을 분리하자!

  • 1정규화 정의

  • 1정규화를 하지 않았을 때의 문제점

  • [실습]개선해볼까요?

2정규화 - 식별자 전체 속성에 완전히 종속되도록!

  • 2정규화 정의

  • 2정규화를 하지 않았을 때의 문제점

  • [실습]개선해볼까요?

3정규화 - 비식별자 속성끼리 종속관계가 있다?

  • 3정규화 정의

  • 3정규화를 하지 않았을 때의 문제점

  • [실습]개선해볼까요?

반(비)정규화란

  • 반정규화 개념

  • 반정규화 수행 전 필수! 확인 사항

  • 반정규화의 장점과 단점

성능 개선을 위한 반(비)정규화 방법 3가지

  • 중복 컬럼 생성

  • 중복 테이블 생성

  • 테이블 분할

9. 공통 코드와 이력 관리

공통 코드

  • 공통 코드란?

  • 코드를 사용하는 이유

  • 공통 코드 설계 시 주의사항

공통 코드 설계 방법

  • [실습]공통 코드 설계 방법 1

  • [실습]공통 코드 설계 방법 2

  • 공통 코드 VS 개별 코드

이력 관리

  • 이력이란?

  • OO 상황에서는 이력 관리가 필수입니다.

  • [실습]이력 설계 방법 1

  • [실습]이력 설계 방법 2

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 업무 영역별 DB 테이블 설계를 필요로 하는 '개발자'

  • 전체 구조에 대해 고민을 하며 데이터 모델링을 해야 하는 '초보 모델러'

  • DASP, DAP 자격증 취득을 목표로 하시는 분!

선수 지식,
필요할까요?

  • SQL에서 Join에 대한 개념

  • Select ~ From ~ Where 쿼리에 대한 기초 이해

안녕하세요
입니다.

안녕하세요 👋

외국계 기업에서 Data Architect로 일하고 있는 Archix입니다.

Back-end 개발자로 출발해 SQLP 🎖, DAP 🎖 자격증을 취득하며 데이터 전문가의 길을 걷게 되었고, 현재는 개발자분들의 데이터 모델 효율화와 쿼리 튜닝을 지원하며 더 나은 데이터 관리를 위해 일하고 있습니다.

여러 프로젝트와 운영을 경험하면서 한 가지를 분명하게 느꼈습니다. 설계가 탄탄한 시스템은 흔들리지 않는다는 것입니다. 반면 설계가 탄탄하지 못한 시스템은 작은 문제들이 반복되고, 결국 불필요한 리소스 낭비로 이어지게 됩니다.

개발자로 일해본 경험이 있기에 이런 상황을 가까이서 겪어왔고, 그 경험을 강의에 녹여 실무에서 바로 활용할 수 있는 내용을 전달드리고자 합니다.

앞으로도 데이터 모델링의 중요성을 다양한 방면에서 알리기 위해 꾸준히 활동할 예정입니다.

강의를 모두 수강하신 후 DA 직무나 커리어에 대해 궁금한 점이 생기신다면, '완강 '인증과 함께 아래 이메일로 편하게 연락 주세요. 가능한 선에서 도움을 드릴 수 있도록 하겠습니다.

📩cherish1058@naver.com

감사합니다.

커리큘럼

전체

37개 ∙ (9시간 42분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

얼리버드 할인 중

₩6,484

33%

₩79,200

비슷한 강의

같은 분야의 다른 강의를 만나보세요!