카테고리 없음
FastAPI 로컬 서버 구축부터 외부 접속(Ngrok), GitHub에 업로드하기까지
원 툴
2024. 12. 13. 06:23
개요:
이 글에서는 Python FastAPI로 간단한 API 서버를 로컬에서 실행하고, ngrok를 통해 외부에서 접속 가능한 URL을 생성한 뒤, GitHub에 코드를 버전 관리 및 업로드하는 전 과정을 정리합니다.
환경 :
윈도우
목차:
- 개발 환경 준비
- FastAPI 프로젝트 생성
- 로컬 서버 실행
- ngrok를 이용한 외부 접속
- Git으로 버전 관리 시작
- GitHub에 코드 업로드
- 문제 해결 팁 및 참고 자료
1. 개발 환경 준비
- Python 설치: Python.org에서 Python 3.x 버전 설치
- VS Code 설치: VS Code 다운로드 및 설치
- FastAPI & uvicorn 설치:
bash코드 복사
pip install fastapi uvicorn[standard]
2. FastAPI 프로젝트 생성
- 프로젝트 폴더 생성 및 이동:
bash코드 복사
mkdir DevProfileAPI cd DevProfileAPI - main.py 파일 생성:
python코드 복사
from fastapi import FastAPI
import random
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Welcome to DevProfileAPI"}
@app.get("/profile")
def get_profile():
profile_data = {
"name": "YourName",
"title": "Backend Developer",
"skills": ["Python", "FastAPI", "AWS", "Docker", "CI/CD"],
"experience": {"years": 3, "notable_projects": ["Project A", "Project B"]},
"contact": {"email": "yourname@example.com", "linkedin": "https://www.linkedin.com/in/yourname"}
}
return profile_data
@app.get("/random_tip")
def random_tip():
tips = [
"Write tests for reliability.",
"Use version control (Git) for all projects.",
"Document your code.",
"Keep functions small and focused.",
"Learn about cloud deployments."
]
return {"tip": random.choice(tips)}
3. 로컬 서버 실행
bash
코드 복사
uvicorn main:app --reload
- 브라우저에서 http://127.0.0.1:8000 접속해 Welcome to DevProfileAPI 메시지 확인
4. ngrok를 이용한 외부 접속
- ngrok에서 Windows용 ngrok 다운로드
- ngrok.exe 파일을 프로젝트 폴더에 위치
- 인증 토큰 설정:
bash코드 복사
ngrok config add-authtoken <YOUR_AUTH_TOKEN> - 서버를 실행한 상태에서:
bash코드 복사
ngrok http 8000 - 표시되는 Forwarding URL을 복사해 휴대폰이나 다른 PC에서 접속 가능
5. Git으로 버전 관리 시작
- Git 초기화:
bash코드 복사
git init - 변경사항 스테이징 후 커밋:
bash코드 복사
git add . git commit -m "Initial commit"
6. GitHub에 코드 업로드
- GitHub에 로그인 후 New Repository 생성 (my-first-project라 가정)
- 원격 저장소 등록:
bash코드 복사
- GitHub에서 코드를 확인할 수 있음
git remote add origin https://github.com/yourRepositories/my-first-project.git
git branch -M main
git push -u origin main
7. 문제 해결 팁
- "Repository not found" 에러 → GitHub 상에 해당 이름으로 리포지토리를 실제 생성했는지 확인
- 브랜치 명 문제 → git branch -M main 명령으로 로컬 브랜치를 main으로 변경
- 인증 문제 → GitHub Personal Access Token 이용 또는 GitHub Desktop 사용
결론:
이 과정을 통해 FastAPI로 만든 간단한 API 서버를 로컬에서 실행한 뒤, ngrok를 사용해 외부 접근이 가능하게 만들었으며, Git과 GitHub를 활용해 코드를 버전 관리하고 공유하는 방법을 습득했습니다. 앞으로 이 프로젝트를 확장하고 Docker화, CI/CD 구축, 클라우드 배포 등을 진행하면서 더 탄탄한 포트폴리오를 만들어나갈 수 있습니다.