본문 바로가기

개발 환경설정

1. 파이썬 설치

이 책은 Python 3.13 이상을 기준으로 실습합니다. 이미 파이썬이 설치되어 있다면 터미널에서 아래 명령으로 버전을 확인해보세요.

python --version

버전이 3.13보다 낮거나 파이썬이 설치되어 있지 않다면 아래 단계를 따라 Python을 설치해주세요.

  1. 먼저 구글에 python을 검색합니다. 파이썬 공식 홈페이지 링크(https://www.python.org)로 직접 이동하셔도 좋습니다.

  1. python 사이트에서 Downloads -> python에서 설치파일을 다운로드합니다. 설치파일을 실행하여, python을 설치하면 됩니다.

  1. 설치 시 Add python.exe to PATH을 체크해 주세요.

FastAPI는 보통 최신 Python 버전과 이전 몇 가지 버전을 지원합니다. FastAPI 자체는 Python 3.9 이상에서 동작하지만, 이 책의 코드는 3.13 이상에서 확인했으므로 새로 설치한다면 3.14를 권합니다.

2. pip 확인

이 책은 파이썬에 포함된 venv로 가상환경을 만들고 pip으로 패키지를 설치합니다. 별도의 도구를 설치하지 않아도 마지막 장까지 실습할 수 있습니다.

python -m pip --version

pip의 버전과 설치 경로가 출력되면 준비된 것입니다. No module named pip 오류가 나면 아래 명령으로 pip을 설치한 뒤 다시 확인하세요.

python -m ensurepip --upgrade

macOS/Linux에서 python 명령을 찾을 수 없다면 python3를 사용하세요. 이후 가상환경을 활성화하면 python과 pip 명령으로 실습할 수 있습니다. Linux 배포판에서 venv나 ensurepip을 제공하지 않는 경우에는 배포판의 패키지 관리자로 python3-venv, python3-pip 패키지를 먼저 설치해야 합니다.

가상환경 생성과 활성화는 다음 절에서 차근차근 진행합니다.

uv를 쓰지 않는 이유

요즘 파이썬 프로젝트에서는 가상환경 생성과 패키지 설치를 한 번에 처리해주는 uv라는 도구를 많이 씁니다. 그럼에도 이 책은 uv를 쓰지 않습니다. 설치 복잡도를 올리지 않기 위해서입니다. uv는 파이썬과 별도로 설치해야 하고, 운영체제나 실습 환경에 따라 설치나 실행이 막히는 경우가 있습니다. 파이썬에 이미 들어 있는 venv와 pip만으로도 이 책의 마지막 장까지 실습하는 데 부족함이 없습니다.

다만 실무에서는 uv 사용을 권합니다. 설치가 훨씬 빠르고, 어떤 패키지를 어떤 버전으로 설치했는지 파일로 정확히 기록해 팀원과 서버에서 같은 환경을 재현하기 좋기 때문입니다. pip과 uv의 명령을 짝지어 비교한 내용은 6장 패키지 관리의 참고 내용에서 다룹니다. 이 책을 마친 뒤 그 절을 보고 갈아타면 됩니다.

3. VS Code 설치

Visual Studio Code(VS Code)는 Microsoft에서 개발한 무료 소스 코드 편집기입니다. VS Code는 다양한 프로그래밍 언어를 지원하며, 코드 자동 완성, 디버깅, 버전 관리 통합 등 다양한 기능을 활용할 수 있어 개발 효율성이 크게 향상됩니다. 또한, 다양한 확장 프로그램을 통해 기능을 추가로 확장할 수 있어 개발자의 필요에 맞게 커스터마이징할 수 있다는 장점이 있습니다.

  1. 구글에 Visual Studio Code를 검색합니다. VS Code(https://code.visualstudio.com) 링크로 접속합니다.

  1. 사용하는 OS에 맞춰(Windows 또는 Mac) 다운로드 및 설치를 진행하면 됩니다.

VS Code에서 폴더 열기

  1. VS Code 상단 메뉴에서 '파일(File)' 클릭
  2. '폴더 열기(Open Folder)' 클릭
  3. FastAPI를 작업할 폴더를 선택 후 '폴더 선택' 버튼 클릭

4. FastAPI 관련 VS Code 익스텐션

익스텐션(Extension)은 VS Code에 새로운 능력을 더해주는 '부가 기능'입니다. VS Code는 심지어 인쇄를 할 수 있는 기능도 없습니다. 이러한 기능을 추가하기 위해 '부가 기능(익스텐션)'을 설치해야 합니다. VS Code에 익스텐션을 추가하면, 코드 자동 완성, 디버깅, API 테스트 등을 더 쉽고 빠르게 할 수 있습니다.

필요한 기능들을 하나씩 추가하여 자신만의 SW 개발 환경을 구축해보세요.

익스텐션 설치 방법

  1. VS Code 왼쪽 사이드바에서 확장 아이콘(네모 4개 모양)을 클릭합니다.
  2. 검색창에 원하는 익스텐션 이름을 입력합니다.
  3. 목록에서 원하는 익스텐션을 찾아 클릭하세요
  4. 'Install' 버튼을 클릭합니다.

4.1 꼭 설치해야 하는 익스텐션

익스텐션용도사용 시점
Python파이썬 문법 인식, 자동 완성, 디버깅1장부터 계속
REST Client.http 파일로 API 요청 보내기2장부터 계속
  1. Python: 마이크로소프트가 만든 공식 익스텐션입니다. 설치하면 Pylance라는 타입 분석기가 함께 깔립니다. FastAPI는 타입 힌트를 적극적으로 쓰기 때문에, 이 익스텐션이 없으면 오타를 실행하기 전까지 발견하지 못합니다.

    Visual Studio Marketplace - Python
  2. REST Client: .http 확장자를 가진 텍스트 파일에 요청을 적어두고 클릭 한 번으로 실행하는 도구입니다. 웹사이트에 요청을 보내고 응답을 받아볼 수 있어, 브라우저로는 보내기 어려운 POST나 DELETE 요청도 쉽게 테스트할 수 있습니다. 이 책의 API 테스트는 전부 이 방식으로 진행합니다. 왜 이 도구를 골랐는지는 2장에서 설명합니다.

    Visual Studio Marketplace - REST Client

4.2 있으면 편한 익스텐션

익스텐션 설치는 필수가 아니라 선택사항입니다.

익스텐션용도사용 시점
Ruff코드 자동 정렬, 문법 문제 지적언제든지
SQLite Viewer.db 파일을 표 형태로 열어보기4장부터
  1. Ruff: 여러 사람이 함께 작업할 때 코드 스타일을 통일시켜 주고, 쓰지 않는 import처럼 눈에 잘 안 띄는 문제를 지적해줍니다. 정렬과 검사를 도구 하나가 모두 처리합니다. 협업할 때 주로 사용하게 됩니다.

    Visual Studio Marketplace - Ruff
  2. SQLite Viewer: 4장에서 만들 데이터베이스 파일(.db)은 더블클릭해도 열리지 않습니다. 이 익스텐션을 설치하면 VS Code 안에서 표 형태로 내용을 확인할 수 있습니다.

    Visual Studio Marketplace - SQLite Viewer

GUI 형태의 API 테스트 도구를 쓰고 싶다면

Thunder Client나 Postman 같은 GUI 도구를 써도 됩니다. 요청을 보내고 응답을 확인한다는 개념은 같습니다. 다만 Thunder Client는 무료 사용에 제한(컬렉션 3개, 컬렉션당 요청 15개)이 있어 실습 도중 막힐 수 있으므로, 이 책은 제한 없이 쓸 수 있고 요청을 파일로 남길 수 있는 REST Client를 씁니다.

5. AI 코딩 도구

지금 시점에 개발 환경을 이야기하면서 AI 도구를 빼놓기는 어렵습니다. 다만 이 책에서는 AI 도구를 필수가 아닌 보조로 다룹니다. 아래 두 가지 용도로 쓰시길 권합니다.

  1. 막혔을 때 물어보기: 에러 메시지를 그대로 붙여넣고 "이게 무슨 뜻인지" 물어보는 용도입니다. 처음 배울 때 가장 시간을 많이 잡아먹는 것이 에러 메시지 해독인데, 이 부분을 AI가 잘 도와줍니다.
  2. 연습문제 답 맞춰보기: 직접 풀어본 뒤에 "내 코드와 비교해서 뭐가 다른지" 물어보는 용도입니다.

반대로 권하지 않는 사용법은 문제를 읽자마자 코드를 통째로 받아오는 것입니다. 1장에서 이야기했듯이 AI는 오래된 FastAPI 코드를 자주 만들어냅니다. 어떤 것이 오래된 방식인지 모르는 상태에서 코드를 받으면, 그 코드가 왜 안 되는지도 알 수 없습니다.

AI에게 최신 코드를 받는 요령

AI에게 FastAPI 코드를 요청할 때 아래 문장을 프롬프트에 덧붙이면 오래된 코드를 받을 확률이 크게 줄어듭니다.

FastAPI 0.141, Pydantic v2, SQLAlchemy 2.0 기준으로 작성해줘.
의존성 주입은 Annotated 방식으로 쓰고, .dict()나 declarative_base()는 쓰지 마.

각 항목이 무슨 뜻인지는 이 책을 읽어나가면서 자연스럽게 알게 됩니다.