4-8 연습 문제 — 종합 모델링 실습,
내 손으로 ERD 한 장 완성하기
섹션 4 의 마지막 연습 — 직접 ERD 한 장을 만들어볼 시간입니다. 눈으로 따라간 모델링은 금방 흐려지지만, 4 단계 (요구사항 → 엔티티 → 관계 → ERD) 흐름을 본인 손으로 한 번 돌려본 ERD 는 머리에 남습니다. 각 문제 풀이 후에는 본인 답을 AI 에 던지고 검증 — 이게 "AI 와 협업하는 모델링" 의 실전입니다.
이번 연습의 위치
완료 ✓
완료 ✓
강의 완료 ✓
지금 여기 ⭐
5-1 부터
2-4에서 만든 AI 과외 선생님 세션을 그대로 쓰세요. 막히면 정답이 아니라 힌트만 요청하고 — 각 문제를 풀어본 뒤에는 본인 답을 AI 에 던지고 검증하세요. “내 엔티티 / 관계 / ERD 가 맞나 검토해줘” — 직접 만들고 → 검증받는 이 순서가 AI 와 협업하는 모델링의 실전입니다.
문제 1. 도서관 — 엔티티 추출
다음 도서관 운영 요구사항을 읽고 — 필요한 엔티티 (테이블) 들을 식별 하세요.
도서관에서 책을 관리하고 회원들이 책을 빌리고 반납하는 시스템.
한 책은 여러 권 (복사본) 이 있을 수 있다.
회원은 책을 빌릴 때 대출 기한이 정해지고, 기한이 지나면 연체 상태.
책은 카테고리 (소설/과학/역사 등) 로 분류된다.
한 책에 여러 저자가 있을 수 있다 (공저).무엇이 빠진 엔티티 / 무엇이 헷갈리는 엔티티가 있는지 도 같이 적으세요.
정답 보기
필요한 엔티티 (최소 6 개):
| 엔티티 | 역할 | 비고 |
|---|---|---|
members | 회원 마스터 | 명사 “회원” |
books | 책 마스터 (제목·ISBN 등) | 명사 “책” |
book_copies | 책의 개별 복사본 | ”여러 권” 라는 표현이 힌트 — book ≠ copy |
categories | 카테고리 마스터 | 명사 “카테고리” |
authors | 저자 마스터 | 명사 “저자” |
loans | 대출 기록 (행위 = 엔티티) | “빌리고 반납” — 대출은 엔티티 |
book_authors | 책 ↔ 저자 N:M 중간 | ”공저” 라는 표현 → N:M |
헷갈릴 수 있는 포인트:
booksvsbook_copies— “한 책 = 여러 권” 이라 책 정보 (제목, 저자) 와 개별 권 을 분리해야 함. 학생들이 이 구분을 자주 놓침.book_authors— “한 책에 여러 저자” + “한 저자가 여러 책” = N:M → 중간 테이블 필요.loans— “빌린다” 라는 행위 가 엔티티가 된다는 점.
문제 2. 도서관 — 관계 정의
위 도서관 엔티티들의 관계 (1:N, N:M, 1:1) 를 정리 하세요. 양방향 질문법 (“한 X 가 여러 Y? 반대도?”) 으로 답하기.
정답 보기
| 관계 | 양방향 답 | 결과 |
|---|---|---|
categories ↔ books | 한 카테고리 → 여러 책 (YES), 한 책 → 카테고리 1 개 (NO) | 1:N |
books ↔ book_copies | 한 책 → 여러 권 (YES), 한 권 → 책 1 개 (NO) | 1:N |
books ↔ authors | 양쪽 모두 YES (공저 / 다작) | N:M → book_authors |
members ↔ loans | 한 회원 → 여러 대출 (YES) | 1:N |
book_copies ↔ loans | 한 권 → 여러 대출 (YES, 시점 다름), 한 대출 → 한 권 (NO) | 1:N |
대출(loans) 가 가리키는 건 books 가 아니라 book_copies — 같은 제목 책 5권 있어도 그 중 어느 권을 빌렸는지 추적해야 하니까. 이게 분리의 핵심 의미.
문제 3 (도전). 본인 도메인으로 4 단계 전체 실습
다음 도메인 중 하나를 선택 하거나, 본인이 관심 있는 도메인 으로 — 4 단계 전체 (요구사항 → 엔티티 → 관계 → ERD) 를 직접 거치세요.
선택 도메인 (택1):
| # | 도메인 | 핵심 요건 |
|---|---|---|
| A | 음식점 주문 관리 | 메뉴, 옵션 (사이즈 등), 테이블, 직원 응대, 결제 |
| B | 헬스장 회원 관리 | 회원권 종류, 출석 기록, 락커, 트레이너 PT 예약 |
| C | 영화 예매 | 영화, 상영관, 좌석, 회차, 예매 |
| D | 본인 회사 / 관심 도메인 | (직접 정의) |
선택한 도메인의 핵심을 자연어로 적습니다 — 문제 1 의 도서관 요구사항 같은 형태.
명사 + 행위 + N:M 중간 테이블까지 식별.
양방향 질문법 (“한 X 가 여러 Y? 반대도?”) 으로 1:N / N:M / 1:1 판정.
정의한 엔티티·관계를 mermaid erDiagram 으로 옮깁니다.
본인 ERD 를 ChatGPT/Claude 에 던지고 검증을 요청합니다.
AI 검증 프롬프트:
다음 [도메인] ERD 를 검토해줘:
[엔티티 + 관계]
...
[검증 요청]
1. 빠진 엔티티 / 관계
2. 정규화 위반
3. 누락된 컬럼
4. 실무 고려 사항AI 응답을 받아 — 본인 ERD 를 2 차로 다듬어보세요. 그 결과를 본인이 1차로 짠 거와 비교 → 차이 = 학습.
예시 — 영화 예매 도메인 (참고)
주요 사고:
showtimes가 movies + theaters 의 교차점. “이 영화 / 이 상영관 / 이 시각” 의 세 정보를 묶음.seats는 showtime 별로 생성 — 같은 좌석 번호 (A-1) 라도 회차마다 별개 행. 동시 예매 충돌 방지.bookings는 한 회원의 한 번 예매.booking_seats가 “이 예매로 좌석 N 개” 의 N:M 풀어줌.
AI 검증으로 받게 될 피드백 예:
- 결제 정보 (
payments) 분리 권장 - 좌석 예매 시 동시성 (lock) 처리 — 이건 DB 모델보다 애플리케이션 레벨 이슈
- 환불 / 취소 시점 기록 (
cancelled_at) 추가 검토
같은 도메인이라도 — 회사마다 / 비즈니스마다 다른 모델이 나옵니다. “정답” 보다 “이 결정의 이유” 가 중요.
섹션 4 — 모델링 종합 완료 🎉
여기까지 푸셨다면 — 강의 마케팅 메시지의 핵심 을 본인 손에 잡은 상태입니다.
이제 — 만든 모델링을 어떻게 AI 에게 던질지가 다음 섹션입니다.