서론
오늘은 Zappa와 파이썬을 활용하여 실시간 주변 음식점을 추천하는 애플리케이션을 구축하는 방법에 대해 알아보겠습니다. 이 애플리케이션은 사용자가 위치 정보를 입력하면 해당 위치 주변의 음식점을 실시간으로 추천하여 보여주는 기능을 갖추고 있습니다.
사전 준비
- AWS 계정 및 IAM 역할 생성
- 파이썬 가상환경 설정
- Flask와 필요한 모듈 설치
Zappa를 이용한 서버리스 배포
Zappa는 AWS Lambda와 API Gateway를 이용하여 서버리스 애플리케이션을 배포하기 위한 도구입니다. 아래의 명령어를 통해 Zappa를 설치합니다.
pip install zappa
Zappa를 초기화하려면 다음 명령어를 실행합니다.
zappa init
Zappa 설정 파일인 zappa_settings.json
이 생성되며, 파일 내에 AWS 계정 및 리소스에 대한 정보를 입력해야 합니다.
배포하기 전에 가상환경을 활성화하고 의존성을 설치합니다.
source venv/bin/activate
pip install -r requirements.txt
애플리케이션을 처음 배포하는 경우, 다음 명령어를 실행하여 배포를 수행합니다.
zappa deploy
이후에는 코드 변경이 있을 때마다 다음 명령어를 사용하여 업데이트를 수행합니다.
zappa update
주변 음식점 추천 기능 구현
Flask를 사용하여 실시간 주변 음식점 추천 기능을 구현합니다. 예를 들어, Google Places API를 이용하여 해당 위치의 주변 음식점을 조회할 수 있습니다. 사전에 Google API 키를 발급받아야 합니다.
from flask import Flask, request
import requests
app = Flask(__name__)
@app.route('/restaurants', methods=['GET'])
def get_restaurants():
location = request.args.get('location')
radius = request.args.get('radius')
api_key = 'YOUR_API_KEY'
# Google Places API 호출
url = f'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location={location}&radius={radius}&type=restaurant&key={api_key}'
response = requests.get(url)
restaurants = response.json()
return restaurants, 200
if __name__ == '__main__':
app.run()
이제, /restaurants
엔드포인트로 GET 요청을 보내면, 해당 위치 주변의 음식점 정보를 JSON 형태로 반환합니다.
결론
Zappa와 파이썬을 활용하여 실시간 주변 음식점 추천 애플리케이션을 구축하는 방법에 대해 알아보았습니다. Flask를 사용하여 API를 구현하고, Zappa를 통해 서버리스로 배포하는 과정을 안내했습니다. 이를 통해 사용자에게 실시간으로 주변 음식점을 추천해주는 애플리케이션을 만들 수 있습니다.
#Zappa #파이썬