REST API는 웹에서 정보를 주고받기 위한 규칙이다. 이 규칙을 사용하면 두 개의 프로그램이 서로 통신할 수 있다. REST는 다음과 같은 원칙을 따른다:
- GET: 서버에서 데이터를 가져올 때 사용합니다.
- POST: 서버에 데이터를 보낼 때 사용합니다.
- PUT: 서버의 데이터를 업데이트할 때 사용합니다.
- DELETE: 서버의 데이터를 삭제할 때 사용합니다.
REST API는 표준화된 방식으로 클라이언트와 서버 간의 통신을 돕는다. 각 자원은 고유한 URL로 표현되고, 이를 HTTP 메서드로 제어한다.
FastAPI는 Python 언어를 사용하여 RESTful API를 빠르고 쉽게 만들 수 있는 웹 프레임워크다. 주로 비동기 웹 애플리케이션을 구축하는 데 사용된다.
다음은 FastAPI로 REST API를 간단히 작성한 예시이다:
from fastapi import FastAPI
app = FastAPI()
# 기본 경로('/')에 대한 GET 요청 처리
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
# 경로 파라미터를 이용한 사용자 정보 조회
@app.get("/users/{user_id}")
async def read_user(user_id: int):
return {"user_id": user_id}
@app.get("/")
: HTTP GET 요청을 처리하며, 기본 경로에 접근하면 "Hello, World!" 메시지를 반환한다.@app.get("/users/{user_id}")
: 경로 파라미터를 사용하여 특정 사용자 정보를 반환한다.항목 | REST API | FastAPI |
---|---|---|
정의 | 정보를 주고받기 위한 규칙 | REST API를 쉽게 구현하기 위한 도구 |
데이터 처리 방식 | 주로 동기 처리 | 비동기 처리 가능, 높은 성능 지원 |
문서화 | 수동 작성 필요 | Swagger를 통한 자동 문서화 지원 |
REST API는 정보 교환을 위한 규칙이며, FastAPI는 이를 쉽게 구현할 수 있도록 돕는 Python 기반 웹 프레임워크이다. FastAPI는 간단한 코드 작성, 비동기 처리, 자동화된 문서 생성을 지원하여 빠른 개발과 높은 성능을 제공한다.
참고
구분 | 동기 처리 | 비동기 처리 |
---|---|---|
처리 방식 | 한 번에 하나의 작업만 순차적으로 처리 | 여러 작업을 동시에 처리 가능 |
적합한 작업 | CPU 집중 작업 (계산 등) | I/O 집중 작업 (네트워크 요청, 파일 입출력 등) |
효율성 | 작업 간 대기 시간이 발생할 수 있음 | 비대기 처리로 작업 효율이 높아짐 |
구현 난이도 | 코드 작성과 이해가 쉬움 | 코드가 복잡해질 수 있음 |