Lesson
데이터베이스와 데이터 엔지니어링
SQL 명령 분류와 정규화부터 데이터 웨어하우스, AI 데이터 파이프라인까지 데이터가 흐르는 경로를 정리합니다.
총 7개 주제
01
SQL 명령어 분류 체계
SQL은 두 축으로 분류할 수 있다. 애플리케이션 관점의 CRUD로 나누는 방법과, DB 시스템 관점에서 대상(데이터/구조/권한)으로 나누는 방법이다.

- 목적별(CRUD): CREATE→INSERT(DML), READ→SELECT(DQL), UPDATE→UPDATE(DML), DELETE→DELETE(DML)
- 대상별: 데이터 객체(알맹이)는 DQL·DML, 구조(틀)는 DDL, 접근 주체(권한)는 DCL
- DDL: CREATE, ALTER, DROP, TRUNCATE — 스키마 구조를 다룬다
- DCL: GRANT, REVOKE — 권한을 다룬다
- TCL: COMMIT, ROLLBACK — 트랜잭션 블록을 제어한다
02
DB 모델링과 객체지향 관계 매핑
정규화라는 같은 단어가 DB와 ML에서 다른 뜻으로 쓰인다. 또한 DB의 관계 유형은 객체지향의 IS-A / HAS-A / USES-A 관계와 대응된다.

- DB 정규화(1NF~BCNF): 구조 최적화와 중복 제거 — 무결성이 목적
- ML 정규화(피처 스케일링): Min-Max 스케일링, 표준화 — 피처 스케일을 맞추는 것이 목적
- IS-A(상속) ↔ 비식별 관계, HAS-A(합성) ↔ 식별 관계(강한 의존), USES-A(의존)
- 현대 설계는 복합키(PK Bloat) 대신 대리키(Surrogate Key, UUID/AUTO-INC)를 권장 — ORM 친화적
03
프로젝트 구조와 데이터베이스 개념 지도
실제 백엔드 폴더 구조에서 어떤 디렉터리가 어떤 DB 개념과 연결되는지 보여준다. alembic은 DDL(마이그레이션), apps는 DML/DQL, core는 시스템 설정에 대응한다.

- alembic/ → DDL: 스키마 관리, 버전 관리되는 마이그레이션
- apps/ → DML/DQL: 데이터 조작과 조회, API 엔드포인트
- core/ .env, database.py → 시스템 설정
- Docker → 컨테이너화, 애플리케이션 환경, 배포
04
데이터 에코시스템 — 원천 데이터에서 가치까지
인프라와 자료구조에서 출발한 데이터가 데이터베이스, 데이터셋, 데이터 프레임을 거쳐 데이터 웨어하우스에 모이고, 최종적으로 의사결정 가치로 전환되는 전체 사슬이다.

- 변수·상수·함수 등 코드 문맥에서 데이터가 발생한다
- 데이터베이스(DB) → 데이터셋(Data Set) → 데이터 프레임(Pandas DataFrame)
- 데이터 웨어하우스(DW): 장기 분석을 위한 통합(OLAP), 데이터 마트(DM): 부서별 맞춤 데이터
- 가치 창출 체인: 데이터('36.5') → 정보('체온 정상') → 가치('출입 승인')
05
AI 개발 데이터 흐름 아키텍처
앞서 배운 함수·객체·개체 3분법이 그대로 시스템 계층이 된다. 프론트엔드(함수)가 원시 데이터를 모으고, 백엔드(객체)가 정제·처리하며, 데이터베이스(개체)가 영구 저장한다.

- Function(프론트엔드/HTML): 원시 데이터 수집과 표준화
- Object(백엔드/Python): 데이터 정제, AI 모델 실행, 메모리 객체 관리
- Entity(데이터베이스/SQL): 구조화된 데이터의 영속 저장과 안전한 관리
- 흐름: Raw Data → Standardized Data → Refined Objects
06
AI 개발 핵심 용어 — 선언 · 정의 · 정제 · 미세조정
구조 설계 → 데이터 전처리 → 모델 최적화의 3단계로 용어를 배치하면 각 단어가 언제 등장하는지 명확해진다.

- Declaration(선언): 식별자 존재를 알리고 가상 메모리 공간을 확보
- Definition(정의): 데이터 형식·로직·스키마 구조를 확정
- Refine(정제): 노이즈·결측치·중복을 제거해 정형 데이터로 변환
- Fine-Tuning(미세 조정): 사전 학습 모델에 특정 도메인 데이터를 추가 학습시켜 가중치를 최적화
07
프레임워크 결정이 먼저, 정제는 그 다음
정제의 기준은 하늘에서 떨어지지 않는다. 어떤 그릇(데이터 타입)에 담을지 규격을 먼저 확정해야 무엇이 노이즈인지 판단할 수 있다. 뼈대가 있어야 정제의 기준이 생긴다.

- 1단계: 프레임워크 결정 및 규격 정의 — 들어올 그릇(데이터 타입)과 통로 확정
- 2단계: 정제 규칙(Refine Rule) 적용 — 규격에 맞춰 불필요한 요소 제거 및 가공
- 예시: id 공백 제거, email 소문자화 — 규격이 정해져 있어야 가능한 작업