8/18(월) - FastAPI 백엔드 기본 개발환경 세팅 및 서버 띄우기
코드 실행 및 BE-FE 연동 1차 테스트를 완료했다. 각자 기능별로 작성해온 코드를 유기적으로 작동할 수 있도록 통일감있게 수정하고 터미널에서 필요한 패키지 파일 설치 후 실행 명령어를 입력하였더니 아래와 같은 결과가 떴다.
(.venv) hsamy@huittiui-MacBookPro-2 BE % uvicorn app.main:app --reload
INFO: Will watch for changes in these directories: ['/Users/hsamy/Documents/GitHub/SOSOHAENG/BE']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [83385] using StatReload
INFO: Started server process [83408]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: 127.0.0.1:59146 - "GET /docs HTTP/1.1" 200 OK
INFO: 127.0.0.1:59146 - "GET /openapi.json HTTP/1.1" 200 OK
INFO: 127.0.0.1:59154 - "GET /festivals HTTP/1.1" 200 OK
INFO: 127.0.0.1:59155 - "GET /festivals HTTP/1.1" 200 OK
이 중 세번째 줄에 있는 http 링크에 '/docs'만 끝에 추가하여 실행해보니 아래와 같은 결과가 나왔다 .!>/!!?!
FastAPI의 Swagger UI 자동 API 문서화 페이지
왕신기 짱신기 ...


이를 위해 한 작업은 다음과 같다.
1. 가상환경 준비
- sudo python3 -m venv .venv → 프로젝트 전용 파이썬 실행환경 생성
- source .venv/bin/activate → 해당 환경 활성화
- pip install python-dotenv → .env 환경변수 파일을 Python에서 읽을 수 있도록 도와주는 도구를 설치
- pip install fastapi uvicorn → FastAPI 서버와 실행 도구 설치
👉 앞으로 BE 개발에 필요한 패키지들은 이 .venv 안에만 깔리게 됩니다. (시스템 전체엔 영향 없음)
2. FastAPI 앱 실행
- uvicorn app.main:app --reload → app/main.py 안의 app = FastAPI() 객체를 실행
- --reload 옵션 덕분에 코드 수정 시 서버가 자동으로 새로고침됩니다.
3. 자동 문서화 확인
- FastAPI는 Pydantic 모델과 라우터 정보를 읽어서 자동으로 API 문서(Swagger UI)를 생성합니다.
- 그 결과가 http://127.0.0.1:8000/docs에서 보인 거예요.
- 여기서 각 API 엔드포인트를 직접 호출해 테스트할 수도 있습니다.
만약 위 방법대로 실행하려다 아래와 같은 오류가 뜨면
(.venv) hsamy@huittiui-MacBookPro-2 BE % uvicorn app.main:app --reload
pyenv: uvicorn: command not found
The `uvicorn' command exists in these Python versions:
3.10.13
Note: See 'pyenv help global' for tips on allowing both
python2 and python3 to be found.
이 방법으로 다시 해보면 됨
sudo rm -rf .venv //이 과정 추가 후 똑같이 반복
python3 -m venv .venv
source .venv/bin/activate
pip install python-dotenv
uvicorn app.main:app --reload
#추가설치가능
pip install --upgrade pip setuptools wheel
pip install fastapi "uvicorn[standard]" sqlalchemy
그리고 http://127.0.0.1:8000 링크 뒤에 /recommend /festivals /markets 를 붙여넣으면
각 기능별 페이지도 정상적으로 뜨는 것을 확인할 수 있다.




'주전공 > 캡스톤디자인과창업프로젝트' 카테고리의 다른 글
| 여름방학 기록(7): DB 마이그레이션 체계(Alembic) 도입 및 초기 스키마 생성 (0) | 2025.08.30 |
|---|---|
| 여름방학 기록(6): 데이터베이스 초기화 | DB Schema 생성 (0) | 2025.08.24 |
| 여름방학 기록(4): BE 개발 시작 | API Endpoint Listup + FastAPI code (0) | 2025.08.17 |
| 여름방학 기록(3) : 깃허브 레포 생성 및 FE 개발 시작, 그리고 API 명세서 작성 | with React Native + Expo GO + Notion (0) | 2025.08.11 |
| 여름방학 기록(2) : React Native 개발 환경 구축 (0) | 2025.08.09 |