Claude로 영문 규제 11개를 전공 단어 살려 번역하기 — 옵션과 함정
원자력 사이버보안 미국·영국 규제 11개 문서를 한국어로 옮겼다. 번역기 톤이 아닌 전공 자연스러움이 목표였다.
목차
연구 1차년도 작업으로 미국 NRC와 영국 ONR의 원자력 사이버보안 규제 11개 문서를 분석해야 했다. 대부분 PDF 30~80페이지짜리.
직접 다 읽으면 한 달. 번역기로 돌리면 5분이지만 톤이 안 맞는다. Google 번역 결과를 발표 슬라이드에 그대로 넣으면 어색하고 부자연스러움이 그대로 들킴.
Claude로 11개를 다 번역. 시행착오 정리.
대상 문서
| 출처 | 문서 |
|---|---|
| 미국 NRC | 10 CFR 73.110, RG 5.71, RG 5.96, RG 1.168, NEI 08-09, NEI 13-10 |
| 영국 ONR | SyAPs, NS-TAST-GD-046, CNS-INSP-GD-001, CNS-TAST-GD-2.1, CNS-TAST-GD-10.2 |
총 11개, 2,300페이지가량. 한국어 번역본 없음.
KINAC RS-015, RS-019는 비공개라 제외.
첫 시도 — Google 번역
원문:
"Licensees shall maintain the cybersecurity program in a manner that
ensures the protection of digital computer and communication systems
and networks associated with the following functions..."
Google 번역:
"라이센시는 다음 기능과 관련된 디지털 컴퓨터 및 통신 시스템 및
네트워크의 보호를 보장하는 방식으로 사이버 보안 프로그램을
유지해야 합니다..."
문법은 맞지만 번역기 냄새가 나는 부자연스러움. “라이센시”가 직역인데 한국 원자력 분야에선 “운영자” 또는 “사업자”로 번역.
Claude 번역 — 프롬프트
다음 영문을 한국어로 번역하세요.
조건:
- 전공: 원자력 사이버보안 / 정보보안
- 톤: 한국 KINAC 또는 KISA 자료 톤 (전문적이고 자연스러운)
- 영어 단어 그대로 두면 안 되는 것: licensee → 사업자, regulator → 규제기관,
digital asset → 디지털 자산, etc.
- 영어 단어 그대로 두는 게 자연스러운 것: Cyber Security, IDS, ICS, SCADA
- 약어 등장 시 풀어서 한 번 (예: "Critical Digital Asset(CDA)") 후 이후엔 약어
- 표/리스트는 구조 유지
- 페이지 번호, 문단 번호는 제거 (재구성)
원문:
<여기에 PDF 한 섹션 붙여넣기>
이렇게 한 번에 한 섹션(약 1,500단어)씩 처리.
결과 비교
Google:
"라이센시는 다음 기능과 관련된 디지털 컴퓨터 및 통신 시스템 및
네트워크의 보호를 보장하는 방식으로 사이버 보안 프로그램을 유지해야 합니다..."
Claude:
"사업자는 사이버보안 프로그램을 유지하여, 다음 기능에 사용되는 디지털
컴퓨터 시스템·통신 시스템 및 관련 네트워크의 보호를 보장해야 한다."
차이:
- “라이센시” → “사업자” (실제 사용 용어)
- “및 … 및” 연속 → ”·” 활용
- “~합니다” → “~한다” (규정 톤)
- “유지하여” 분사로 자연스러운 연결
Opus vs Sonnet 선택 갈등
번역 시작할 때 Opus(비싼 모델) vs Sonnet 선택. Claude API 비용:
| 모델 | 입력 토큰당 | 출력 토큰당 |
|---|---|---|
| Opus 4 | $15 / 1M | $75 / 1M |
| Sonnet 4 | $3 / 1M | $15 / 1M |
페이지 1쪽 ≈ 500 단어 ≈ 1,500 토큰. 11개 문서 × 평균 50쪽 = 550쪽 = 825,000 토큰 입력.
- Opus: $12.4 입력 + $20 출력 ≈ $33
- Sonnet: $2.5 입력 + $4 출력 ≈ $6.5
품질 비교 — 핵심 섹션 5개를 둘 다로 번역해서 수동 비교. Sonnet이 90% 충분. Opus가 미묘하게 자연스럽지만 5배 비용 차이만큼 가치 있나? 아니. Sonnet 선택.
함정 — 사진/그림이 있는 페이지
PDF에서 텍스트만 뽑으면 그림 없이 캡션만 들어와서 의미 잃음.
원문 페이지 14:
[그림 3-1: 사이버보안 통제 영역의 5개 카테고리]
다음과 같이 분류된다:
1. ...
Claude한테 그림 안 보여주면 “다음과 같이 분류된다”의 “다음”이 비어 있음. PDF에서 그림을 따로 추출해서 함께 첨부해야 자연스러운 번역.
# 그림 추출
pdftoppm -png input.pdf page -f 14 -l 14
그림이 들어간 페이지는 사진과 함께 보내고, “이 그림은 어떤 도식이며 캡션은 …” 같이 메타정보도 추가해서 보냄.
함정 — 약어 무한 반복
긴 문서에 같은 약어가 50번 나오면 매번 풀어 쓰는 건 번거롭다. 첫 등장만 풀어서, 이후엔 약어가 표준.
처음에 프롬프트에 안 박았더니 매번 풀어 써서 어색했음. 명시 후 해결.
함정 — 표 구조
원문:
| Function | Description | Reference |
|---|---|---|
| Reactor Protection | ... | 10 CFR 50.55a |
Claude는 마크다운 표를 잘 보존하지만 셀이 매우 길면 줄바꿈을 자체적으로 추가해서 표 깨짐. 셀 길이 100자 이상이면 미리 끊거나, “표는 원문 형태 유지” 명시.
함정 — 600초 stall
긴 문서를 한 번에 보내면 응답 생성 도중 watchdog이 끊는 경우. Claude API의 기본 timeout보다 긴 응답이 필요할 때 발생.
해결:
- 한 번에 1,500 단어 이하로 분할
- streaming API 사용 (각 토큰 즉시 반환, watchdog 갱신)
- 너무 큰 청크는 미리 둘로 쪼개기
NS-TAST-GD-046은 80페이지라 한 번에 못 함. 본문 / Appendix 1 / Appendix 2 / Appendix 3 / refs로 5개 청크 분할.
자동화 — 병렬 처리
11개 문서를 한 번에 번역시키려고 Claude Agent를 11개 띄움. background 모드로:
import anthropic
async def translate_doc(doc_path):
chunks = split_pdf_into_chunks(doc_path, max_words=1500)
translated = []
for chunk in chunks:
resp = await client.messages.create(
model='claude-sonnet-4',
max_tokens=4000,
messages=[{'role':'user', 'content': PROMPT.format(text=chunk)}]
)
translated.append(resp.content[0].text)
return '\n\n'.join(translated)
# 11개 동시 실행
tasks = [translate_doc(d) for d in docs]
results = await asyncio.gather(*tasks)
11개 동시는 rate limit에 걸릴 수 있어 3~5개씩 묶어서 처리. 전체 약 40분.
결과 검증
번역된 한국어를 그대로 쓰는 게 아니라 한 번 더 검수 필수.
체크 포인트:
- 핵심 용어 일관성 (같은 영어 단어가 매번 같은 한글로?)
- 숫자/조항 번호 변경 없음
- 표/리스트 누락 없음
- 부정문/조건문 의미 뒤집힘 없음 (이게 자주 발생)
11개 문서 검수에 약 1주일. 자동 번역 자체는 1일. 검수가 진짜 작업.
만들면서 알게 된 것들
LLM 번역은 톤 매칭이 핵심이다. Google 번역 vs Claude 차이는 정확도가 아니라 자연스러움. 한국 전공 자료 톤을 명시한 프롬프트가 결정적.
비싼 모델이 항상 답은 아니다. Opus vs Sonnet 5배 차이지만 번역 품질은 90% 동일. 비용/품질 트레이드오프는 일이 시작된 후 빨리 결정.
검수가 진짜 일이다. 자동 번역으로 시간을 80% 줄여도 검수 시간이 그대로. “번역기 냄새 나는 부분” 잡아내기는 아직 사람이 빠름.
Claude API 워치독은 항상 의식. 큰 작업은 청크로. streaming 쓰면 안전. 11개 PDF를 600초 timeout 없이 처리하려면 모든 청크가 작아야 함.
한 줄 결론
LLM 번역은 Google 번역의 5배 자연스러움 + 검수 시간은 그대로다. 일을 끝내는 데 더 빠르진 않을 수 있지만, 결과물 품질은 분명히 올라간다.
같은 패턴으로 다른 언어 페이퍼나 매뉴얼 번역 가능. 한 번 잘 만든 프롬프트는 평생 쓴다.