최근 티스토리에서 구글 블로거로 글을 옮기는 이전을 진행하고 있다. 그동안 정성 들여 쌓아온 소중한 기록들을 그대로 옮기는 작업이다 보니 신경 쓸 부분이 한두 가지가 아니었다. 특히 가장 큰 고민은 기존에 작성했던 원본 게시 날짜를 어떻게 그대로 보존하느냐 하는 문제였다.
단순히 글을 복사해서 새 플랫폼에 등록하면 발행일이 모두 오늘로 일괄 지정되어 버린다. 수년간 공들여 작성한 IT 기록들의 시간 순서가 뒤죽박죽 엉망이 되는 상황을 막아야 했다. 다행히 API 호출 방식을 조금 튜닝하면 과거 날짜 그대로 글을 올릴 수 있는 방법을 찾아내어 직접 적용해 보았다.
Blogger API의 published 필드와 RFC 3339 규격
구글 블로거 API 문서를 꼼꼼하게 들여다보던 중 아주 반가운 해결책을 발견했다. API 포스트 생성 페이로드에 published라는 필드를 지정하면 원하는 시점으로 발행 일자를 강제 설정할 수 있었다. 이것이 바로 내가 그토록 찾던 Blogger 백데이팅 발행의 핵심 키였다.
하지만 마냥 순탄치만은 않았다. 이 published 필드는 단순한 문자열이 아니라 RFC 3339라는 엄격한 시간 규격을 요구했다. 티스토리 백업 데이터에서 추출해 구글 스프레드시트에 임시로 정리해 둔 날짜 형식은 2025-06-21 22:14:19 같은 일반적인 형태였기에 이를 API 규격에 맞게 깔끔하게 변환해야 하는 숙제가 생겼다.
함수 파라미터 확장과 날짜 변환 로직 구현
가장 먼저 기존에 작성해 두었던 블로거 자동 등록 함수인 publishToBloggerMig의 파라미터를 수정했다. 기존의 (title, content, labels) 구성에서 원본 날짜를 직접 전달받을 수 있도록 origDate 파라미터를 추가하여 publishToBloggerMig(title, content, labels, origDate) 형태로 확장했다.
그다음으로는 스프레드시트의 날짜 데이터를 RFC 3339 표준 규격으로 변환하는 처리기를 구축했다. 시트에서 읽어온 2025-06-21 22:14:19 포맷의 텍스트를 파싱하여 중간에 구분자 T를 넣고 한국 표준시 기준 시차인 +09:00을 덧붙여 2025-06-21T22:14:19+09:00 형태로 안전하게 가공해 냈다.
runMigration 실행부 연동과 최종 성공
실제 이전을 담당하는 메인 루프 함수인 runMigration() 코드도 나란히 손을 봐주었다. 시트의 각 행을 돌면서 데이터를 읽어올 때 새로 추가한 원본 날짜 컬럼 정보인 row[COL.ORIG_DATE] 값을 누락 없이 정확히 읽어오도록 매핑 경로를 잡아주었다.
그리고 이 읽어온 오리지널 타임스탬프 값을 방금 수정한 발행 함수로 자연스럽게 토스하도록 코드를 연결했다. 마침내 모든 수정을 마치고 스크립트를 구동하자 타임라인 왜곡 없이 예전 티스토리 시절 날짜 그대로 구글 블로거에 차곡차곡 이전 글들이 발행되는 놀라운 광경을 목격할 수 있었다.
수년간 기록해 온 개발 일지의 역사가 훼손되지 않고 온전히 보존된 채 새 보금자리로 옮겨간 모습을 보니 십년감수한 기분이 든다. API 문서를 꼼꼼히 확인하고 날짜 포맷을 정밀하게 변환해 주는 작업은 다소 번거로웠지만 블로그의 정체성인 시간의 기록을 지키기 위해서는 절대 타협할 수 없는 값진 과정이었다.