Choorai
🎯 Cycle 4

데이터베이스 연결

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

이 Cycle에서 배우는 것

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

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

❌ 인메모리 저장

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

✅ 데이터베이스 사용

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

왜 PostgreSQL인가요?

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

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

빠른 시작

🌱 Lv.1 먼저: SQL Basics

데이터베이스가 처음이라면 SQL 기본 문법과 테이블 구조부터 먼저 학습하세요.

SQL Basics 보기 →

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)

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

BaaS로 빠르게 시작하기

백엔드 없이 데이터베이스와 인증을 바로 사용하고 싶다면 Supabase 가이드를 참고하세요. SQL 작성 없이 프론트엔드에서 직접 데이터베이스에 접근할 수 있습니다.

마지막 업데이트: 2026년 2월 22일 · 버전: v0.0.1

피드백 보내기

입력한 내용으로 새 이슈 페이지를 엽니다.

GitHub 이슈로 보내기