[python] FastAPI를 사용하여 웹소켓(WebSocket) 구현하기

이번에는 FastAPI를 사용하여 웹소켓을 구현하는 방법에 대해 알아보겠습니다. FastAPI는 높은 성능과 사용하기 쉬운 API를 제공하므로 웹소켓을 구현하는 것도 매우 간편합니다.

FastAPI란?

먼저, FastAPI가 무엇인지 간단히 살펴보겠습니다. FastAPI는 Python의 웹 프레임워크 중 하나로, 빠른 속도와 타입 힌트를 이용한 자동 문서화 등의 강력한 기능을 제공합니다.

FastAPI 사용을 위해서는 다음과 같이 fastapiuvicorn을 설치해야 합니다.

pip install fastapi
pip install uvicorn

웹소켓 구현하기

이제 FastAPI를 사용하여 간단한 웹소켓을 구현해보겠습니다. 먼저, FastAPI 앱을 생성하고 웹소켓 라우트를 추가합니다.

from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message text was: {data}")

위의 코드는 /ws 경로에 웹소켓을 추가하는 예제입니다. 클라이언트가 연결되면 accept()를 호출하여 연결을 수락하고, receive_text()로 데이터를 받아서 send_text()로 다시 클라이언트에게 응답을 보내는 간단한 웹소켓을 구현한 것입니다.

웹소켓 테스트

웹소켓을 구현했으니 이를 테스트해봅시다. 웹소켓을 테스트하기 위해선 WebSocket 클라이언트를 사용해야 합니다. 브라우저의 개발자 도구를 열고 콘솔에서 WebSocket을 생성하여 서버와 통신해보거나, 별도의 WebSocket 클라이언트 라이브러리를 사용하여 테스트할 수 있습니다.

마치며

이렇게 FastAPI를 사용하여 간단한 웹소켓을 구현하는 방법에 대해 알아보았습니다. FastAPI는 높은 성능과 강력한 기능을 제공하여 웹소켓 구현 또한 매우 편리하게 할 수 있습니다. 웹소켓을 사용하여 실시간 양방향 통신 기능을 구현할 수 있으므로, 관련 프로젝트를 진행할 때 FastAPI의 웹소켓 기능을 활용해보시기 바랍니다.