FastAPI 용어 정리

김기훈·2025년 10월 15일

FastAPI

목록 보기
4/7

매개변수

구분들어오는 위치선언 방법예시
경로 매개변수 (Path Parameter)URL 경로 안Path()/users/{user_id}
쿼리 매개변수 (Query Parameter)URL ?key=value 뒤에Query()/users?name=kihoon
본문 매개변수 (Body Parameter)HTTP 요청 본문(body)Body(), Form(), File()JSON, Form, 파일 등
  • 본문 매개변수 : 요청의 body 부분에 포함된 데이터를 받는 걸 의미

기본 용어

  • 어트리뷰트: "." 으로 접근할 수 있는 것들을 전부 어트리뷰트라고 함

FastAPI 문서나 코드에서 자주 보이는 “기본 용어”

용어예시 코드설명
패스(Path)URL의 경로/users/{user_id}@app.get("/users/{user_id}")처럼 엔드포인트를 구성하는 경로
쿼리(Query)URL 뒤에 붙는 ?파라미터/users?name=kihoonQuery()로 선언, 선택적 필터링
본문(Body)HTTP 요청의 본문{ "name": "kihoon" }JSON 데이터 등 요청 내부 내용
스키마(Schema)데이터 구조 정의class User(BaseModel)입력/출력 데이터의 형태를 정의 (Pydantic)
모델(Model)DB 테이블 구조class UserModel(Model)ORM에서 데이터베이스 테이블을 표현
엔드포인트(Endpoint)실제 요청이 들어오는 함수@app.post("/users")클라이언트가 접근하는 API의 “주소 + 동작”
라우터(Router)여러 엔드포인트를 묶은 그룹APIRouter()/users, /items 등 모듈별 관리용
데코레이터(Decorator)함수의 기능을 확장하는 문법@app.get()FastAPI 라우팅을 등록할 때 사용
어노테이션(Annotation)타입 힌트에 부가 설명 추가Annotated[str, Query()]타입에 제약이나 추가 정보 부여
의존성 주입(Dependency Injection)함수 실행 시 필요한 객체 자동 주입Depends(get_db)공통 리소스를 주입하는 구조
미들웨어(Middleware)요청 전후에 실행되는 중간 처리@app.middleware("http")로그, 인증, 요청/응답 가공 등
스코프(Scope)객체가 유효한 범위request, session, app 등FastAPI 내부적으로 요청마다 분리된 영역
인스턴스(Instance)클래스에서 생성된 실제 객체user = User("기훈")클래스 설계도를 바탕으로 실제 값 생성

메타데이터

  • API 전체(혹은 각 경로)에 대한 설명 정보를 담는 데이터
    • 즉, 서버가 “무엇을 하는 API인지”, “누가 만든 것인지”, “어떤 태그로 묶이는지” 같은 문서화용 정보를 의미
    • 메타데이터는 실제 API 동작에는 영향을 주지 않음
    • 아래처럼 FastAPI() 생성자에 넣을 수 있음

라우터 단위의 메타데이터 (tags, summary, description)

@app.get("/users/", tags=["users"], summary="모든 사용자 조회", description="DB에 저장된 모든 사용자를 가져옵니다.")
async def read_users():
    return [{"username": "Alice"}, {"username": "Bob"}]
  • /docs에서 보면
    • users 섹션 아래에 "모든 사용자 조회" 라는 항목이 생기고 클릭하면 description이 출력

용어 설명 - 2

  • 의존성을 주입하면 주입당한 명령어는 그 의존성을 먼저 거치고 실행한다.
profile
안녕하세요.

0개의 댓글