정리 & 연습
핵심 요점
- 대부분의 앱은 세 가지 저장 형태 — 관계형, 문서형, 키-값형 — 중 하나만 필요하며, 관계형이 안전한 기본값이다.
- 매니지드 데이터베이스로 시작하라. 데이터와 스키마 결정은 당신이, 서버 운영은 플랫폼이 책임진다.
- 좋은 스키마 설계란 정직한 타입, 외래 키와 제약 조건, 합리적인 인덱스, 그리고 중복 없는 데이터를 뜻한다.
- 모든 마이그레이션을 일방통행 문으로 다뤄라: 무언가를 drop하거나 이름을 바꾸기 전에 백업하고, AI가 쓴 마이그레이션은 꼼꼼히 검토하라.
- 항상 파라미터화된 쿼리를 요구해 사용자 입력이 에 절대 그대로 이어 붙지 않게 하라.
직접 해보기
작은 앱 아이디어를 하나 고르고, 그 엔티티와 관계를 먼저 평범한 한국어로 적어 보라. 그런 다음 그 설명을 AI에게 넘겨 스키마와 정방향 마이그레이션을 요청하고 — 무엇이든 실행하기 전에 이 장의 체크리스트로 결과를 검토하라.
Design a relational schema for a personal bookmarks app.
Entities and relationships:
- A user has many bookmarks.
- A bookmark belongs to one user, has a URL, a title, and many tags.
- A tag can apply to many bookmarks.
Requirements:
- Use UUID primary keys and created_at timestamps.
- Enforce relationships with foreign keys.
- Add indexes for the columns we'll filter on.
- Give me the schema as SQL plus a forward migration file.
- Flag any migration step that drops or renames so I can back up first.