FastAPI를 사용하여 이미지 처리 기능 구현하기

fastapi

FastAPI는 Python으로 웹 애플리케이션을 작성하기 위한 속도와 생산성을 강조한 고성능 웹 프레임워크입니다. 이번 글에서는 FastAPI를 사용하여 이미지 처리 기능을 구현하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치하기

이미지 처리를 위해 Pillow 라이브러리를 사용하려면 다음 명령어를 사용하여 Pillow를 설치해야 합니다:

pip install Pillow

또한 FastAPI와 신속한 개발을 위해 uvicorn을 설치해야 합니다. 다음 명령어를 사용하여 uvicorn을 설치합니다:

pip install uvicorn

FastAPI 애플리케이션 생성하기

FastAPI 애플리케이션을 생성하려면 아래와 같은 코드를 작성해야 합니다.

from fastapi import FastAPI, File, UploadFile
from PIL import Image

app = FastAPI()

@app.post("/upload_image/")
async def upload_image(file: UploadFile):
    # 업로드된 이미지를 저장합니다.
    image = Image.open(file.file)
    image.save(file.filename)
    
    return {"message": "이미지가 성공적으로 업로드되었습니다."}

위의 코드에서 /upload_image/ 경로로 POST 요청이 오면 upload_image 함수가 실행됩니다. 이 함수는 업로드된 이미지를 받아서 저장하고, 성공 메시지를 반환합니다.

FastAPI 서버 실행하기

웹 서버를 실행하기 위해 다음 명령어를 사용합니다:

uvicorn main:app --reload

main은 FastAPI 애플리케이션이 정의된 파일 이름이고, app은 FastAPI 애플리케이션 인스턴스입니다. --reload 옵션을 추가하여 코드 변경 시 자동으로 서버를 재시작할 수 있습니다.

이미지 업로드 테스트하기

이미지 처리 기능을 테스트하기 위해 HTTP 클라이언트를 사용할 수 있습니다. 예를 들어, curl 명령어를 사용하여 이미지를 업로드할 수 있습니다:

curl -X POST -F "file=@image.jpg" http://localhost:8000/upload_image/

위의 명령어에서 image.jpg는 업로드할 이미지 파일의 경로입니다. 업로드가 성공적으로 완료되면 서버는 JSON 응답을 반환합니다.

마무리

이제 FastAPI를 사용하여 이미지 처리 기능을 구현하는 방법에 대해 알아보았습니다. FastAPI의 간결한 문법과 빠른 실행 속도로 웹 애플리케이션을 더욱 효율적으로 개발할 수 있습니다. 이를 응용하여 다양한 이미지 처리 기능을 구현해보세요!

#FastAPI #이미지처리