Python과 FastAPI를 사용하여 확장 가능하고 안전한 RESTful API 서버를 구축했습니다.
백엔드의 핵심 과제는 사용자의 민감한 면접 이력 데이터를 안전하게 관리하고, 향후 기능 확장에 유연하게 대응할 수 있는 안정적인 서버를 구축하는 것이었습니다. 이를 위해, 체계적인 데이터베이스 모델링, 보안이 강화된 인증 시스템, 그리고 유지보수성이 높은 계층화된 아키텍처를 설계하는 것이 필수적이었습니다.
`FastAPI`를 기반으로 API 엔드포인트, 비즈니스 로직(Service), 데이터 접근(Repository) 계층을 명확히 분리하여 코드의 결합도를 낮추고 테스트 용이성을 높였습니다. `SQLAlchemy`와 `Alembic`을 사용하여 데이터베이스 스키마를 체계적으로 관리했으며, `HttpOnly` Refresh Token 패턴을 도입하여 웹 보안 표준을 준수하는 인증 시스템을 구축했습니다.
[그림 1] FastAPI 기반 계층화 아키텍처
모든 API 요청은 Pydantic 스키마를 통해 유효성이 검증되며, 비즈니스 로직은 서비스 계층에 집중되어 있습니다. 데이터베이스 작업은 제네릭 `CRUDBase` 클래스로 추상화하여 반복적인 코드를 최소화하고 일관성을 유지했습니다.
# 예시: Pydantic과 의존성 주입을 활용한 API 엔드포인트from fastapi import APIRouter, Dependsfrom sqlalchemy.orm import Sessionfrom . import schemas, servicesrouter = APIRouter()# Pydantic 스키마를 사용하여 요청 본문과 응답 데이터의 타입을 정의@router.post("/users/", response_model=schemas.User)def create_user(user: schemas.UserCreate,db: Session = Depends(services.get_db)):# 비즈니스 로직은 서비스 계층에 위임return services.create_user(db=db, user=user)
계층화된 아키텍처 설계를 통해 코드의 유지보수성과 테스트 커버리지를 크게 향상시켰습니다. 또한, 보안 표준을 준수하는 인증 시스템을 구축하여 사용자의 데이터를 안전하게 보호하는 신뢰성 있는 서비스를 만들었습니다. 이 경험을 통해 단순한 API 개발을 넘어, 확장성과 보안을 모두 고려하는 백엔드 시스템을 설계하는 실전 역량을 확보했습니다.