포스트

2026-04-28-server 코드 구성

사용된 프레임워크

fastapi

코드구성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from config import PORT
import uvicorn 

# FastAPI 어플리케이션 인스턴스 생성
app = FastAPI()

# 루트 경로에 wwwroot 폴더를 정적 파일로 서빙 (HTML 모드)
app.mount("/", StaticFiles(directory="wwwroot", html=True), name="static")

# 직접 실행 시 개발 서버 시작
if __name__ == "__main__":
	uvicorn.run("server:app", host="0.0.0.0", port=PORT, reload=True)

서버 실행하기

터미널에 python server.py 입력


💡추가 내용

uvicorn.run에서 reload의 의미

  • True일 때 코드가 변경되었을 때 서버를 자동으로 재시작
구분 reload = True reload = False
개발 환경 ✅ 편리함 ❌ 불편함
운영 환경 ❌ 위험 ✅ 안정적

클래스와 함수 차이

  • 함수 : 단순히 작업을 수행하는 코드 묶음임
1
2
3
4
5
# 함수 예시
def add(a, b):
return a + b

add(1, 2)  # → 3
  • 클래스 : 데이터(변수)와 기능(함수)를 하나로 묶은 설계도
1
2
3
4
5
6
7
8
9
10
# 클래스 예시
class Dog:
    def __init__(self, name):
        self.name = name  # 데이터
    
    def bark(self):       # 기능
        print(f"{self.name}: 멍멍!")

my_dog = Dog("초코")
my_dog.bark()  # → 초코: 멍멍!

app.mount()

  • 정의 : 특정 경로에 별도 앱(또는 정적 파일)을 붙이는 기능
  • 브라우저에서 주소를 입력하면 wwwroot폴더 안의 경로로 매핑됨
  • ”/”에 마운트 했기 때문에 사이트 전체의 기준점을 wwwroot 폴더가 됨
  • “/static”에 마운트했다면 https://mysite.com/static/a.jpg → wwwroot/a.jpg 이런 식으로 /static을 거쳐야 함
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

인기 태그