오늘은 파이썬의 Zappa 프레임워크를 사용하여 AWS Translate를 통한 실시간 다국어 채팅 서비스를 구축하는 방법에 대해 알아보겠습니다. AWS Translate는 자동 번역 서비스로, 텍스트를 다른 언어로 번역해줍니다. 이 서비스를 활용하면 다국어 지원이 가능한 실시간 채팅 애플리케이션을 손쉽게 구축할 수 있습니다.
Prerequisites
- Python
- AWS 계정 및 IAM 권한
- Zappa 설치
- AWS CLI 설치
서버리스 애플리케이션 준비하기
첫 번째로, 파이썬 가상 환경을 설정하고 필요한 패키지를 설치합니다. 가상 환경을 설정하는 이유는 프로젝트에 종속된 패키지를 격리하여 관리할 수 있기 때문입니다.
$ python -m venv myenv
$ source myenv/bin/activate
$ pip install awscli zappa flask boto3
다음으로, AWS CLI를 사용하여 IAM 사용자를 생성하고 액세스 키와 시크릿 키를 발급받습니다. 발급받은 키를 사용하여 AWS CLI를 구성합니다.
$ aws configure
Zappa를 사용하여 서버리스 애플리케이션을 만듭니다. Zappa는 AWS Lambda와 API Gateway를 사용하여 웹 애플리케이션을 배포하는 프레임워크입니다.
$ zappa init
Zappa 초기화 과정에서는 여러 가지 설정을 입력해야 합니다. 필요한 설정을 입력한 후, zappa_settings.json
파일을 열어 추가 수정을 해줍니다.
{
"dev": {
"app_function": "main.app",
"aws_region": "ap-northeast-2",
"profile_name": "your-profile-name",
"project_name": "my-translator-app",
"runtime": "python3.9",
"s3_bucket": "my-translator-bucket",
"keep_warm": false
}
}
Flask 애플리케이션 작성하기
이제 Flask 애플리케이션을 작성해보겠습니다. Flask는 파이썬 웹 프레임워크로, 웹 서버와 템플릿 엔진을 제공하여 쉽게 웹 애플리케이션을 개발할 수 있습니다.
# main.py
from flask import Flask, request
import boto3
app = Flask(__name__)
translate = boto3.client('translate')
@app.route('/')
def hello_world():
return 'Hello, World!'
@app.route('/translate', methods=['POST'])
def translate_text():
text = request.form['text']
target_lang = request.form['target_lang']
response = translate.translate_text(
Text=text,
SourceLanguageCode='auto',
TargetLanguageCode=target_lang
)
translated_text = response['TranslatedText']
return translated_text
if __name__ == '__main__':
app.run()
위의 코드는 Flask 애플리케이션의 기본 구조입니다. /
경로로 접속하면 “Hello, World!” 메시지를 반환하고, /translate
경로로 POST 요청이 오면 번역 결과를 반환하는 메소드입니다.
서버리스 애플리케이션 배포하기
이제 Zappa를 사용하여 서버리스 애플리케이션을 배포해보겠습니다. 아래의 명령어를 실행하여 애플리케이션을 배포합니다.
$ zappa deploy dev
배포가 완료되면, 반환된 엔드포인트 URL을 확인하여 웹 애플리케이션에 접속할 수 있습니다.
웹 애플리케이션 사용하기
이제 생성된 웹 애플리케이션을 사용해보겠습니다. 웹 브라우저나 API 클라이언트를 사용하여 POST 요청을 보내고, 번역 결과를 확인할 수 있습니다.
$ curl -X POST -F 'text=Hello' -F 'target_lang=ko' https://your-endpoint-url/translate
위의 예제에서는 ‘Hello’라는 영어 문장을 ‘ko’로 번역하도록 요청하고 있습니다. 번역 결과를 확인해보세요!
이처럼 파이썬의 Zappa와 AWS Translate를 활용하여 실시간 다국어 채팅 서비스를 구축할 수 있습니다. 여러분의 웹 애플리케이션에 이러한 자동 번역 기능을 추가해보세요. 감사합니다!
#python #AWS #Zappa #Translate #서버리스