콘솔에 등록한 한글이 다른 글자로 바뀌어 저장됩니다

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

출시 노트와 버전 메모에 넣은 한글이 길이는 그대로인 채 특정 음절만 다른 글자로 치환되어 저장됩니다. API 응답뿐 아니라 콘솔 웹 화면에서도 손상된 값이 그대로 보입니다 — 표시 문제가 아니라 저장값 자체가 손상된 것으로 보입니다.

출시 노트는 사용자에게 노출되는 텍스트라 오탈자로 남고, 검수 요청 뒤에는 고칠 수 없어 번들을 새로 빌드해야 했습니다.

환경

항목
SDK 3.0.5
사용 경로 콘솔 MCP — bundle_upload(memo), bundle_set_release_note
발생 기간 2026-08-22 ~ 08-24

관측 사례

위치 보낸 값 저장된 값
출시 노트 (번들 20260824-16) 끼니 끓끼
버전 메모 (번들 20260824-16) 캡처 캐처
출시 노트 (번들 20260823-13, 출시 완료) 바꿨어요 바꿈어요

자모 단위로 보면 이렇습니다.

끼 U+B07C [ㄲ+ㅣ]      →  끓 U+B053 [ㄲ+ㅡ+ㅀ]
니 U+B2C8 [ㄴ+ㅣ]      →  끼 U+B07C [ㄲ+ㅣ]

캡 U+CEA1 [ㅋ+ㅐ+ㅂ]   →  캐 U+CE90 [ㅋ+ㅐ]

꿨 U+AFE8 [ㄲ+ㅝ+ㅆ]   →  꿈 U+AFC8 [ㄲ+ㅜ+ㅁ]

확인한 것

  • 문자열 길이는 항상 그대로입니다. 잘림이 아니라 치환입니다.
  • 간헐적입니다. 같은 경로로 206자짜리 한글 출시 노트가 글자 단위로 완전히 일치하게 저장된 적도 있습니다. 모든 한글이 깨지는 것은 아닙니다.
  • 인코딩 왕복으로 재현되지 않습니다. EUC-KR, CP949, johab, ISO-2022-KR, NFD→NFC 어느 것으로도 위 변환이 나오지 않았습니다.
  • 보내는 쪽 값은 정상이었습니다(요청 페이로드 확인).
  • 어떤 글자가 트리거인지는 규칙을 찾지 못했습니다.

영향

출시 노트는 사용자에게 보이는 텍스트라 오탈자로 남습니다. 더 큰 문제는 검수 요청 이후에는 고칠 수 없다는 점입니다.

bundle_set_release_noteREVIEWING 상태에서 이렇게 거부됩니다.

릴리즈 노트 변경이 가능한 상태가 아닙니다.

수정 가능한 상태는 CREATEDREJECTED뿐이라, 글자 하나 때문에 번들을 새로 빌드해 검수를 처음부터 다시 받아야 했습니다.

회피 방법

출시 노트를 검수 요청과 분리해 등록하고 반드시 다시 읽어 대조하면, 손상을 검수 전에 잡을 수 있습니다.

  1. bundle_submit_reviewreleaseNotes에 실어 보내지 말고, bundle_set_release_note로 먼저 등록합니다. CREATED 상태에서는 몇 번이든 고칠 수 있습니다.
  2. bundle_list다시 읽어 원문과 글자 단위로 대조합니다.
  3. 깨졌으면 표현을 바꿔 다시 등록합니다. 저희는 “끼니” → "아침·점심·저녁"으로 우회해 통과했습니다.
  4. 일치를 확인한 뒤에 bundle_submit_reviewdeploymentId만 넣어 호출합니다.

확인 부탁드리는 것

  • 출시 노트·메모 저장 경로의 한글 처리 단계(정규화나 필터가 있다면 그쪽)를 봐주실 수 있을까요.
  • 콘솔 웹 입력 화면으로 직접 입력했을 때도 같은 문제가 있는지 궁금합니다. 저희는 MCP 경로만 사용해 확인하지 못했습니다.
  • 검수 중에도 출시 노트 오탈자 정정만이라도 허용될 수 있을지 검토 부탁드립니다.

아직 확인하지 못한 것

  • 콘솔 웹 UI로 직접 입력했을 때의 재현 여부
  • 어떤 글자·조합이 손상을 유발하는지에 대한 규칙

appName (선택)

fastingtracker

안녕하세요 :slight_smile:
한번 확인해보겠습니다!

저희측 로그 확인해보니,

단식이 끝난 뒤 보식을 이어서 기록할 수 있어요. 끓끼와 먹은 것, 식후 느낌을 남기면 조심해야 할 신호를 알려드려요. 보식 기간은 설정에서 바꿀 수 있어요.\\n\\n설정에 '사용 방법'이 생겨 처음이라도 순서대로 따라할 수 있어요. 목표한 시간을 채우면 홈에서 바로 단식을 끝낼 수 있고, 숫자를 잘못 적으면 저장 전에 한 번 확인해 드려요.
사용 방법 예시를 캐처 이미지 대신 실제 컴포넌트로 교체(해상도 문제 해소, 번들 550→425KB)

보내주신 payload를 확인했을때는 저희측에서 치환된게 아닌 것 처럼 보입니다.
다시 확인 부탁드려도 될까요 ? :man_bowing:

Claude Code 버전/모델, RTK나 compact 같은 토큰 절약 기능 사용하고 계실까요? 혹은 claude code transcript 직렬화 문제로 추정됩니다
당장은 출시 노트를 먼저 저장한 뒤 다시 읽어 확인하고, 검수 요청할 때는 릴리즈 노트를 다시 보내지 않는 방법이 안전합니다 :man_bowing:

괜히 번거롭게 해드렸네요.
확인 감사합니다.