메뉴
문화

블로그 주소로 문체를 배우게 할 수 있을까

· 6분 · 홍마초

물방울 마스코트가 색이 다른 노트 다섯 권을 돋보기로 살피며 가운데 새 노트에 글을 쓰는 그림
목차
  1. 개요
  2. 블로그 주소로 배우게 하려면
  3. 문체 프로필에 담는 것
  4. 다섯 블로그를 묶으면
  5. 옮기지 않은 패턴
  6. 수집과 측정에서 막힌 곳
  7. 남은 일

개요

저희는 회사 블로그 글을 AI 코딩 도구 Claude Code의 글쓰기 스킬(작업 절차를 적어 둔 지침 파일)로 쓰는데, 이 스킬 하나가 조사부터 교정까지 맡습니다.

다만 그렇게 쓴 글은 문장과 문단이 길었습니다. 참고할 블로그도 글 한 편보다 주소로 주고 배우게 하고 싶었습니다.

그래서 블로그 주소를 주면 그곳의 글 짜임과 문체를 프로필로 배우는 문체 학습 모드를 더했습니다. 국내 기술 블로그 다섯 곳을 묶은 프로필도 만들었는데, 이 글이 그 프로필로 쓴 첫 시험입니다. 기존 글 두 편은 평균 문장이 68자와 63자로, 묶음 프로필의 50자보다 길었습니다.

블로그 주소로 배우게 하려면

이 스킬은 원래 회사 사이트 저장소 안에 있어서 사이트 작업 세션에서만 부를 수 있었습니다. 저희는 플랫폼(여러 앱이 같이 쓰는 공용 작업 저장소)에서 작업한 뒤 바로 블로그를 쓰는 일이 많습니다. 그때마다 사이트 세션으로 옮겨 가는 것이 아쉬워서, 스킬을 플랫폼 플러그인으로 옮겨 어느 세션에서나 부르게 했습니다.

옮기는 김에 글 자체도 더 잘 쓰게 하고 싶었는데, 스킬에는 문장 호흡을 재는 스크립트 check-rhythm.py가 이미 있었습니다. 평균 문장 길이와 40자 미만 문장 비율, 짧은 문장이 연달아 끊기는 구간을 셉니다. 11월 6일에 저희 글이 뚝뚝 끊긴다고 느껴 원인과 결과를 연결 어미로 잇는 규칙을 만들었는데, 이 스크립트가 그 규칙을 지켰는지 봅니다.

수치만으로는 좋은 글이 어떤 모양인지 알 수 없어서, 저희가 원하는 형식으로 쓰는 블로그 주소를 주면 글을 어떻게 짜고 어떤 문체를 쓰는지 배우게 하고 싶었습니다.

그전에 11월 6일과 7일에 올린 기술 글 두 편을 재 보니 평균 문장이 68자와 63자였고, 40자 미만 문장은 22%와 19%였습니다.

문체 프로필에 담는 것

문체 학습 모드에 블로그 주소를 주면 스킬은 글을 쓰지 않고 그 블로그의 문체 프로필만 만듭니다. 먼저 최근 글 8~15편을 모으는데, 공지와 채용 공고, 행사 안내는 빼고 웨이브웍스 글과 가까운 주제를 먼저 고릅니다.

모은 글은 check-rhythm.py로 잽니다. 평균과 중앙 문장 길이, 40자 미만 비율, 문단당 문장 수, 어미 비율, 글당 문장 수가 나옵니다.

수치가 나오면 Claude의 Opus 모델을 쓰는 보조 에이전트(주 작업과 따로 한 가지 일을 맡는 AI 작업자)가 글을 읽습니다. 도입, 구성, 문장, 증거, 정성 신호, 마무리, 피하는 것의 일곱 항목으로 패턴을 적습니다.

두 편 이상에서 반복되는 패턴만 남기고, 항목마다 근거가 된 글 제목을 두 편 이상 붙입니다. 결과는 프로필 보관 폴더 styles/에 블로그 이름으로 저장합니다.

다른 회사의 글을 모아 두면 저작권 문제가 생기지 않을까요? 프로필에는 원문 문장을 옮기지 않고, 패턴은 설명으로 적으며 근거는 글 제목과 주소로만 남깁니다. 예문은 웨이브웍스의 사실로 새로 쓰고, 모은 원문은 작업용 임시 폴더에만 두고 저장소에 커밋하지 않습니다.

글을 쓸 때는 요청에 문체: <이름>을 붙입니다. 그러면 집필 지시에 그 프로필의 패턴과 예문이 들어가고, 교정 단계에서 쓴 글의 수치를 프로필과 비교합니다. 25% 넘게 차이 나면 “차이 큼”으로 표시하고, 일곱 항목도 하나씩 대조합니다.

다만 프로필이 바꾸지 못하는 것도 정해 두었습니다. 사이트 글의 어미(합니다체)와 주어(“저희”), 사실 규칙, 공개 적합성은 어느 프로필을 써도 그대로인데, 사이트 글끼리 말투가 섞이지 않게 하려는 것입니다.

프로필 수치는 목표 범위이고, “차이 큼”이 나와도 소리 내어 읽었을 때 자연스러운지가 우선합니다.

프로필과 별개로, 글을 쓰기 전 같은 주제 글의 구성과 내용을 확인하는 단계도 손봤습니다. 한국어 회사 기술 블로그 글은 velopers.kr(국내 회사 기술 블로그 글을 모아 의미 검색을 제공하는 사이트)에서 먼저 찾습니다. 검색 결과가 서버에서 그려져 있어 스크립트로 바로 읽힙니다.

다섯 블로그를 묶으면

첫 프로필은 토스 테크로 만들었습니다. RSS(블로그가 새 글 목록과 본문을 기계가 읽는 형식으로 내보내는 주소)에 본문 전체가 있어서, 최근 20편 가운데 제품·디자인·도구·일하는 방식을 다룬 12편을 그대로 썼습니다.

한 곳으로 만들고 나니 참고할 블로그를 여러 곳 주고 싶어졌습니다. 그래서 블로그를 여러 곳 주면 블로그마다 프로필을 만들고, 이를 합친 묶음 프로필을 하나 더 만들게 했습니다. 블로그당 글 수는 8~10편으로 맞춰 한 곳이 수치를 끌고 가지 않게 했습니다.

묶음 패턴을 정할 때는 보조 에이전트에게 원문 없이 블로그 프로필만 주고, 두 곳 이상에 있는 공통 패턴과 한 곳에만 있는 블로그별 패턴으로 나누게 합니다. 서로 부딪치는 패턴은 둘 다 적고, 웨이브웍스 글에 맞는 쪽과 이유를 한 줄로 고릅니다.

묶은 곳은 토스 테크, 카카오 테크, 우아한형제들 기술블로그, 당근 테크, 뱅크샐러드 블로그이고, 수치에 쓴 글은 48편입니다.

블로그별 평균 문장 길이는 4656자로 비슷했습니다. 어미는 합니다체 57%, 해요체 34%였는데 해요체는 대부분 토스(79%)와 당근(88%)에서 나왔습니다. 글당 문장 수 중앙값은 113개지만 블로그별로는 61228개로 크게 갈렸습니다.

다섯 곳 모두에서 나온 흐름은 기존 방식과 문제, 첫 시도, 한계, 바꾼 방식과 이유, 결과, 대가와 남은 일 순서였습니다. 검토했다 버린 대안과 이유를 적는 것, 얻은 것 뒤에 치른 대가와 남은 한계를 따로 두는 것도 다섯 곳 모두에 있었습니다. 처음 생각이 틀렸다고 따로 밝히는 글은 네 곳에서 나왔습니다.

부딪치는 패턴도 있었습니다. 카카오와 당근은 인사로 시작하고 우아한형제들은 인사 없이 시작하는데, 저희는 인사 없는 쪽을 골랐습니다. 토스와 당근의 해요체와 카카오·우아한형제들의 합니다체 가운데는 합니다체를 골랐습니다.

소제목은 토스처럼 한 단계 4~8개로 두고, 구현 글마다 코드를 넣는 네 곳 대신 토스처럼 핵심 하나만 넣기로 했습니다. 마무리는 질문 목록(토스), 요약과 배운 점(카카오·뱅크샐러드), 다짐(우아한형제들), 채용 안내(당근)로 갈렸습니다. 저희는 배운 점 한두 문장 뒤에 남은 일과 다음 행동을 두는 쪽으로 정했습니다.

저희 기존 글 두 편은 이 묶음과 비교하면 네 수치 가운데 앞의 셋이 “차이 큼”이었습니다.

수치 묶음 프로필(48편) 11월 6일 글 11월 7일 글 이 글
평균 문장 길이 50자 68자 63자 53자
중앙값 45자 69자 63자 52자
40자 미만 문장 40% 22% 19% 27%
문단당 문장 수 2.4 3.2 2.9 2.3
합니다체 57% 100% 100% 98%

옮기지 않은 패턴

공통 패턴 48개 가운데 38개를 쓰고 10개는 옮기지 않음으로 표시했습니다. 웨이브웍스 사이트 규칙과 부딪쳤기 때문입니다.

번호 붙인 소제목과 두 단계 소제목, 결론을 문장으로 단 소제목, “마치며” 절, 개인 1인칭이 그렇습니다. 글 전체 요약 문단과 다짐 문단, 채용 안내도 옮기지 않았고, 감사 인사는 1인 회사라 감사할 동료가 없어 뺐습니다.

도입의 범위 문장은 프로필 쪽도 고쳐야 했습니다. 다섯 블로그 모두 도입에서 “이 글에서는 ~“으로 다룰 범위를 밝히는데, 이 문장은 웨이브웍스 사이트에서 쓰지 않기로 한 문장입니다. 처음 만든 블로그 프로필들의 예문과 규칙에 이 문장이 들어가 있어서 모두 고쳤고, 그 자리는 기술 글 맨 위의 “개요” 절이 맡게 했습니다.

수집과 측정에서 막힌 곳

블로그 주소 하나로 본문이 바로 모일까요? 수집 경로는 다섯 곳이 제각각이었습니다. 우아한형제들과 당근(Medium)은 RSS에 본문 전체가 있어 그대로 받았습니다.

카카오 테크는 화면을 자바스크립트로 그려서 페이지 HTML에 본문이 없었습니다. 그래서 사이트가 글을 불러올 때 쓰는 글 API(프로그램끼리 데이터를 주고받는 주소, JSON 형식)로 본문을 받았습니다. 뱅크샐러드는 글 페이지 HTML에서 본문 영역만 잘라 썼고, 확인한 경로는 문서에 적어 다음에 다시 찾지 않게 했습니다.

측정에서는 다시 잰 일이 두 번 있었습니다. 뱅크샐러드 첫 측정에서 어느 어미에도 속하지 않는 “기타” 문장이 28%로 나왔습니다. 원인은 공유하기 버튼 글자와 연관 글 목록, 날짜 줄 같은 본문 밖 요소가 섞인 것이어서, 잘라내고 다시 재니 12%가 됐습니다.

어미 분류 스크립트는 “~죠”로 끝나는 문장을 해요체로 세지 않고 있었습니다. 분류식을 고치고 모든 프로필 수치를 다시 쟀는데, 토스의 해요체 79%는 고친 뒤 값입니다.

남은 일

이 글이 묶음 프로필로 쓴 첫 글이고, 교정 뒤 같은 스크립트로 재니 평균 문장 53자, 문단당 2.3문장으로 묶음 프로필에 가까워졌지만, 40자 미만 문장은 27%로 40%에 못 미쳐 “차이 큼”이 나왔습니다. 원인과 결과를 한 문장에 잇는 저희 규칙을 지키면서 짧은 문장을 늘리는 방법은 아직 찾는 중입니다. 글이 읽기 좋아졌는지는 아직 측정 전입니다. 다음 글들에서 이 수치가 유지되는지부터 확인하려고 합니다.

이번 작업에서 수치는 측정 범위가 조금만 틀려도 크게 달라졌습니다. 본문 밖 요소가 섞이자 기타 어미가 28%로 나왔고, 분류식 하나가 빠지자 해요체 비율이 달라졌습니다. 그래서 프로필 수치를 쓰기 전에 무엇을 쟀는지 먼저 확인하게 됐습니다.

다른 블로그의 글 짜임을 빌리려면 원문 대신 패턴과 근거 글 제목만 남긴다는 기준부터 정해 두는 것을 권합니다.

블로그 목록으로