"내가 쓴 글이니까 똑같이 따라 해줘"가 작동하지 않는 이유
샘플 하나로는 딱 한 번만 좋은 초안이 나옵니다
샘플을 붙여넣는 방식은 단일 대화 안에서만 작동합니다. 샘플이 말 그대로 컨텍스트(context) 내에 존재하여 모델이 글을 쓰는 동안 이를 직접 볼 수 있기 때문입니다. 첫 번째 시도가 종종 인상적이면서도 오해를 불러일으키는 이유가 바로 여기에 있습니다. 해당 대화는 다음번을 위해 샘플을 저장하지 않으므로, 대화 스레드가 끝나면 보정 작업도 함께 사라집니다.
이것은 기억(memory)의 오류가 아니라, 컨텍스트 창(context window)이 작동하는 방식입니다. 샘플은 단 한 번의 요청을 위한 작업 재료였을 뿐입니다.
글자 수 제한이라는 산술적 한계
자신의 글쓰기 스타일을 영구적으로 적용하기 위해 맞춤 설정에 샘플을 붙여넣는다고 가정해 봅시다. 대표적인 글 세 문단은 대략 1,200~1,800자(영어 기준) 정도입니다. Free나 Go 요금제에서는 이것만으로도 허용 한도를 모두 채우게 되어 실제 지침을 적을 공간이 전혀 남지 않습니다. Plus나 Pro 요금제라면 약 여덟 문단 정도를 넣을 수 있겠지만, 이는 단 하나의 어조(register)와 주제를 보여주기에도 벅차며, ChatGPT가 그 샘플을 가지고 무엇을 해야 하는지 알려주는 규칙을 넣을 공간은 사라집니다.
또한 설정 필드에 샘플을 넣는 것은 가장 비효율적인 인코딩 방식입니다. 모델이 매번 스스로 규칙을 추론해야 하는 '데이터'에 모든 허용 한도를 낭비하는 꼴이기 때문입니다. 규칙 자체를 직접 제공하는 대신 말이죠.
업로드한 샘플도 기억되지 않습니다
그다음 시도는 자신의 글이 담긴 문서를 업로드하는 것입니다. 이 방법은 문서를 업로드한 해당 대화 내에서는 도움이 되지만, 그 이후에는 기억으로 유지되지 않습니다. 이 한계는 why ChatGPT forgets uploaded files에서 설명한 바와 같습니다.
프로젝트(Projects) 기능을 사용하면 상황이 조금 달라집니다. 프로젝트 파일은 프로젝트 내에 유지되고 프로젝트 메모리도 해당 범위로 제한되기 때문입니다. 이는 지속적으로 진행되는 단일 작업물에는 유용한 대안이 될 수 있지만, 프로젝트가 외부와 차단된다는 단점이 있습니다. OpenAI 문서에 따르면 공유된 프로젝트는 프로젝트 외부의 멤버 컨텍스트나 메모리에 접근할 수 없으며, 한 번 공유되면 프로젝트의 메모리 모드를 "기본 메모리로 되돌릴 수 없습니다." 유용하지만 제한적이며, 근본적인 해결책은 아닙니다. 자세한 내용은 why ChatGPT Projects don't share memory를 참조하세요.
메모리는 스타일을 인지할 뿐, 재현하지는 못합니다
메모리(Memory) 기능은 사용자가 글을 쓰는 방식에 대해 어느 정도 파악합니다. OpenAI는 이를 "이전 대화의 컨텍스트를 지속적으로 업데이트하여 종합한 것"으로 설명하기 때문입니다. 여기서 '종합'이란 요약을 의미하며, 스타일에 대한 요약은 대개 형용사 형태로 나타납니다. 예를 들어 "간결하고 직설적인 글쓰기를 선호함"과 같은 식입니다. 이는 내 목소리에 대한 '설명'일 뿐 '명세서'가 아닙니다. 그리고 이러한 형용사들이야말로 누구나 알아차릴 수 있는 뻔하고 평범한 어조를 만들어내는 주범입니다.
또한 이를 정확히 검증할 수도 없습니다. 공식 문서에 따르면 요약본에는 "ChatGPT가 대화를 바탕으로 기억하는 모든 내용이 포함되지는 않는다"고 명시되어 있으며, 특정 내용이 저장되어 있는지 확인하려면 대화창에서 직접 물어보라고 권장합니다. 단순한 선호도를 파악하는 데는 괜찮을지 몰라도, 고유한 목소리를 구현하기에는 턱없이 부족합니다.
사람들이 흔히 시도하는 방법들
매번 샘플을 주며 "나처럼 써줘"라고 하기. 작동은 하지만 매 대화마다 토큰이 소모되며, 전적으로 사용자의 번거로운 습관에 의존해야 합니다. 이는 stopping re-explaining context to your AI에서 설명한 일종의 '비용'과 같습니다.
대화창에 스타일 가이드 문서 올리기. 샘플을 매번 붙여넣는 것보다 토큰 효율성은 좋지만, 여전히 대화마다 새로 올려야 하며, 대개 모델이 검증할 수 있는 규칙이 아니라 해석해야 하는 줄글 형태로 작성되어 한계가 있습니다.
맞춤 설정 필드에 형용사 가득 채우기. "명확하고, 매력적이며, 대화하듯 자연스럽고, 권위 있는 목소리로 써줘." 이러한 단어들은 모델이 받아들이는 의미와 사용자가 의도한 의미가 서로 다르며, 한데 섞이면 효과가 상쇄됩니다. 결국 누구나 쓰는 평범한 글이 나오는 원인이 됩니다.
스타일 전용 GPT 만들기. 꽤 괜찮은 아이디어입니다. 자신의 샘플을 지식(Knowledge)으로 등록한 맞춤형 GPT를 만드는 것이죠. 하지만 먼저 알아두어야 할 두 가지가 있습니다. GPT는 업로드된 지식을 참조용으로 사용하므로 의도대로 작동하지만, OpenAI에 따르면 "GPT는 저장된 메모리, 맞춤 설정 또는 이전 대화를 사용하지 않습니다. 각 대화는 새로 시작됩니다." 따라서 다른 개인 설정이 연동되지 않습니다. 또한 현재로서는 새로운 GPT 생성 및 게시 기능이 "Free, Go, Plus, Pro를 포함한 개인 ChatGPT 계정에서는 사용할 수 없습니다."
파인튜닝(Fine-tuning). 글쓰기 말투를 잡기에는 과도한 작업(Overkill)이며, 실제로 작업하는 ChatGPT 제품 내에서는 직접적인 도움이 되지 않습니다.
해결책: 목소리를 규칙으로 변환하고, 샘플은 검색 가능하게 보관하기
실제로 효과가 있는 방법은 '변환'입니다. 딱 한 번만 수행하면 되며, 약 30분 정도 소요됩니다. 이를 통해 두 가지 결과물을 얻을 수 있습니다. 설정 필드에 쏙 들어가는 짧은 규칙 세트와 보정을 위해 언제든 사용할 수 있는 샘플 라이브러리입니다.
단계 A — 자신의 글에서 규칙 도출하기. 복제되어도 좋을 만큼 만족스러운 글 세 편을 고르세요. 그런 다음, 출력 결과에 눈에 띄는 변화를 주는 아래 카테고리별로 규칙을 추출합니다:
- 문장 리듬. 평균 문장 길이 및 짧은 문장과 긴 문장의 혼용 여부. 예: "대부분의 문장은 20단어 이하로 작성하고, 강조를 위해 문단당 하나의 짧은 문장을 사용할 것."
- 인칭 및 관점. 1인칭 단수 또는 복수 사용 여부, 독자를 "여러분" 또는 "당신"으로 지칭할지 여부, 단정적인 주장을 할지 완곡하게 표현할지 여부.
- 완곡한 표현(Hedging) 정책. 대부분의 사람들이 작성하지 않지만 가장 큰 영향을 미치는 규칙입니다. 예: "'주목할 만하다', '거의 확실히', '많은 경우에' 같은 표현은 금지. 주장을 명확히 밝히거나 아예 삭제할 것."
- 도입부. 절대 시작할 때 쓰지 않는 방식. 예: "정의, 수사적 질문, 또는 '오늘날의…'로 시작하지 말 것."
- 구조. 헤더(소제목) 사용 여부, 문단 길이, 리스트(목록) 선호 여부 또는 기피 여부.
- 금지 어휘. 절대 사용하지 않는 특정 단어들. 모든 작가에게는 자신만의 금지 목록이 있습니다. 이를 명문화하는 것은 그 어떤 긍정적인 지침보다 가치 있습니다.
- 문장 부호 습관. 엠 대시(—), 세미콜론(;), 괄호(()) 등 사용하는 부호와 사용하지 않는 부호를 명시합니다.
- 근거 제시 스타일. 수치를 인용하는지, 본문 내에 출처를 밝히는지, 혹은 사례를 들어 논증하는지 여부.
이러한 형태의 규칙 8~12개는 1,500자 안에 충분히 들어갑니다. 그리고 형용사와 달리, 각 규칙은 실제로 준수 여부를 검증할 수 있습니다.
단계 B — 샘플을 검색 가능한 곳에 보관하기. 규칙이 80%를 해결해 준다면, 나머지 20%는 샘플이 보정해 줍니다. 단지 설정 필드에 들어가지 않을 뿐입니다. 바로 이 역할을 위해 MemoryLake가 필요합니다. 어시스턴트가 읽을 수 있는 메모리 레이어로서, 스타일 규칙, 샘플 라이브러리, 그리고 어떤 글쓰기 유형에 어떤 어조가 적용되는지에 대한 노트를 보관합니다. 설정은 세 단계로 진행됩니다.
1단계: API 키 생성하기
MemoryLake에 로그인하고 API 키를 생성합니다. 연결하는 모든 도구에서 하나의 자격 증명만 사용하면 되므로 매우 편리합니다. 글쓰기가 단 하나의 어시스턴트에서만 이루어지는 경우는 드물기 때문입니다.

2단계: 첫 번째 메모리 업로드하기
규칙 세트를 항목당 하나의 규칙으로 개별 업로드하세요. 그래야 검색 시 텍스트 뭉치가 아닌 관련 있는 규칙만 정확히 불러올 수 있습니다. 그런 다음 샘플 라이브러리를 추가하고, 각 샘플마다 그것이 무엇을 보여주는지 짧은 노트를 덧붙이세요(이 부분을 사람들이 가장 많이 생략합니다). 예: "이것은 기술 설명서용 어조입니다", "이것은 잘못된 아이디어에 반대할 때 쓰는 말투입니다". 작업마다 필요한 어조가 다르며, 라벨이 없는 샘플들은 서로 섞여 이도 저도 아닌 평범한 글로 수렴하게 됩니다.

부정적인 예시(오답 노트)도 추가하세요. 너무 뻔하게 들려서 새로 고쳐 쓴 문단과 함께 무엇이 잘못되었는지 적은 한 줄짜리 노트는, 잘 쓴 샘플 세 개보다 더 많은 것을 가르쳐 줍니다.
3단계: AI 및 에이전트 연결하기
글을 쓸 때 사용하는 도구들을 연결하세요. MemoryLake는 MCP 및 API를 통해 접근할 수 있습니다. 따라서 Claude Code, Codex, OpenClaw 같은 MCP 네이티브 에이전트는 MCP 서버를 가리켜 연결하고, 다른 어시스턴트들은 API를 통해 동일한 메모리를 읽어옵니다. 맞춤 설정 필드에는 항상 켜져 있는 레이어로서 8~12개의 규칙을 유지하고, 샘플과 어조 노트는 작업이 필요할 때 불러오도록 설정하세요.

솔직한 두 가지 한계가 있습니다. 메모리 레이어가 모델을 마법처럼 당신처럼 쓰게 만들어 주지는 않습니다. 단지 매번 다시 붙여넣고 추측하는 번거로움을 없애줄 뿐이며, 실제로 일하는 것은 여전히 당신이 작성한 규칙입니다. 또한 강제성이 있는 것은 아닙니다. 스타일 지침은 출력을 유도할 뿐, 그 어떤 어시스턴트에서도 완벽한 결과를 보장하지는 않습니다.
실제 적용 시 달라지는 점
첫 번째 초안이 내가 원하는 방향에 훨씬 가까워집니다. 완벽하지는 않더라도 훨씬 가깝습니다. 측정 가능한 차이는 편집을 얼마나 덜 하느냐에 있으며, 규칙은 모호하지 않기 때문에 샘플보다 편집 시간을 훨씬 더 많이 단축해 줍니다.
금지 사항이 실제로 준수됩니다. 대부분의 사람들에게 가장 큰 품질 향상을 가져다주는 것은 모델이 절대 사용해서는 안 되는 단어와 도입부의 구체적인 목록입니다. 형용사로는 결코 이를 달성할 수 없지만, 금지 목록은 해냅니다.
어조가 무작위로 변하지 않습니다. 라벨링된 샘플이 있으면 "기술 설명서 스타일로 작성해줘"와 "짧은 사내 공지 스타일로 작성해줘"가 동일한 어조가 아닌, 완전히 다른 결과물을 만들어냅니다.
맞춤 설정 필드가 넘치지 않습니다. 규칙은 압축적입니다. 샘플을 다른 곳에 보관하면 규칙과 다른 개인 선호도를 모두 담을 수 있는 공간이 생기므로, 하나를 위해 다른 하나를 포기할 필요가 없습니다.
다른 도구에서도 동일한 목소리를 사용할 수 있습니다. 맞춤 설정은 ChatGPT 전용이며, OpenAI에 따르면 API가 제공되지 않을 예정입니다("맞춤 설정을 위한 API는 제공되지 않을 것입니다"). 대화창에서 초안을 작성하든 코드 에디터에서 작성하든, 고유한 목소리를 그대로 유지할 수 있는 유일한 방법은 이식 가능한 스타일 레이어를 사용하는 것입니다. Claude 진영에서의 동일한 문제는 why Claude forgets your writing style에서 다루고 있습니다.
지속 가능한 스타일 설정을 위한 모범 사례
형용사가 아닌 규칙을 작성하세요. 두 사람이 당신의 지침을 읽고 서로 다른 결과물을 만들어낼 수 있다면, 그것은 아직 규칙이 아닙니다.
금지 사항부터 시작하세요. 절대 하지 않는 행동은 하는 행동보다 더 독창적이며, 모델이 따르기도 쉽습니다. 금지 목록은 모든 스타일 명세에서 가장 효율이 높은 부분입니다.
모든 샘플에 어조 라벨을 붙이세요. 라벨이 없는 라이브러리는 평균적인 결과물만 학습시킵니다. 라벨이 붙어 있어야 특정 목소리를 명확히 요구할 수 있습니다.
부정적인 예시를 보관하세요. "이것은 내가 거절한 뻔한 버전이며, 그 이유는 다음과 같다"라는 오답 노트 하나가 여러 개의 좋은 샘플보다 더 가치 있습니다.
고정된 프롬프트로 테스트하세요. 규칙을 변경할 때마다 동일한 지시문을 사용하세요. 그렇지 않으면 규칙이 도움이 된 것인지, 아니면 단순히 주제가 쉬웠던 것인지 구분할 수 없습니다.
샘플이 아닌 규칙을 반복 수정하세요. 결과물이 잘못되었을 때는 어떤 규칙이 빠졌는지 확인하고 이를 추가하세요. 샘플을 하나 더 추가하는 것으로는 반복되는 특정 문제를 해결하기 어렵습니다.
글자 수를 확인하세요. Free 및 Go는 1,500자, Plus, Pro, Enterprise, Business, Education은 5,000자입니다. 규칙은 들어가지만, 줄글은 들어가지 않습니다.
개인의 목소리와 조직의 표준을 분리하세요. 개인의 목소리와 회사의 브랜드 규칙은 소유자가 다른 별개의 문서입니다. 후자는 making ChatGPT remember your brand guidelines에 더 가깝습니다.
결론
"ChatGPT에 내 글쓰기 스타일 가르치기"는 기억력의 문제로 접근하면 실패하고, 압축의 문제로 접근하면 성공합니다. 당신의 목소리는 수백 가지의 일관되고 사소한 선택들의 집합이며, 이를 저장할 수 있는 필드는 1,500자 또는 5,000자에 불과합니다. 샘플을 그대로 붙여넣는 것은 가공되지 않은 원재료에 모든 허용 한도를 써버리고, 모델에게 매번 규칙을 새로 도출하라고 요구하는 것과 같습니다.
직접 규칙을 딱 한 번만 도출해 보세요. 리듬, 관점, 완곡한 표현 정책, 금지된 도입부, 구조, 금지 단어, 문장 부호, 근거 제시 스타일 등 테스트 가능한 8~12개의 규칙은 필드에 쏙 들어가며 일관되게 유지됩니다. 샘플과 어조 노트는 검색 가능한 레이어에 보관하고, 각각 어떤 스타일을 보여주는지 라벨을 붙인 뒤, 라이브러리가 아닌 규칙을 반복해서 다듬어 나가세요. 그렇게 해야 다음 달에도, 그리고 나중에 다른 도구로 바꾸더라도 고유한 목소리를 계속 유지할 수 있습니다. 진단 측면을 먼저 확인하고 싶다면 why ChatGPT forgets your writing style을 참고하세요.