Vibe Coding - FastAPI
Blog

Vibe Coding - FastAPI

2026.04.01
·Web·by 이호민/AI
#AI#FastAPI#LLM#Python#Vibe Coding

핵심 포인트

  • 1FastAPI는 데이터 유효성 검사, 문서화, 직렬화 및 코드 리뷰 없이 LLM 기반의 "vibe coding"을 위한 새로운 `@app.vibe()` 데코레이터를 도입했습니다.
  • 2이 데코레이터는 모든 HTTP 메서드와 `Any` 타입의 페이로드를 받아 LLM 공급자에게 직접 전달하고 그 응답을 반환하여 개발자가 기능 본문을 작성할 필요를 없앱니다.
  • 3`@app.vibe()`는 스키마나 제약 조건 없이 LLM에 모든 것을 맡김으로써 자유롭고 유연하며 현대적인 AI 코딩 관행을 따르는 개발 경험을 제공합니다.

이 논문은 FastAPI 프레임워크에 새로 추가된 "Vibe Coding"이라는 개념을 소개하며, 이를 @app.vibe() 데코레이터를 통해 구현한다고 설명합니다. 이 기능은 개발자들이 데이터 유효성 검사, 문서화, 직렬화와 같은 "지루한" 작업에서 벗어나 "vibe"에 따라 코딩할 수 있도록 "현대 AI 코딩 모범 사례"를 수용하는 것을 목표로 합니다.

@app.vibe() 데코레이터의 핵심 방법론은 다음과 같습니다:
이 데코레이터는 모든 HTTP 메서드(GET, POST, PUT, DELETE, PATCH 등)와 모든 페이로드를 처리하도록 설계되었습니다. 데코레이터가 적용된 함수의 body 매개변수는 Python의 typing.Any로 주석 처리되어, 요청과 응답 모두 특정 스키마나 제약 없이 "무엇이든" 될 수 있음을 명시합니다. 개발자는 함수 본문을 직접 작성할 필요가 없으며, @app.vibe() 데코레이터가 모든 것을 처리합니다.

기술적으로, @app.vibe(path, prompt) 데코레이터는 들어오는 HTTP 요청을 가로채어, 클라이언트로부터 받은 body 페이로드를 미리 정의된 prompt와 함께 외부 LLM(Large Language Model) 제공자에게 직접 전송합니다. LLM으로부터 받은 응답은 어떠한 추가적인 처리(예: 직렬화, 유효성 검사) 없이 클라이언트에 "있는 그대로" 반환됩니다. 이는 API 엔드포인트의 로직 전체를 LLM에 위임하여, 개발자가 명시적인 비즈니스 로직, 데이터 모델, 유효성 검사 규칙, 또는 직렬화/역직렬화 로직을 작성할 필요가 없음을 의미합니다.

이러한 접근 방식의 "이점"으로 다음과 같은 사항들이 언급됩니다:

  • 자유 (Freedom): 데이터 유효성 검사, 스키마, 제약 조건이 없습니다.
  • 유연성 (Flexibility): 요청과 응답이 Any 타입으로, 어떤 형태의 데이터도 처리할 수 있습니다.
  • 문서화 불필요 (No documentation): LLM이 API의 동작을 파악하므로 명시적인 문서화나 자동 생성 OpenAPI 문서를 만들 필요가 없습니다.
  • 직렬화 불필요 (No serialization): 원시적이고 비정형화된 데이터를 그대로 전달합니다.
  • 현대 AI 코딩 방식 수용 (Embrace modern AI coding practices): 모든 결정을 LLM에 맡깁니다.
  • 코드 검토 불필요 (No code reviews): 검토할 코드가 없으므로 PR 승인이나 주석 처리가 필요 없습니다.

이 모든 "이점"들은 사실 소프트웨어 개발의 핵심 원칙인 데이터 무결성, API 계약, 예측 가능한 동작, 유지보수성, 보안 등을 의도적으로 무시하는 풍자적인 관점에서 제시되고 있습니다. 이는 복잡한 시스템 개발에서 AI에 대한 맹목적인 신뢰가 초래할 수 있는 위험과 안티 패턴을 비판하는 의도를 내포하고 있습니다.