Choorai
| 문서
🎯 Cycle 4

데이터베이스 연결

지금까지는 메모리에 데이터를 저장했습니다. 서버를 재시작하면 데이터가 사라지죠. 이제 PostgreSQL을 연결하여 데이터를 영구 저장해봅시다.

이 Cycle에서 배우는 것

  • PostgreSQL 설치 및 설정
  • SQLAlchemy ORM 사용법
  • 데이터베이스 마이그레이션 (Alembic)
  • 환경별 설정 분리

왜 데이터베이스가 필요한가요?

❌ 인메모리 저장

  • 서버 재시작 시 데이터 삭제
  • 서버 여러 대일 때 데이터 불일치
  • 메모리 부족 위험

✅ 데이터베이스 사용

  • 영구적인 데이터 저장
  • 여러 서버에서 동일한 데이터
  • 효율적인 검색과 정렬

왜 PostgreSQL인가요?

여러 데이터베이스 중 PostgreSQL을 추천하는 이유:

  • 무료 & 오픈소스 - 라이선스 비용 없음
  • 검증된 안정성 - 30년 이상의 역사
  • 클라우드 지원 - 모든 클라우드에서 관리형 서비스 제공
  • JSON 지원 - NoSQL처럼 유연한 데이터 저장 가능

빠른 시작

1. 의존성 설치

터미널
pip install sqlalchemy psycopg2-binary alembic

2. 데이터베이스 모델 정의

app/models/project.py
from sqlalchemy import Column, String, DateTime, Boolean
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.ext.declarative import declarative_base
import uuid
from datetime import datetime

Base = declarative_base()

class Project(Base):
    __tablename__ = "projects"

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    name = Column(String(200), nullable=False)
    description = Column(String(1000))
    is_active = Column(Boolean, default=True)
    created_at = Column(DateTime, default=datetime.utcnow)
    updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)

클라우드 데이터베이스 옵션

상세 가이드 준비 중

더 자세한 데이터베이스 연결 가이드를 준비하고 있습니다. 먼저 60분 완주를 완료하고, 학습 사이클을 따라가며 기초를 다지세요.