[python] 웹 서버에 이미지 업로드 및 처리 기능 추가하기

이번 글에서는 Python으로 웹 서버에 이미지 업로드 및 처리를 할 수 있는 기능을 추가하는 방법을 알아보겠습니다.

1. Flask 프레임워크 설치하기

먼저, 웹 서버를 구축하기 위해 Flask 프레임워크를 설치해야 합니다. 다음 명령어를 사용하여 Flask를 설치합니다.

pip install flask

2. HTML 폼 생성하기

이미지를 업로드할 수 있는 HTML 폼을 생성해야 합니다. 다음과 같이 HTML 폼을 작성합니다.

<form action="/upload" method="POST" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" value="Upload">
</form>

3. Flask 라우트 설정하기

이제 Flask 애플리케이션에 라우트를 설정하여 이미지 업로드 및 처리 기능을 구현합니다. 다음과 같이 upload 경로에 대한 POST 메서드를 처리하는 라우트를 추가합니다.

from flask import Flask, request

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload():
    image = request.files['image']
    
    # 이미지 처리 로직 구현
    # ...

    return 'Image uploaded and processed successfully'

if __name__ == '__main__':
    app.run()

4. 이미지 처리 로직 추가하기

실제로 이미지를 업로드하고 처리하기 위해서는 이미지 처리 로직을 구현해야 합니다. 예를 들어, 업로드한 이미지를 리사이징하고 저장하는 로직을 추가해보겠습니다. 다음과 같이 Pillow 라이브러리를 사용하여 이미지를 리사이징하고 저장합니다.

from flask import Flask, request
from PIL import Image

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload():
    image = request.files['image']
    
    # 이미지 처리 로직
    img = Image.open(image)
    resized_img = img.resize((500, 500))  # 이미지 리사이징
    resized_img.save('upload.jpg')  # 리사이징된 이미지 저장

    return 'Image uploaded and processed successfully'

if __name__ == '__main__':
    app.run()

5. 웹 서버 실행하기

이제 Python 스크립트를 실행하여 웹 서버를 실행할 준비가 되었습니다. 다음과 같이 스크립트를 실행합니다.

python app.py

이제 브라우저에서 http://localhost:5000에 접속하고 이미지를 업로드할 수 있는 폼을 확인할 수 있습니다. 이미지를 업로드하면 해당 이미지가 리사이징되어 저장됩니다.

결론

이번 글에서는 Python을 사용하여 웹 서버에 이미지 업로드 및 처리 기능을 추가하는 방법을 알아보았습니다. Flask 프레임워크와 Pillow 라이브러리를 이용하여 간단히 구현할 수 있습니다. 이제 여러분은 웹 애플리케이션에서 이미지 업로드 및 처리를 위한 기능을 자유롭게 활용할 수 있습니다.