[AI워케이션 1기 곡성] 흩어진 11.5년 디지털 흔적을 AI로 '황제실록'으로 만들었다 — 4,073일 자동 기록기

📝 한줄 요약

구글 타임라인·카카오톡·문자에 흩어져 있던 11.5년치(4,073일) 내 흔적을, AI 코딩 도구로 파싱·통합하고 하루 단위 실록체 기록 3,296편으로 자동 리라이트했습니다. 손으로는 평생 못 쓸 기록이 원클릭 캘린더 앱 안으로 들어왔고, 서로 다른 포맷에 갇혀 있던 조각들이 한 날짜로 엮이는 순간 잃어버린 지난 11년이 되살아났습니다.

바쁘시면 이것만 읽어도 돼요:

  • 뭘 했나: 스마트폰 구글 지도 내보내기(80MB, 290만 줄, 2014~2026)를 파싱해 날짜별 활동일지를 만들고, 여기에 카톡·문자를 엮어 사실/해석을 분리한 '황제실록'체 서술로 자동 변환.

  • 정량 성과: 하루 단위 기록 0건 → 4,073일 자동 생성 + 3,296편 실록 리라이트, 최종 재확인 미처리 0건.

  • 핵심 난관 1 — 데이터: 공식 Takeout은 단 1일치만 줬다. 스마트폰 앱 직접 내보내기로 우회해 11.5년치를 확보.

  • 핵심 난관 2 — 품질: "이동·지출·만난 사람 나열 + 상투적 논평"에 머물던 초기 결과를, 본기(사실)와 사관 논평(해석)을 분리하는 설계로 갈아엎음.

  • 가장 신경 쓴 것 — AI 검증: 날짜·시각·기간·건수·거리·인용을 근거 데이터와 자동 대조하는 검증 로직을 심고, false positive를 여러 차례 잡아냄. AI가 지어낸 숫자를 그냥 믿지 않았다는 게 이 프로젝트의 핵심.

  • 민감정보: 위치·대화·문자·금융성 알림이 원본이라, 처음부터 마스킹·추상화를 파이프라인 기본값으로 박아넣음.

  • 배운 교훈: 개인 데이터 자동화의 승부처는 "생성"이 아니라 "검증과 마스킹"이었다.


🎯 이런 분들께 도움돼요

이 글은 특히 이 두 분을 위해 썼습니다:

  • 흩어진 개인 기록(위치·메신저·문자)을 한데 모아 잃어버린 지난 시간을 되살리고 싶은 분 — 일기를 못 쓰는 사람일수록 효과가 큽니다. 스마트폰은 이미 당신을 몇 년째 기록하고 있으니까요.

  • AI에게 문서 정리를 맡기고 싶지만 "AI가 지어낸 내용"이 무서워 못 맡기던 분 — 이 글의 절반은 "AI가 뱉은 걸 어떻게 안 믿고 검증했나"에 대한 이야기입니다.

그리고 아래 실무자분들께도 그대로 이식됩니다(→ 🌍 섹션 참고): 개인정보·기밀이 섞인 데이터를 다루거나, "사실"과 "해석"을 분리해 기록해야 하는 분(법률·공공·상담·HR, 경위서·회의록·상담일지 등).

😫 문제 상황 (Before)

저는 일기를 거의 못 씁니다. 그런데 스마트폰은 저 대신 11년 넘게 성실히 기록하고 있었습니다. 문제는 그 기록이 사람이 읽을 수 없는 형태였다는 것.

  • 구글 타임라인 위치 기록은 위경도 숫자 덩어리였고,

  • 카카오톡·문자는 각각 다른 파일 포맷에 갇혀 있었고,

  • 이 모든 게 날짜라는 공통 축으로 엮여 있지 않았습니다.

"11.5년을 하루 단위로 정리한다"는 건 손으로는 사실상 불가능한 작업이었습니다. 4,073일을 하루 10분씩만 정리해도 680시간, 꼬박 넉 달 걸립니다. 그래서 지금까지 아무도(=저도) 손대지 못했고, 그 결과 제 과거는 검색도 회상도 안 되는 죽은 데이터로 남아 있었습니다.

결정적 계기는 어느 날 특정 과거를 되짚어 볼 일이 생겼을 때였습니다. "그게 언제였지, 그날 뭘 했더라"를 확인하려는데, 기록이 없어 아무것도 재구성할 수 없었습니다. 분명 스마트폰 어딘가엔 흔적이 있는데 꺼내 읽을 수가 없다는 그 막막함이, 미루던 일을 시작하게 만든 방아쇠였습니다.

게다가 시간이 제 편이 아니었습니다. 구글이 타임라인 정책을 바꾸면서 서버에 있던 기록은 이미 1일치로 쪼그라들었고(뒤에서 설명), 폰에 남은 11.5년치도 기기를 바꾸거나 잃어버리면 그대로 증발합니다. "지금 안 꺼내면 영영 못 꺼낸다" — 이게 이 일을 더는 미룰 수 없었던 진짜 이유였습니다.

왜 기존 방법으로는 안 됐나 (기존 대안 검토)

  1. 구글 공식 Takeout(테이크아웃)을 먼저 받아봤습니다. 그런데 구글이 타임라인을 서버 저장에서 기기 로컬 저장으로 정책을 바꾸면서, 서버 기반 Takeout에는 딱 1일치(2025-07-11~12) 데이터만 들어 있었습니다. 11.5년을 원한 사람에게 하루치는 무의미했죠.

  2. 엑셀·수작업 정리는 위에서 계산한 대로 규모 자체가 감당 불가였습니다.

  3. 예전에 비슷한 자동 요약을 시도했을 때는 결과물이 "어디 갔고, 얼마 썼고, 누굴 만났다"를 건조하게 나열하고 끝에 상투적 코멘트를 붙이는 수준이라, 다시 읽고 싶은 기록이 아니었습니다.

그리고 이 문제는 자동화·AI에 딱 맞는 성격이었습니다 — 4,073일이 똑같은 패턴의 반복이고, 위경도·시각·상호명 같은 규칙적 데이터이며, 결국 텍스트로 서술하는 일이니까요. 양이 많아 사람이 못 하고, 규칙은 코드가, 서술은 LLM이 잘하는 전형적인 영역이라 "굳이 AI?"가 아니라 "AI가 아니면 불가능"에 가까웠습니다.

즉 문제는 두 겹이었습니다 — ① 데이터를 못 모은다, ② 모아도 읽을 만하게 안 나온다. 이 프로젝트는 이 두 벽을 차례로 넘은 기록입니다.

🛠️ 사용한 도구

  • 도구: Claude Code(파싱·일지 생성 파이프라인 설계), Codex CLI(황제실록 리라이트 백엔드 실행)

  • 왜 나눴나: 한 도구로 다 하지 않았습니다. 정확한 파싱·파이프라인 설계는 Claude Code가, 수천 편의 문체 생성(대량 배치)은 Codex가 각각 더 잘하는 영역이라 판단해 강점을 분담했습니다.

  • 핵심 모델: 리라이트 백엔드는 상위 추론 모델을 reasoning effort를 최고로, 응답은 빠른 티어로 설정해 대량 배치에 맞춤

  • 데이터 소스: 구글 타임라인(스마트폰 내보내기 80.7MB), 카카오톡 대화 JSON, 문자(SMS/MMS) XML

  • 특이사항: 원본이 전부 민감정보라, 마스킹·추상화를 옵션이 아니라 기본값으로 두고 작업


🔧 작업 과정

1막. "하루치가 전부라고?" — 데이터 소스를 갈아탄 순간

처음엔 정석대로 갔습니다. 구글 테이크아웃에서 위치 기록을 받아, 원시 신호(위치 좌표·활동·와이파이 스캔)를 파싱하는 파서를 만들고 SQLite 데이터베이스에 넣었습니다. 파서는 잘 돌았습니다 — 위치 373건, 활동 3,001건이 깔끔하게 적재됐죠.

문제는 결과를 보고 나서였습니다.

날짜 범위를 확인해줘. 데이터가 며칠치나 들어온 거야?

돌아온 답은 "2025-07-11 ~ 07-12, 약 1일치". 구글 정책 변경 때문에 서버 Takeout이 껍데기만 준 것이었습니다. 여기서 포기했다면 이 프로젝트는 없었습니다.

대신 스마트폰 구글 지도 앱에서 직접 내보내기를 시도했더니, 완전히 다른 파일이 나왔습니다.

스마트폰에서 직접 내보낸 타임라인 파일을 확인해줘.

크기랑 기간, 며칠치인지 알려줘.
  • 파일 크기: 80.7MB, 무려 292만 줄

  • 기간: 2014-11-29 ~ 2026-06-28, 약 11.5년

  • 고유 날짜: 4,073일, 총 세그먼트 73,820개(장소 방문 23,518 / 이동 경로 22,468 / 활동 27,679)

요청 → 작업 → 결과 → 배운 점

같은 "구글 타임라인"인데 Takeout판과 스마트폰판은 최상위 키도, 좌표 표기법도 완전히 달랐습니다. Takeout은 정수형 좌표(원시 신호), 스마트폰판은 문자열 좌표(의미 세그먼트: 방문·경로·활동). 그래서 기존 파서를 버리지 않고, 스마트폰 포맷 전용 파서를 새로 만들어 방문·경로·활동을 각각의 테이블로 나눠 담았습니다.

배운 점: 같은 서비스라도 "어느 문으로 데이터를 꺼내느냐"에 따라 양과 형식이 하늘과 땅 차이다. 공식 경로가 막히면 대체 출구를 먼저 의심하라.


2막. 위치·카톡·문자를 '같은 날짜 서랍'에 모으다 — 세 기록의 삼각측량

타임라인만으로는 반쪽짜리였습니다. 구글 타임라인은 "어디에 있었고 얼마나 움직였나"(장소·거리)는 복원했지만, 정작 "거기서 무엇을 했나"는 비어 있었죠. 좌표는 남았는데 이야기가 없었습니다.

그래서 나머지 두 조각을 마저 데려왔습니다.

카톡 대화 내보낸 거랑 문자 내보낸 것도

날짜별로 잘라서 타임라인이랑 같은 날짜에 합쳐줘.
  • 카카오톡 대화기록: 앱에서 대화를 내보내 파일로 저장한 뒤, 날짜별로 잘라(청킹) 정리했습니다.

  • 문자(SMS/MMS): 휴대폰에서 내보내, 역시 날짜별로 분류·청킹했습니다.

핵심은 세 소스를 전부 "같은 날짜 서랍"에 나눠 담았다는 것입니다. 위치도, 대화도, 문자도 하루 단위로 정렬되니, 특정 날짜를 열면 그날의 세 기록이 한자리에 모였습니다.

그러자 서로의 결점이 메워졌습니다.

  • 타임라인은 동선(어디→어디, 몇 km)을 알려주고,

  • 카톡·문자는 그 자리에서 무슨 일이 있었는지(약속·대화·맥락)를 채워주고,

  • 특히 카드결제 알림 문자에는 방문한 상호(가게 이름)가 찍혀 있었습니다.

여기서 결정적인 장면이 나왔습니다. 카드내역의 상호명과 타임라인의 그 시각 동선을 대조하니 "이 시각, 이 좌표에 있었다 = 이 가게였다"가 딱 맞아떨어졌습니다. 서로 다른 출처가 같은 사실을 가리키자, 기록의 신뢰도가 급격히 올라갔습니다. — 이건 곧 소스끼리 서로를 자동 교차검증해준 셈입니다.

요청 → 작업 → 결과 → 배운 점

세 소스를 날짜 축으로 합치자, 좌표 덩어리였던 과거가 "언제·어디서·누구와·무엇을"이 채워진 하루로 복원됐습니다. 옛날에 갔던 장소, 자주 가던 식당, 심지어 해외여행까지 — 잊고 있던 일상이 통째로 실록의 재료가 됐습니다.

배운 점: 한 소스의 빈칸은 다른 소스가 메운다. 위치의 "어디"와 대화·결제의 "무엇"이 만나는 순간 로그는 기억이 되고, 서로 다른 출처가 겹치는 지점(카드 상호 ↔ 타임라인 동선)은 공짜 교차검증이 된다.

라이프로그 일지 스크린샷

3막. AI가 만든 첫 실록을 보고, 설계를 갈아엎다

데이터가 모이자 진짜 목표로 갔습니다 — 이 숫자 덩어리를 읽을 만한 하루 기록으로 바꾸는 것. 컨셉은 '황제실록'이었습니다. 내 하루를 임금의 하루처럼 사서(史書) 문체로 서술하는 것.

그런데 초기 결과물이 딱 "그저 그런 자동 요약"이었습니다. 어디 갔고, 얼마 쓰고, 누굴 만났는지 단순 열거한 뒤 끝에 상투적 논평을 붙이는 식. 여기서 방향을 크게 틀었습니다.

실록을 사실과 해석으로 분리해줘.

'본기'에는 근거가 있는 사실만 쓰고,

상상·풍자·통찰·비유는 맨 끝 '사관은 논한다' 논평 문단에만 넣어.

이 한 줄이 결과물의 격을 바꿨습니다.

  • 본기(本紀): 그날의 장소·이동·지출·대화·알림을 근거 기반 사실만으로 서술.

  • 사관은 논한다: 해석·비유·통찰은 오직 여기에만. (기존의 사신은 논한다 표현도 사관은 논한다로 통일)

  • 페르소나: 생존 인물의 실제 문체를 모방하지 않고, 기능적 페르소나만 적용 — 냉정한 앵커형, 문명비평가형, 사마천형, 소설가형.

  • 기록 주체: 나를 항상 상(上)으로만 지칭. 실명, "사용자", 대명사 "그"는 검증으로 차단.

실제로 이렇게 나옵니다 (2024년 어느 하루, 마스킹본):

총 이동 77.6km · 14곳 방문(17시간)

상은 오전 10시 10분 자전거로 나아가 개포로에 이르고, 지하철을 이어 타 종로를 거쳐 11시 36분 서울역사박물관에 들어갔다. 앞서 인물3이 그곳에 있겠다고 알렸고, 상은 짧게 응답하였다.

상은 낮에 스타벅스에 머문 뒤 대성집(미쉐린가이드 도가니탕)에 들렀고, 사직로 골목을 지난 다음 2시간 39분 동안 9.3km를 걸었다. 저녁에는 커피스트와 Wooh Ahh Craft Beer Bar에 들렀으며, 밤에는 지하철과 자전거를 이어 타고 트레이더스 위례점에 갔다가 22시 18분 집에 들었다. 이날 총 이동 거리는 77.6km였다.

금전 기록에는 00시 44분 2,500원 결제 알림이 있고, 인물3과의 사이에 송금·수취 알림이 여러 차례 이어졌다.

통신에는 국군의 날 교통통제 예고, 방문 일정 변경 알림, 등록 사건 알림, 공연 예매 완료 알림이 섞여 있었다. 인물2가 건강·의료에 관한 개인적 사정을 청하였고, 상은 세부를 옮기지 않은 채 문서와 절차의 관점에서 답하였다.

사관은 논한다. 이동은 길고, 알림은 촘촘하며, 돈의 오감도 여러 번 맞추었다. 누가 무엇을 맡고 어디서 확인할 것인가. 절차가 일의 뼈대다.

한 편 안에 설계가 전부 담깁니다 — 본기(사실)는 시각·장소·거리·금액 같은 근거만 서술하고, 해석은 오직 마지막 "사관은 논한다" 한 문단에만. 실명은 인물2·인물3으로, 나는 으로, 민감한 건강 얘기는 "세부를 옮기지 않은 채"로 추상화됩니다. 그리고 이 하루 안에 타임라인 동선 + 카드결제 알림 + 카톡 송금이 자연스럽게 한 흐름으로 엮여 있죠.

한국어 텍스트가 있는 페이지

요청 → 작업 → 결과 → 배운 점

"사실과 해석을 섞지 말라"는 원칙 하나로, AI의 창의성은 논평 문단이라는 우리(cage) 안에서만 풀어놓게 됐습니다. 덕분에 본문은 신뢰할 수 있고, 읽는 재미는 마지막 문단이 책임지는 구조가 됐습니다.

배운 점: AI에게 "잘 써줘"가 아니라 "사실은 여기, 상상은 저기"라고 자리를 지정해주면, 환각이 갈 곳을 미리 가둘 수 있다.


4막. 진짜 승부처는 '생성'이 아니라 '검증'이었다 ⭐

이 프로젝트에서 시간을 가장 많이 쏟은 곳은 글을 뽑는 부분이 아니라, AI가 뽑은 글이 사실인지 확인하는 부분이었습니다. 개인 기록은 숫자 하나만 틀려도 "가짜 기억"이 되니까요.

AI가 만든 실록이 근거 데이터랑 실제로 맞는지

자동으로 검증하게 해줘. 틀리면 걸러내.

그래서 리라이트 결과를 원본 근거와 대조하는 검증 장치를 여러 겹 심었습니다.

  • 시각 표현: '오전/오후', '12:09', '0시 9분' 같은 서로 다른 표기를 근거 시각과 대조.

  • 기간 표현: 시각의 '분' 성분과 실제 체류 시간(duration)을 혼동하지 않도록 구분.

  • 건수 표현: 본문에 나온 개수를 근거 데이터의 카운트 값과 대조.

  • 거리 표현: '총 이동거리'와 '구간별 이동거리'를 구분해 검증.

  • 인용 검증: 대화 원문을 길게 직접 인용하지 못하도록 제한.

여기서 흥미로운 반전이 있었습니다. 검증기가 너무 깐깐해서 멀쩡한 문장을 오탐(false positive) 하는 일이 반복됐고, 그걸 여러 차례 잡아 완화했습니다. 마지막 버그는 특히 기억에 남습니다 — Urban's Court라는 표현의 아포스트로피(')를 긴 인용부호로 오인해 정상 문장을 계속 막던 문제였죠. 이걸 고치고 나서야 마지막 한 편이 통과됐습니다.

요청 → 작업 → 결과 → 배운 점

검증을 켜자 처음엔 통과율이 나빴지만, 오탐을 하나씩 교정하면서 "믿을 수 있는 자동 기록"에 가까워졌습니다. 그리고 문법 검사와 자체 테스트를 통과시킨 뒤, 논평 표지(사신은 논한다 등)가 남아 있는지 전수 검색해 0건을 확인했습니다.

배운 점: AI 자동화의 신뢰도는 생성 프롬프트가 아니라 검증 규칙의 촘촘함에서 나온다. 그리고 검증기도 코드라서, 검증기 자신의 버그까지 잡아야 완성된다.


5막. "매번 서버 켜기 귀찮아" — 원클릭 캘린더 앱으로

기록이 쌓여도 매번 개발 서버를 띄우고 브라우저 주소를 입력해야 본다면, 결국 안 보게 됩니다. 그래서 열람 경험까지 손봤습니다.

매번 서버 띄우고 [localhost](http://localhost) 접속하는 게 번거로워.

클릭 한 번으로 켜지는 앱처럼 만들어줘. 다크/라이트 모드도.

월간·주간 캘린더 뷰를 만들고, 클릭 한 번으로 실행되는 앱 래퍼로 감쌌습니다. 처음 만든 라이트/다크 모드가 육안으로 차이가 거의 없길래, 라이트 모드의 배경·카드·헤더·요일 영역 색상 대비를 다시 분명하게 조정했습니다.

배운 점: 자동화의 마지막 1cm는 "얼마나 쉽게 다시 열어보게 만드느냐"다. 여기서 막히면 그동안의 작업이 전부 서랍 속으로 들어간다.


6막. 3,296편을 한 번에 — 그리고 멈춰도 이어달리게

마지막은 전체 적용이었습니다. 카톡 개인/소수 지인방은 근거로 통합하되 오픈채팅·서비스성 알림은 우선순위를 낮추거나 제외하고, 민감 주제는 원문을 복원하지 않고 추상 요약 수준으로만 쓰도록 못 박은 뒤 전량 리라이트를 돌렸습니다.

  • 전체 대상 3,296편

  • 1차 완료 3,293편, 실패 3편

  • 재시도로 2편 해결, 마지막 1편은 위의 아포스트로피 버그를 고친 뒤 정상 저장

  • 최종 재확인: 미처리 0건

대량 실행이라 중간에 멈출 위험이 있어서, 2건씩 배치 처리 + 타임아웃 시 단건으로 후퇴 + 실패분 재시도 + 이미 성공한 건 건너뛰고 재개하는 안전장치를 넣었습니다. 실제로 한도(rate limit)에 걸리면 5분 뒤 재개, 그래도 안 되면 다시 5분 뒤 재개하는 운영 규칙까지 정해뒀습니다. 다행히 최종 실행은 한도 없이 완주했고, 타임아웃은 단건 후퇴로 회복됐습니다.

배운 점: 수천 건 배치의 핵심은 속도가 아니라 "중단돼도 처음부터 다시 안 하게" 만드는 재개 설계다.


그리고 — 잃어버린 11년이 되살아난 순간

기술적으로 가장 뿌듯했던 건 검증기를 다듬은 순간이었지만, 개인적으로 가장 뭉클했던 건 따로 있었습니다.

앞서 2막에서 세 기록을 같은 날짜 서랍에 모았을 때, 결과물로 그 진가가 드러났습니다. "2019년 그날, 나는 여기 있었고(타임라인) / 이 사람과 이런 얘길 나눴고(카톡) / 이 가게에서 카드를 긁었다(문자)"가 한 페이지에 나란히 서자, 기억에서 지워졌던 특정 하루가 통째로 되살아났습니다. 옛날에 갔던 장소, 자주 가던 식당, 해외여행까지 — 단순한 데이터 통합이 아니라 잃어버린 줄도 몰랐던 지난 11년을 실록으로 되찾은 경험이었습니다.

한국의 어느 도시의 위치를 ​​보여주는 지도

배운 점: 개인 데이터의 가치는 각 소스에 있는 게 아니라 "엮이는 축(날짜)"에 있다. 흩어져 있으면 로그, 엮이면 기억이다.


✅ 결과 (After)

Before vs After

항목

Before

After

하루 단위 기록

0건 (11.5년간, 사실상 불가능)

4,073일 자동 활동일지 + 3,296편 실록체 서술

데이터 확보

공식 Takeout 1일치만 제공

스마트폰 내보내기로 11.5년(80.7MB) 확보

데이터 통합

위치·카톡·문자가 각각 다른 앱·포맷에 흩어짐

3개 소스를 날짜별 청킹 후 통합(삼각측량)

기록의 깊이

타임라인만 있어 "어디"는 알아도 "무엇을"은 공백

카톡·문자·카드내역으로 "무엇을"까지 복원

서술 품질

이동·지출·사람 단순 나열 + 상투적 논평

본기(사실)/사관 논평(해석) 분리된 읽을 만한 기록

열람 방식

없음 / 80MB JSON 직접 뒤지기

원클릭 캘린더 앱(월간·주간, 다크/라이트)

미처리

0건 (3,293 1차 + 3건 재시도로 전부 해결)

결과물 (동작 증거)

말이 아니라 실행 로그로 남은 증거들입니다.

  • 파싱 로그: Positions 373 / Activities 3001 / Place Visits 9 정상 적재 확인

  • 스마트폰 데이터: 4,073 고유 날짜 / 73,820 세그먼트 집계 확인

  • 리라이트 로그: 3293 rewritten, 3 invalid → 재시도 후 최종 summary targets=0(미처리 0)

  • 검증: 문법 검사 통과, 자체 테스트 통과, 논평 표지 전수 검색 0건

  • 교차검증: 카드결제 문자의 상호명 ↔ 타임라인 동선이 같은 시각·좌표에서 일치 — 서로 다른 출처가 같은 사실을 가리킴

지금도 쓰고 있습니다. 완성 후 서랍에 넣어둔 게 아니라, 주기적으로 캘린더 앱을 열어 옛날 특정 날짜를 되짚어 봅니다. 원클릭 앱으로 만든 게 결정적이었습니다 — 매번 서버를 켜야 했다면 진작 안 봤을 겁니다.

주변 반응도 있었습니다. 여자친구는 결과물을 보더니 "이거 나한테도 알려줘"라고 했고, 어느 모임에서 만난 분은 이 작업물을 보고 깜짝 놀라며 방법을 꼭 알려달라고 카카오톡으로 따로 부탁해 왔습니다. 제 데이터라 남이 직접 써본 건 아니지만, "나도 만들고 싶다"는 반응은 이 방식이 개인적 취미를 넘어 남에게도 통한다는 신호였습니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. 한 소스의 빈칸은 다른 소스로 메워라(삼각측량). 타임라인의 "어디"에 카톡·문자의 "무엇"을 날짜 축으로 합치니 반쪽짜리 기록이 온전해졌습니다. 게다가 카드내역 상호명과 동선이 겹치면 공짜 교차검증까지 됩니다.

  2. "사실은 여기, 상상은 저기"로 자리를 지정하라. 본기와 논평을 물리적으로 분리하니 환각이 갈 곳이 논평 문단으로 제한됐습니다. AI의 창의성을 죽이지 않으면서 본문 신뢰도를 지키는 방법.

  3. 검증을 프롬프트가 아니라 규칙으로 심어라. 날짜·시각·기간·건수·거리·인용을 근거와 자동 대조하게 하니, "그럴듯한 거짓말"이 걸러졌습니다.

  4. 대량 작업엔 재개 설계를 먼저. 실패분만 건너뛰고 이어달리는 구조 덕에 수천 건을 안전하게 완주했습니다.

  5. 공식 경로가 막히면 대체 출구를 의심하라. Takeout 1일치 → 스마트폰 내보내기 11.5년치. 데이터의 문은 하나가 아니었습니다.

이렇게 하면 안 돼요 (실제로 겪은 함정)

  1. AI가 뱉은 숫자를 그냥 믿기. 시각·건수·거리는 서로 다른 값을 헷갈리기 쉽습니다(분 성분 vs 체류시간, 총거리 vs 구간거리). 반드시 근거와 대조하세요.

  2. 검증기를 만들고 방심하기. 검증기도 코드라 오탐을 냅니다. Urban's Court의 아포스트로피를 인용부호로 오인해 멀쩡한 문장을 계속 막았습니다. 검증기 자신의 버그까지 잡아야 끝납니다.

  3. 마스킹을 나중에 하기. 위치·대화·문자는 태생이 민감정보라, 마스킹·추상화를 처음부터 기본값으로 두지 않으면 나중에 통째로 다시 돌려야 합니다.

  4. 열람 편의를 무시하기. 매번 서버 켜야 보는 결과물은 결국 안 보게 됩니다. "다시 여는 마찰"을 0에 가깝게 만드세요.

🌍 다른 업무에 적용한다면?

이 프로젝트의 진짜 자산은 '실록'이 아니라 "흩어진 데이터를 → 날짜 축으로 통합 + 사실·해석 분리 서술 + 자동 검증 + 마스킹으로 정리하는 파이프라인" 자체입니다. 저는 두 방향 모두로 실제 확장을 고려하고 있습니다.

① 개인 영역으로 더 넓히기 (실제 다음 계획)

  • 사진·가계부·건강기록까지 같은 날짜 축에 합류: 위치·카톡·문자에 사진(어디서 뭘 봤나), 가계부(그날 뭘 샀나), 건강 앱(수면·걸음)을 얹으면, 하루의 복원도가 로그에서 장면으로 올라갑니다. 검증·마스킹 부품은 그대로 두고 "근거 소스"만 추가하면 됩니다.

② 업무 문서로 옮기기 (직무 이식)

  • 법률·공공기관 문서 정리: 사건 경위서·회의록·상담일지를 ① 사실 요약(근거 인용 대조)② 의견·해석으로 분리 서술하고, 실명·연락처·기관명을 자동 마스킹하며, 날짜·금액·인용의 정확도를 근거 문서와 대조 검증. "AI가 지어낸 사실"이 치명적인 분야일수록 이 구조가 강력합니다.

  • 고객 상담/CS 로그 아카이브: 메신저·통화·티켓을 날짜·고객 축으로 통합하고, 개인정보는 추상 요약으로만 남긴 뒤 "무슨 일이 있었나(사실) / 무엇을 개선할까(해석)"를 분리 기록.

  • 왜 이식이 되나: 이 사례에서 실제로 작동한 네 부품 — 날짜 축 통합, 사실/해석 분리, 근거 대조 검증, 마스킹 기본화 — 은 데이터 종류(위치든 대화든 사진이든 법률 문서든)와 무관하게 재사용됩니다. 바꿔야 할 건 "근거 데이터의 필드 이름"뿐입니다. 실제로 위치→카톡→문자로 소스를 늘릴 때 이 부품들을 그대로 재사용했습니다.

솔직한 재현 난이도 & 전제조건

과장 없이 말씀드리면, 이건 "복붙 한 번으로 끝"은 아닙니다. 층을 나눠 보면:

  • 🟢 대화형 AI(ChatGPT·Claude)만으로 오늘 당장 되는 것: 위 재사용 프롬프트 2개(사실/해석 분리 서술 + AI 자가검증). 내 데이터 한 조각을 붙여넣기만 하면 됩니다. 비개발자도 즉시 가능.

  • 🟡 AI 코딩 도구가 필요한 것: 11.5년치 대량 파싱·날짜별 청킹·자동 검증 파이프라인은 Claude Code·Codex 같은 도구(+약간의 스크립트)가 필요합니다. 순수 비개발자라면 이 부분을 AI 코딩 도구에 통째로 맡기거나, 규모를 "최근 몇 달"로 줄여 시작하길 권합니다.

  • 필요 준비물: 스마트폰 타임라인 내보내기, 카톡·문자 내보내기, AI 코딩 도구 접근(유료 구독 포함 가능).

  • 안 맞는 경우(비적용): 실시간 대응이 필요한 업무, 근거 데이터가 아예 없는 순수 창작, 소스가 한 종류뿐이라 교차검증이 불가능한 경우엔 이 방식의 강점(삼각측량·검증)이 약해집니다.

  • 조직으로 키우려면: 개인은 이대로 충분하지만, 팀·조직 규모로 올리면 데이터 접근 권한·보안 규정·마스킹 수준 합의가 기술보다 먼저 필요합니다.

🚀 앞으로의 계획

  • 사진 EXIF 결합(여행일지): 위치 기록에 사진 촬영 시각·좌표를 얹어, 인터랙티브 지도가 있는 여행일지로 확장.

  • 검색·질의 연동: 4,073일 기록을 자연어로 "2019년 여름에 자주 가던 곳은?"처럼 물어볼 수 있게 Wiki/검색과 연결.

  • 마스킹 정책 고도화: 외부 공유를 전제로, 민감 주제 추상화 수준을 사용자가 선택할 수 있게.

  • 방법 전파: 지금 이 글이 첫 공유입니다. 나아가 "나도 알려달라"던 여자친구·모임 지인에게 따라 할 수 있는 방법(이 글의 재사용 프롬프트 + 데이터 내보내기 순서)을 정리해 전수할 계획입니다.

📋 재사용 가능한 프롬프트

아래 프롬프트는 대화형 AI(Claude, ChatGPT 등)에 복붙해서 바로 쓸 수 있습니다. [대괄호] 부분만 본인 상황에 맞게 바꾸세요.

프롬프트 1: 개인/업무 데이터를 '사실 ↔ 해석' 분리해 서술시키기

아래 [데이터 종류: 예) 하루치 위치·대화 기록 / 회의록 / 상담 로그]를 읽고 하나의 기록으로 정리해줘.

규칙:

  1. [사실 섹션 이름: 예) 본기] 에는 근거가 있는 사실만 써라. 원본에 없는 내용은 추측해서 쓰지 마라.

  1. 상상·해석·비유·평가는 오직 맨 끝 [논평 섹션 이름: 예) 총평] 문단에만 써라.

  1. 인물은 [지칭 방식: 예) 실명 대신 이니셜]로만 부르고, [마스킹 대상: 예) 전화번호·기관명·금액]은 가리거나 추상화해라.

  1. 대화 원문을 길게 직접 인용하지 말고, 요지만 요약해라.

  1. 문체는 [원하는 톤: 예) 담담한 앵커 / 냉정한 비평가] 하나로 일관되게.

프롬프트 2: AI가 만든 요약의 '사실 정확도'를 스스로 검증시키기

방금 네가 작성한 [결과물: 예) 하루 기록]을 아래 [근거 데이터]와 대조해서 사실 오류가 있는지 자가 점검해줘.

다음 항목을 각각 O/X로 판정하고, X면 근거의 실제 값을 함께 제시해라:

  1. 시각: 본문에 쓴 시간이 근거의 시각과 일치하는가 (오전/오후, 표기법 혼동 주의)

  1. 기간: '몇 시 몇 분'과 '얼마나 머물렀는지(체류 시간)'를 혼동하지 않았는가

  1. 건수: 본문의 개수가 근거 데이터의 실제 카운트와 같은가

  1. 금액/수치: [핵심 수치: 예) 지출액·거리]가 근거와 일치하는가 (합계 vs 구간 구분)

  1. 인용: 원문에 없는 말을 지어내 인용하지 않았는가

판정이 모두 O가 될 때까지 본문을 고쳐 다시 제시해라. 근거가 없으면 지어내지 말고 "확인 불가"로 표기해라.


추천 이미지:

  • "결과 (After)" 섹션: 완성된 원클릭 캘린더 앱의 월간 뷰(다크/라이트 모드 나란히) 스크린샷 — 4,073일이 캘린더에 채워진 전경.

  • "2막 — 삼각측량" 섹션: 같은 날짜에 타임라인 동선 + 카톡 + 카드결제 문자가 나란히 놓인 화면, 또는 카드 상호명↔타임라인 좌표가 일치하는 대조 장면. ※ 마스킹 필수.

  • "4막 — 검증" 섹션: 리라이트 로그 3293 rewritten, 3 invalid 또는 최종 summary targets=0 터미널 화면.

  • "3막" 섹션: 실제 생성된 '황제실록' 하루 기록 예시(본기 + 사관은 논한다 문단이 분리된 화면). ※ 게시 전 반드시 실명·지명·대화 내용 마스킹.

2
1개의 답글

뉴스레터 무료 구독