49 기계 번역기 (Machine Translator)
텍스트를 한 언어에서 다른 언어로 번역해 주는 앱을 만들어 봅시다. 보너스 점수를 위해 이미지에서 텍스트를 추출(OCR)하여 번역해 주는 기능까지 포함해 보세요.
이 프로젝트는 최신 언어 모델 API를 연동하고, 자연어 처리(NLP) 기술을 활용하여 다양한 언어 간의 장벽을 허무는 데 아주 좋습니다. 단순히 단어를 바꾸는 것이 아니라, 문맥에 맞는 자연스러운 번역을 제공하는 시스템을 설계해 보세요.
49.1 주요 개발 포인트
- 언어 번역 API 연동: Google Translate API, DeepL API, Naver Papago API 등을 활용하여 고품질 번역을 수행합니다.
- 이미지 텍스트 추출 (OCR): Tesseract OCR이나 Google Vision API를 사용하여 이미지 속 글자를 텍스트로 변환합니다.
- 자동 언어 감지 (Language Detection): 사용자가 입력한 언어가 무엇인지 자동으로 판별하여 번역 설정을 돕습니다.
- 번역 히스토리 저장: 이전에 번역했던 내역을 저장하고 나중에 다시 볼 수 있는 기능을 제공합니다.
- 사용자 인터페이스 (GUI): 원문 입력란과 번역 결과 출력란을 포함한 깔끔한 웹 또는 데스크톱 앱을 구축합니다.
49.2 Python 구현 예시 (Google Translate API 활용 시뮬레이션)
# 실제 실행 시 googletrans 등 라이브러리 설치가 필요합니다.
# from googletrans import Translator
class SimpleTranslator:
"""
텍스트를 번역하고 언어를 감지하는 기능을 관리합니다.
"""
def __init__(self):
# self.translator = Translator()
print("번역 엔진 준비 완료.")
def translate_text(self, text, target_lang='ko'):
"""
텍스트를 대상 언어로 번역합니다.
"""
print(f"'{text}'를 {target_lang} 언어로 번역 중...")
# 실제 API 호출 시뮬레이션
# translated = self.translator.translate(text, dest=target_lang)
# return translated.text
# 가상의 번역 결과 예시
if target_lang == 'ko' and "hello" in text.lower():
return "안녕하세요"
elif target_lang == 'en' and "안녕" in text:
return "Hello"
return "번역 결과를 가져올 수 없습니다."
def detect_and_translate(self, text):
"""
언어를 자동 감지한 후 한국어로 번역합니다.
"""
# detected = self.translator.detect(text)
# print(f"감지된 언어: {detected.lang}")
# return self.translate_text(text, target_lang='ko')
pass
if __name__ == "__main__":
translator = SimpleTranslator()
# 번역 테스트
result = translator.translate_text("Hello, how are you?", "ko")
print(f"번역 결과: {result}")
# 이미지 번역 시나리오 시뮬레이션
print("\n[이미지 번역 시나리오]")
print("1. 이미지 파일 로드")
print("2. OCR 엔진을 통해 'Sales 50% Off' 텍스트 추출")
print(f"3. 번역 결과: {translator.translate_text('Sales 50% Off', 'ko')}")