AI 채팅 내보내기가 조용히 실패하는 순간 — 역할 접두사 파싱의 함정
ChatGPT나 Claude와 나눈 대화를 복사해서 채팅 내보내기 도구에 붙여넣고 "파싱" 버튼을 눌렀는데 아무 일도 일어나지 않은 적이 있다면, 그건 도구가 멈춘 게 아니라 텍스트 안에서 역할을 인식하지 못했다는 신호입니다. 문제는 이때 오류 메시지가 전혀 뜨지 않는다는 데 있습니다. 이 가이드는 이런 종류의 텍스트 파싱 도구가 왜 "조용히" 실패하는지, 그리고 어떤 입력이라야 실제로 인식되는지 구조적으로 설명합니다.
1. 붙여넣기 파서가 실제로 하는 일
이런 도구는 ChatGPT나 Claude의 실제 API에 연결돼 있지 않습니다. 사용자가 화면에서 복사해서 붙여넣은 순수 텍스트 한 덩어리만 보고, 그 안에서 "이 줄부터는 사용자 발화, 이 줄부터는 AI 발화"라는 구조를 스스로 추론해내야 합니다. 구조화된 데이터가 전혀 없는 상태에서 순전히 줄 맨 앞의 문자열 패턴만으로 화자를 구분하는 것이 이런 파서의 근본적인 작동 방식입니다.
2. 정확히 어떤 패턴을 찾는가
이 도구는 각 줄의 맨 앞이 아래 패턴 중 하나로 시작하고 바로 뒤에 콜론(: 또는 :)이 오는 경우에만 새 메시지의 시작으로 인식합니다.
| 역할 | 인식되는 접두사 |
|---|---|
| user | user, 사용자, ユーザー, 用户, you, human |
| assistant | assistant, 어시스턴트, アシスタント, 助手, ai, chatgpt, claude, gemini |
| system | system, 시스템, システム, 系统 |
대소문자는 구분하지 않지만, 반드시 줄의 맨 앞에 와야 하고 콜론이 바로 붙어야 합니다. 이 목록에 없는 표현(예: "Q:", "A:", "질문:", "답변:")은 아무리 대화 형식처럼 보여도 전혀 인식되지 않습니다.
3. 인식 실패 시 실제로 벌어지는 일
파싱 함수의 핵심 동작은 이렇습니다: 텍스트를 줄 단위로 훑으면서 패턴에 매칭되는 줄을 찾아 메시지 목록(msgs)에 쌓습니다. 그런데 마지막에 if(msgs.length)라는 조건문이 하나 있어서, 매칭된 줄이 단 하나도 없으면 이 목록 자체가 비어 있는 채로 남고, 기존 메시지 빌더 화면은 전혀 갱신되지 않습니다. 에러를 던지지도, 경고창을 띄우지도 않습니다. 사용자 입장에서는 "붙여넣기 → 파싱 클릭 → 화면에 아무 변화 없음"으로만 보이는데, 이게 버그가 아니라 정확히 의도된(그러나 unforgiving한) 동작입니다.
4. 인식되는 입력 vs 인식되지 않는 입력
아래는 실제로 파싱이 성공하는 형식과, 겉보기엔 비슷해 보이지만 실패하는 형식의 대조 예시입니다.
| 입력 예시 | 결과 |
|---|---|
User: 안녕하세요 | ✅ 정상 인식 (user/assistant 접두사 + 콜론) |
사용자: 질문입니다 | ✅ 정상 인식 (한글 접두사도 지원) |
Q: 질문입니다 | ❌ 인식 실패 (Q/A는 목록에 없음) |
나: 안녕 | ❌ 인식 실패 ("나", "챗봇"은 지정된 단어 아님) |
또 하나 알아둘 점은, 첫 번째로 인식된 접두사 줄 이전에 있는 모든 내용(예: 대화 제목이나 날짜 메모)은 아예 파싱 결과에서 통째로 버려진다는 것입니다.
5. 실무 팁
- 파싱 버튼을 눌렀는데 화면이 그대로라면, 십중팔구 접두사 형식 문제입니다 — 원본 텍스트가 위 표의 지원 목록과 정확히 일치하는지부터 확인하세요.
- 변환 결과가 나왔더라도 "정말 모든 발화가 제대로 갈렸는지" 짧게라도 눈으로 확인하는 습관을 들이세요. 긴 대화를 통째로 붙여넣고 결과를 다시 읽지 않으면, 구조가 잘못됐어도 알아채기 어렵습니다.
- ChatGPT나 Claude에서 복사한 원문이 도구가 기대하는 라벨 형식과 다르면, 붙여넣기 전에 직접 "User:"/"Assistant:" 같은 라벨을 앞에 붙여 정리하는 편이 빠릅니다.
자주 묻는 질문
Q. 붙여넣고 파싱했는데 화면에 아무 변화가 없어요.
A. 파서는 정해진 역할 접두사(User:, Assistant:, System: 및 한중일 번역어)로 시작하는 줄만 인식합니다. 이 목록에 없는 표현을 쓰면 매칭된 메시지가 0개가 되고, 기존 메시지 빌더 화면이 그대로 유지되며 오류 표시도 없습니다.
Q. Q:/A: 형식의 대화도 파싱되나요?
A. 안 됩니다. user/assistant/system 계열 단어만 인식 대상이라 "Q:", "A:" 같은 접두사는 역할로 인식되지 않아 파싱 결과가 비게 됩니다.
Q. 첫 역할 접두사 이전의 제목이나 날짜 줄은 어떻게 되나요?
A. 완전히 버려집니다. 예를 들어 "2024년 1월 대화 기록"이라는 제목 줄 다음에 "User: 안녕"이 온다면, 제목 줄은 결과물에 전혀 포함되지 않습니다.
Q. 어떤 접두사들이 인식되나요?
A. user/사용자/ユーザー/用户/you/human → user, assistant/어시스턴트/アシスタント/助手/ai/chatgpt/claude/gemini → assistant, system/시스템/システム/系统 → system으로 매핑됩니다. 대소문자는 구분하지 않지만, 줄 맨 앞에서 시작하고 바로 뒤에 콜론이 와야 합니다.