Articles
Lesson 7분

AI가 자꾸 번역체로 말해요 — LLM의 사고 언어와 다국어 스킬 설계

영어로 프롬프트를 쓰고 한국어 출력을 요청하면 번역체가 나오는 이유, 그리고 frontmatter와 본문 언어를 분리해서 해결한 경험을 공유합니다.

입문 프롬프트 다국어 번역체 스킬설계 LLM
이 글을 읽으면
  • 배경: AI에게 한국어로 글을 써달라고 했는데, 결과물이 영어를 직역한 것처럼 어색하게 나와서 원인을 찾아본 경험
  • 핵심 인사이트: LLM은 프롬프트의 언어로 “사고”하기 때문에, 영어 프롬프트에서 한국어 출력을 시키면 내부적으로 번역을 거치게 된다는 걸 알게 됐어요
  • 이런 분에게: AI에게 한국어(또는 영어 외 언어) 결과물을 요청했을 때 톤이 어색하게 느껴진 적이 있는 분

”왜 자꾸 번역체로 말하는 거야”

혹시 AI한테 한국어로 글을 써달라고 했는데, 결과물을 읽으면서 미묘하게 불편한 적 있으신가요?

문법적으로 틀린 건 아닌데, 뭔가 어색해요. “~을 통해”, “~에 있어서”, “~하는 것이 중요합니다” 같은 표현이 자꾸 눈에 걸려요. 한국어인데 한국어 같지 않은 느낌. 소위 “번역체”라고 부르는 거죠.

처음에는 단순히 AI의 한국어 실력이 부족한 거라고 생각했어요. “한국어를 더 자연스럽게 써줘”라고 추가 지시를 넣어보기도 하고, “번역체 금지”라고 명시해보기도 했고요. 근데 나아지다가도 다시 원래대로 돌아가더라고요.

스킬 파일을 만들면서 만난 문제

이 문제를 제대로 마주한 건, 셀포지(Selforge) 프로젝트에서 AI 에이전트의 행동을 정의하는 스킬 파일을 만들 때였어요.

스킬 파일이라는 건, AI한테 “너는 이런 역할이야, 이렇게 행동해”라고 알려주는 지시서 같은 거예요. 에이전트 정의서라고도 할 수 있고요. Claude Code에서는 .md 파일로 작성해서 프로젝트에 넣어두면 AI가 읽고 따르는 구조거든요.

처음에는 이 스킬 파일을 영어로 썼어요. 이유는 단순했는데 — AI가 영어를 더 잘 이해할 거라는 막연한 기대, 그리고 혹시 다른 사람이 참고할 때 영어가 더 접근성이 좋을 거라는 생각이었죠.

그런데 문제가 생겼어요. 이 스킬에 따라 AI가 한국어 콘텐츠를 만들어내면, 결과물이 영어를 직역한 것 같은 어색한 한국어로 나오는 거예요. “~을 통해 우리는 ~할 수 있습니다” 같은 문장이 자꾸 튀어나왔어요.

시도와 실패: “자연스러운 한국어로 써줘”

첫 번째로 시도한 건 출력 지시를 강화하는 거였어요.

## Output Rules
- Write in natural Korean (해요체)
- Avoid translation-style expressions
- Use conversational tone: ~더라고요, ~거든요, ~한데요

스킬 본문은 영어로 두고, 출력 규칙만 따로 명시하는 방식이었어요. 결과가 조금 나아지긴 했는데, 근본적으로 해결되지는 않았어요. 마치 영어로 생각한 다음에 한국어로 옮기는 느낌이 계속 남아 있었거든요.

두 번째로는 한국어 예시를 많이 넣어봤어요. “이런 식으로 써줘”라면서 한국어 샘플을 스킬 안에 넣었는데요. 예시와 비슷한 부분은 괜찮은데, 예시에 없는 상황이 오면 다시 번역체로 돌아가더라고요.

그때 깨달았어요. 문제는 “출력 언어”가 아니라 “사고 언어”였다는 걸요.

전환점: LLM은 입력 언어로 “생각한다”

이 문제의 원인을 곰곰이 들여다보니, 구조가 보이기 시작했어요.

LLM은 프롬프트로 받은 텍스트의 언어를 기반으로 내부적인 사고 흐름을 만들어요. 쉽게 말하면, 입력이 영어면 영어로 생각하고, 입력이 한국어면 한국어로 생각해요.

그러니까 이런 상황이 벌어지는 거예요:

영어 스킬 본문을 읽음
  → 영어로 사고 흐름이 형성됨
  → "한국어로 출력하라"는 지시를 만남
  → 영어 사고를 한국어로 번역
  → 번역체 결과물

반대로, 스킬 본문 자체가 한국어면:

한국어 스킬 본문을 읽음
  → 한국어로 사고 흐름이 형성됨
  → 한국어로 그대로 출력
  → 자연스러운 한국어 결과물

“자연스러운 한국어로 써줘”라고 아무리 강조해도, 사고 과정 자체가 영어로 돌아가고 있으면 결과물에는 번역의 흔적이 남을 수밖에 없었던 거죠.

해결: Frontmatter는 영어, 본문은 타깃 언어

원인을 알았으니, 해결은 명확했어요. 스킬 본문을 한국어로 쓰면 돼요. 근데 여기서 하나 고민이 생겼어요.

스킬 파일의 메타 정보(이름, 설명 같은 것들)까지 전부 한국어로 쓰면, 나중에 파일을 찾거나 다른 시스템에서 참조할 때 불편해요. 영어로 된 이름이 검색이나 자동화에서 훨씬 편리하거든요.

그래서 정리한 공식이 이거예요:

Frontmatter는 영어, 본문은 타깃 언어.

Frontmatter는 파일 맨 위에 ---로 감싸는 메타 정보 영역이에요. 여기에 이름, 설명 같은 기계가 읽는 정보를 영어로 넣고, 실제로 AI가 읽고 따르는 본문 지시는 한국어로 쓰는 거죠.

실제로 셀포지의 에이전트 정의 파일을 보면 이런 구조예요:

---
name: morning-agent
description: 매일 아침 브리핑을 담당한다.
---
## 역할

하루를 시작할 때 흐민의 방향을 잡아주는 브리핑을 만든다.
전체 3줄. 5분 안에 읽고 끝난다.

## 하지 않는 것

- 생각 포착 및 분류 → capture-agent 담당
- 점심 체크인, 자기 전 회고 → reflection-agent 담당
- 할 일 생성, 일정 관리
- 동기 부여, 격려성 멘트

name은 영어(morning-agent)라서 시스템이 참조하기 편하고, 본문은 한국어라서 AI가 한국어로 사고하게 돼요. 이 에이전트가 아침 브리핑을 만들 때, “하루를 시작할 때 방향을 잡아준다”라는 한국어 맥락에서 출발하니까 결과물도 자연스러운 한국어가 되는 거예요.

또 다른 예시로, 콘텐츠 작성 방법론 스킬을 보면요:

---
name: content-writing-methodology
description: LinkedIn 콘텐츠 작성 시 소재 선별, 서사 구성,
  콘텐츠 완성도를 높이기 위한 방법론.
---
# 콘텐츠 작성 방법론

이 스킬은 소스 자료를 LinkedIn 포스트로 변환할 때
**무엇을 쓰고 무엇을 버릴지** 판단하는 기준을 제공한다.

스킬 이름(content-writing-methodology)은 영어여서 어디서든 찾기 쉽지만, 실제 지시 내용은 한국어예요. 이 스킬을 따라 AI가 한국어 LinkedIn 포스트를 쓸 때, “무엇을 쓰고 무엇을 버릴지”라는 한국어 사고 흐름이 그대로 출력으로 이어지는 거죠.

검증: 달라진 결과물

이 구조를 적용한 뒤, 확실히 결과물이 달라졌어요.

이전에는 AI가 만들어낸 한국어 문장에서 이런 표현이 자주 보였어요:

  • “이러한 접근 방식을 통해 효과적인 결과를 얻을 수 있습니다”
  • “핵심적인 측면에 있어서 중요한 역할을 합니다”
  • “이것은 매우 중요한 프로세스입니다”

본문을 한국어로 바꾼 뒤에는 같은 맥락의 문장이 이렇게 바뀌었어요:

  • “이렇게 해보니 확실히 달라지더라고요”
  • “핵심은 결국 이 부분이었어요”
  • “이 과정이 생각보다 중요했어요”

같은 AI, 같은 모델인데, 사고 언어가 바뀌니까 출력의 질감 자체가 달라진 거예요.

인사이트: 출력을 고치려면 입력을 바꿔라

이 경험에서 얻은 범용적인 교훈은 이거예요.

AI의 출력 품질을 높이고 싶으면, 출력 쪽을 다듬는 것보다 입력 자체를 바꾸는 게 더 효과적이에요.

“자연스럽게 써줘”라고 백 번 말하는 것보다, 애초에 자연스러운 언어로 지시하는 게 낫다는 거죠. 이건 언어 문제를 넘어서, AI와 함께 일할 때 전반적으로 적용되는 원칙인 것 같아요.

그리고 다국어 환경에서 AI 도구를 쓰는 분들에게 실용적으로 정리하면:

  • AI가 출력할 언어로 프롬프트(지시)를 쓰세요. 영어 프롬프트 + 한국어 출력 조합은 번역체의 원인이 될 수 있어요.
  • 메타 정보와 지시 본문의 언어를 분리하세요. 시스템이 참조하는 이름이나 태그는 영어로, 실제 AI가 따르는 지시는 타깃 언어로.
  • “사고 언어”라는 개념을 기억하세요. LLM은 입력 언어로 사고해요. 출력 언어 지정은 그 사고의 번역을 요청하는 것일 수 있어요.

마무리

돌이켜보면, 이 문제의 해결 방법은 놀라울 만큼 단순했어요. 스킬 본문의 언어를 바꾸기만 하면 됐으니까요. 근데 그 단순한 답에 도달하기까지, “왜 자꾸 번역체가 나오지?” 하면서 출력 쪽만 들여다보느라 시간을 꽤 썼어요.

AI가 어색한 결과물을 낼 때, 출력을 고치려고 하기 전에 입력을 한번 살펴보시는 건 어떨까요? 의외로 답이 거기 있을 수도 있어요.