FastAPI 연재 0편 — 내가 지금 Python/FastAPI를 다시 잡는 이유

2026. 3. 26. 20:56개발자 생활

반응형

요즘은 진짜… 파이썬을 피할 수가 없더라.

내 주력 언어는 한동안 .NET, Java, NodeJS 쪽이었는데, 데이터 쪽 일을 하면서부터는 어느 순간 “아 오늘도 파이썬이네?” 하는 날이 늘었다.
그래서 이번엔 아예 각 잡고, Python이랑 FastAPI를 내 손에 익을 때까지 한 번 해보려고 한다.


1) 데이터 엔지니어로 일하면서 파이썬을 더 자주 만나게 됐다

처음엔 그냥 “도구 중 하나”였다.
근데 ETL이든 배치든 분석이든, 데이터 파이프라인을 만지다 보면 결국 파이썬이 계속 끼어든다.

특히 PySpark를 하면서 이 흐름이 더 진해졌다.


2) PySpark는 Scala로 시작했는데, 시간이 갈수록 Python이 더 수월했다

나는 PySpark를 처음에 Scala로 시작했다.
단순히 “자바를 해봤으니 Scala가 더 가깝겠지”라는 이유였다.

근데 시간이 지날수록 체감이 바뀌었다.

  • 똑같은 일을 해도 Python 쪽이 손이 더 빨리 가고
  • 팀에서 공유/온보딩도 Python이 훨씬 편하고
  • 무엇보다 자료/레퍼런스/사람 풀이 Python이 압도적이었다

이건 “Scala가 별로다”라기보단, Python이 더 대중화되면서 접근성이 엄청 좋아졌다는 쪽에 가깝다.
강력해서라기보다… 그냥 시작하기가 너무 쉽고, 계속 굴리기도 편한 언어가 되어버린 느낌.


3) 오픈소스들을 보다 보니, Python이 ‘기본값’처럼 보이기 시작했다

데이터 쪽 오픈소스를 이것저것 보다 보면 비슷한 감각이 온다.

  • Zeppelin 같은 노트북 환경
  • Airflow 같은 워크플로우 오케스트레이션
  • JupyterHub 같은 멀티 유저 노트북

이런 것들을 파고들수록 “결국 파이썬을 알아야 진짜 편해지겠구나”가 보였다.
어느 순간부터는 내 주력(.NET/Java/NodeJS)이 버팀목이라기보다, 파이썬이 조용히 옆에서 생활권으로 들어온 느낌이랄까.


4) API 개발을 검토하다가 FastAPI를 알게 됐다

최근에 API 개발을 위해 이것저것 검토를 했다.
처음엔 자연스럽게 Spring Boot로 시작했다. 익숙하고, 안정적이고, 레퍼런스도 많으니까.

근데 검토 과정에서 FastAPI를 알게 됐고, 여기서 한 번 꽂혔다.

  • 일단 “MVP 찍기” 관점에서 너무 효율적이고
  • 타입/검증/문서화가 한 흐름으로 이어지고
  • (수치상으로는) 성능도 꽤 잘 나온다고 알려져 있고

물론 최종 선택은 Spring Boot였다.
리스크 관리 관점에서, 결국은 내가 제일 자신 있는 스택으로 “완성”을 내는 게 맞다고 판단했다.

근데 여기서 마음 한 켠이 계속 남았다.

“그래도 FastAPI는 꼭 한 번은 제대로 써보고 싶다.”

그래서 토이 프로젝트에서라도, 내가 직접 부딪혀보면서 “아 이게 매력이구나 / 이건 리스크구나”를 몸으로 확인해보기로 했다.


5) 요즘은 ‘API만 만들면 끝’이 아니라 LLM까지 같이 붙는다

요즘 제품/기능 아이디어를 보면, 결국 어디선가 LLM을 만나게 된다.
나도 마찬가지였고, 그래서 이번 학습은 FastAPI 자체만이 아니라 “LLM을 붙이는 스펙”까지 포함해서 하게 됐다.

이게 거창한 AI 이야기가 아니라, 현실적으로는 이런 질문들이었다.

  • 외부 API(LLM, 날씨, 기타)를 어떻게 연결하지?
  • 실패하면 어떤 상태 코드로 떨어뜨릴까?
  • 테스트에서 외부 호출은 어떻게 끊어낼까?
  • 프롬프트/스키마/응답 형태를 어떻게 안정적으로 맞출까?

결론은 하나.
작게 만들되, 진짜처럼 만들어보자.


6) 이 연재는 이렇게 갈 거다

내가 목표로 하는 건 “FastAPI 문법 정리”가 아니라,
작은 API 서버를 MVP 수준으로 완주하는 감각을 만드는 거다.

  • 부트스트랩을 깔끔하게 잡고
  • 설정/라우팅/DB를 붙이고
  • 파일 업로드/검증 같은 현실적인 입력을 받고
  • 외부 의존성을 DI로 다루고
  • 테스트로 구조를 굳혀두고
  • (옵션) 도커로 실행 환경까지 맞추는 것


다음 편 예고

다음 편(1편)에서는 일단 서버를 띄우고 /docs를 열어보는 것부터 시작한다.
“진짜 프로젝트” 형태로.

연재 목차는 대략 이 흐름이다.

  • 1편: 프로젝트 부트스트랩 + 실행(/docs)
  • 2편: create_app + lifespan
  • 3편: Settings/.env/prefix
  • 4편: 라우터 분리 + 버저닝(prefix)
  • 5편: SQLModel + SQLite
  • 6편: Form/File 업로드 + 검증
  • 7편: Depends로 외부 의존성(날씨/AI) 다루기
  • 8편: 테스트에서 dependency overrides로 mock 주입
  • (옵션) 9편: Docker/Compose

참고/더 읽기

반응형