boto3 라이브러리를 사용해 단 몇 줄의 코드만으로 고품질 신경망 기계 번역(NMT) API를 호출할 수 있다. 이번 포스팅에서는 일본어 뉴스 기사 원문을 예제로 삼아, Python 코드로 번역 API를 직접 호출하고 한국어 결과물을 얻는 기본 구현 과정을 알아본다.◼️ IAM 설정하기
Amazon Translate API를 사용하기 위해 필요한 핵심 IAM 권한은 다음과 같다.
기본 번역 권한: 실시간 텍스트 번역 API를 호출하려면
translate:TranslateText권한이 필수적이다. AWS 관리형 정책으로는TranslateReadOnly를 연결하면 즉시 사용 가능하다.언어 자동 감지 권한: 출발 언어를 지정하지 않고 자동 감지(
SourceLanguageCode="auto") 기능을 사용할 경우, 내부 연동을 위해comprehend:DetectDominantLanguage권한이 추가로 필요하다.관리 권한 (선택): 맞춤형 용어집 등록이나 배치 번역 작업까지 제어하려면
TranslateFullAccess정책을 부여해야 한다.
◼️ api 사용하기
import boto3 def write_text( text_to_translate ): ACCESS_KEY = 'AAAAAAA' # os.environ['ACCESS_KEY'] SECRET_KEY = 'BBBBBBB' # os.environ['SECRET_KEY'] translate = boto3.client('translate', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY, region_name='ap-northeast-2') # 번역할 텍스트 및 언어 설정 source_language = "ja" # 원본 언어 (영어) target_language = "ko" # 번역 언어 (한국어) # 번역 API 호출 response = translate.translate_text( Text=text_to_translate, SourceLanguageCode=source_language, TargetLanguageCode=target_language ) # 번역 결과 출력 print(response) translated_text = response['TranslatedText'] print(f"{translated_text}") return translated_text setText = """ 引き続きガソリン価格を170円程度に」赤沢経産大臣 ガソリン補助金継続のため予備費から6136億円支出を閣議決定 """ "휘발유 가격 170엔 내외로 계속 유지” 아카자와 경제산업상은 휘발유 보조금을 지속하기 위해 예비비 중 6136억 엔을 지출하기로 내각 결정을 내렸습니다." res = write_text(setText)
제시된 코드는 AWS의 Python SDK인 boto3를 활용하여 Amazon Translate API를 호출하고, 일본어 원문 텍스트를 한국어로 번역하는 기본 구조를 담고 있다.
주요 코드 구성 및 동작 설명
클라이언트 객체 생성 (
boto3.client):AWS 인증 정보(
ACCESS_KEY,SECRET_KEY)와 사용할 리전(ap-northeast-2, 서울 리전)을 지정하여 Amazon Translate 서비스 클라이언트를 초기화한다. 실제 운영 환경에서는 보안을 위해 코드에 키를 하드코딩하지 않고 환경 변수(os.environ)나 IAM Role을 사용하는 것이 안전하다.언어 코드 정의 (
SourceLanguageCode,TargetLanguageCode):출발 언어(
source_language = "ja")와 도착 언어(target_language = "ko")를 ISO 639-1 표준 언어 코드로 지정한다. 출발 언어를 모를 경우"auto"로 설정하면 언어 자동 감지 기능이 동작한다.번역 API 호출 (
translate.translate_text):번역 대상 텍스트와 언어 파라미터를 넘겨 신경망 기계 번역(NMT) 작업을 요청한다.
응답 데이터 처리 (
response['TranslatedText']):API 응답 딕셔너리(
response)에서 번역된 최종 문자열이 담긴'TranslatedText'키의 값을 추출하여 반환한다.
실행 결과 분석
입력 원문 (일본어 뉴스 헤드라인):
引き続きガソリン価格を170円程度に」赤沢経産大臣 ガソリン補助金継続のため予備費から6136億円支出を閣議決定
번역 결과 (한국어):
“휘발유 가격 170엔 내외로 계속 유지” 아카자와 경제산업상은 휘발유 보조금을 지속하기 위해 예비비 중 6136억 엔을 지출하기로 내각 결정을 내렸습니다.
품질 요약: 일본어의 경제/행정 전문 용어(経産大臣 → 경제산업상, 予備費 → 예비비, 閣議決定 → 내각 결정/각의 결정)와 따옴표 문맥을 정확하게 파악하여 자연스러운 한국어 문장으로 변환해 낸다.
* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.