[Tech Blog] LLM Agent 리팩토링: 단순 번역기에서 'K-뷰티 문맥 컨버터'로의 진화
[Tech Blog] LLM Agent 리팩토링: 단순 번역기에서 'K-뷰티 문맥 컨버터'로의 진화
작성일: 2026-01-06
작성자: 박용락 PM ((주)뷰티인사이드랩 AI솔루션팀)
1. 들어가며: 왜 '번역'이 아니라 '변환'인가?
우리 팀은 앤드류 응(Andrew Ng) 교수님의 translation-agent를 기반으로 글로벌 커머스 번역 프로젝트를 진행하고 있습니다. 하지만 초기 테스트에서 명확한 한계에 부딪혔습니다. 한국의 화려한 미사여구(예: "물광", "순한", "미백")를 그대로 번역하면, 미국 시장(FDA 규제 및 문화적 뉘앙스)에서는 오히려 **'신뢰할 수 없는 제품'**으로 인식된다는 점입니다.
단순히 언어를 바꾸는(Translation) 것을 넘어, **시장 문맥에 맞게 재창조(Transcreation)**하는 엔진이 필요했습니다. 오늘 우리는 그 과정을 공유하려 합니다.
2. 문제 정의: 2026년 미국 뷰티 트렌드와의 충돌
2026년 미국 뷰티 마케팅의 핵심 키워드는 **'Verification(증명)'**과 **'Experience(경험)'**입니다. 기존 LLM 번역의 문제점은 다음과 같았습니다.
- Whitening (금기어): '미백'을 직역하면 인종 차별적 뉘앙스를 줄 수 있어 Brightening, Even Tone으로 변경 필수.
- Abstract Words (추상어): '순한(Gentle)' 같은 모호한 표현 대신 Barrier Repair, Dermatologist Tested 같은 구체적 효능이 필요.
- Generic Translation: 모든 카테고리에 똑같은 톤앤매너 적용 (스킨케어와 색조는 전략이 달라야 함).
3. 해결책: Context-Aware Agent로의 리팩토링
우리는 기존 에이전트를 대대적으로 리팩토링하여 Category-Driven Context Injection 구조로 변경했습니다.
3.1. HSK 코드 기반의 전략 모듈화 (rules.py)
가장 먼저 한 일은 하드코딩된 규칙들을 rules.py로 분리하고, 수출입 코드(HSK) 기준으로 전략을 세분화한 것입니다.
# src/translation_agent/rules.py (일부 발췌)
HSK_CATEGORIES = {
"skincare": {
"strategy": "Focus on 'Skin Barrier', 'Clinical Results'. Avoid listing ingredients without benefit.",
"replacements": {
"미백": "Brightening, Radiance",
"순한": "Barrier Repair, Microbiome Friendly"
}
},
"makeup": {
"strategy": "Focus on 'Flawless Finish', 'Long-wear'. Avoid 'Natural' (implies weak coverage).",
"replacements": {
"자연스러운": "Flawless, Seamless",
"착붙": "Transfer-proof, Long-wear"
}
}
}이제 에이전트는 제품이 '스킨케어'인지 '메이크업'인지에 따라 전혀 다른 단어를 선택합니다.
3.2. 동적 프롬프트 주입 (utils.py)
utils.py의 핵심 번역 및 성찰(Reflection) 함수에 category 파라미터를 추가했습니다. 사용자가 카테고리를 지정하면, 해당 카테고리에 맞는 전략이 LLM의 System Prompt로 실시간 주입됩니다.
# src/translation_agent/utils.py
def one_chunk_reflect_on_translation(..., category: str = "general"):
# 카테고리에 맞는 규칙을 동적으로 가져옴
rules = get_rules_for_category(category)
reflection_prompt = f"""
[STRICT K-BEAUTY RULESET for ({category})]
{rules}
[Instruction]
1. Scan for Forbidden Words (e.g., Whitening).
2. Transcreate keywords based on US Consumer Psychology.
"""
# ...이로써 에이전트는 단순 번역가가 아닌, **"미국 세포라의 시니어 마케터 페르소나"**를 갖게 되었습니다.
4. 검증 및 트러블슈팅
4.1. Verification Script (run_kbeauty_test.py)
리팩토링 후, 실제 마케팅 문구로 테스트를 진행했습니다.
- 입력: "이 제품은 쑥 성분이 들어있어 순하고 미백 효과가 있습니다."
- 기존 번역: "Contains mugwort, is gentle and has whitening effects." (미국 시장 출시 불가 ❌)
- Agent 결과: "Formulated with Artemisia to soothe sensitivity, this Hypoallergenic ampoule delivers Radiance and Clinical-grade Brightening." (트렌드 적합 ✅)
4.2. CI/CD 이슈 (Ruff Linter)
GitHub Actions 연동 중 utils.py에서 중복 import 문제로 빌드가 실패했습니다. 이는 코드 품질 도구인 Ruff가 잡아낸 것으로, 불필요한 의존성을 제거하고 import 순서를 표준에 맞게 정렬하여 해결했습니다. 코드의 품질도 기능만큼 중요하니까요.
5. 마치며: 오픈소스로의 기여
오늘 작업한 결과물은 Beauty-Insight-Lab-Inc/K-Beauty-Localization-Agent 리포지토리에 공개되었습니다.
우리의 목표는 K-뷰티 브랜드들이 언어 장벽을 넘어 '가치'를 온전히 전달하는 것입니다. 이번 리팩토링은 그 목표를 향한 중요한 기술적 토대가 될 것입니다.
Powered by Translation Agent Fork & K-Beauty Domain Knowledge
Beauty Insight Editor
Sharing insights on K-Beauty trends and data-driven export strategies. We help brands expand globally with the power of AI.