Codex와 Obsidian으로 기술 블로그 글쓰기

저는 글 쓰는 것을 좋아합니다. 정확히 말하면, 주기적으로 글을 쓰지 않으면 안 되는 정도입니다. 주로 일기를 쓰면서 생각을 정리하고, 기술적으로 새로 배운 내용은 따로 노트에 적어두곤 했습니다.

그래서 늘 블로그를 만들어서 글을 조금 더 체계적으로 관리해야겠다고 생각했습니다. 하지만 막상 블로그를 만들어두면 글을 잘 올리지 않게 되었고, 결국 없앴다가 다시 만들었다가를 반복했습니다.

제가 글을 주기적으로 쓰면서도 업로드를 하지 않았던 이유는 단순했습니다. 기술 글은 웹에 올리는 순간 책임감이 생긴다는 부담이 있었습니다. 잘못된 내용을 쓰면 어떡하지, 너무 대충 쓴 글처럼 보이면 어떡하지, 이 정도 내용이 블로그에 올릴 만한가 같은 생각들이 계속 따라왔습니다.

그런데 이제는 AI의 발전 덕분에 정말로 블로그를 다시 시작할 때가 됐다고 느꼈습니다.

왜 다시 Jekyll 블로그였을까?

저는 커스터마이징이 가능한 GitHub Pages 기반 Jekyll 블로그를 항상 먼저 떠올렸습니다. 다만 직접 블로그를 만들어야 한다는 점과, 게시글 관리가 생각보다 번거롭다는 점이 걸렸습니다.

하지만 지금은 에이전트 시대입니다. 제가 원하는 조건을 정리해서 요청하니 하루 만에 제 상상 속에 있던 블로그에 가까운 형태를 만들 수 있었습니다. 게시글 관리 역시 에이전트가 도와주니 이전보다 훨씬 간편해졌습니다.

제가 원했던 조건은 비교적 명확했습니다.

  • 카테고리 페이지가 있을 것
  • 한국어와 영어 글을 토글할 수 있을 것
  • GitHub Pages로 배포할 수 있을 것
  • 글을 Markdown으로 관리할 수 있을 것

아직 블로그는 조금씩 수정해가는 중입니다. 다음 목표는 Google Search Console에 등록하고, SEO 관련 설정을 정리하는 것입니다.

글 작성은 Obsidian에서 시작합니다

다음은 실제 글을 작성하는 과정입니다.

예전 같았다면 초안을 쓰고, 하나하나 검색해서 내용을 확인하고, 다시 문장을 다듬고, 최종 검토를 한 뒤에야 글을 올렸을 것입니다. 하루 종일 걸리는 작업이었을지도 모릅니다. 하지만 GPT와 Codex가 있는 이상, 이제 모든 과정을 혼자 붙잡고 있을 필요는 없어졌습니다.

저는 Obsidian과 Codex를 함께 사용해서 글을 작성하고 수정하는데, 꽤 괜찮은 방법이라고 생각해 공유하고자 이번 글을 작성합니다.

먼저 Obsidian에 blog 폴더를 만들고, 그 안에 다음과 같은 하위 폴더를 둡니다.

blog/
  raw/
  editing/
  published/

각 폴더의 역할은 단순합니다.

  • raw/: 아직 다듬지 않은 초안을 둡니다.
  • editing/: Codex가 수정 중인 글을 둡니다.
  • published/: 최종적으로 블로그에 올린 글을 보관합니다.

처음에는 raw/에 글의 얼개와 넣고 싶은 내용을 편하게 작성합니다. 이 단계에서는 문장 완성도보다 생각을 빠르게 적어두는 것이 중요합니다. 문체가 조금 거칠어도 괜찮고, 문단 순서가 완벽하지 않아도 괜찮습니다.

그다음 Codex에 blog 폴더를 프로젝트로 추가합니다. Codex는 raw/에 있는 글을 editing/으로 복제한 뒤, 수정본을 작성합니다. 이때 저는 Codex에게 문체, 오탈자, 구조, Markdown 형식, 내용 검토를 맡깁니다. 말하자면 저만의 편집자처럼 사용하는 셈입니다.

최종적으로 블로그에 업로드할 글은 editing/에서 확인한 뒤 published/로 옮깁니다. 그러면 editing/은 항상 현재 수정 중인 글만 남는 작업 공간이 됩니다.

AGENTS.md로 편집 규칙을 정합니다

이 과정에서 가장 중요한 파일은 AGENTS.md입니다.

blog/ 폴더에 AGENTS.md를 추가해두면, Codex가 글을 편집할 때 따라야 할 규칙을 미리 정해둘 수 있습니다. 예를 들어 저는 다음과 같은 원칙을 적어두었습니다.

# AGENTS.md

- Codex는 블로그 글의 시니어 편집자이자 에디터로 동작한다.
- 원문의 핵심 내용과 의도를 보존한다.
- 글은 한국어 존댓말로 친절하고, 프로페셔널하고, 심플하게 작성한다.
- raw/와 published/ 안의 글은 직접 수정하지 않는다.
- raw/의 글을 편집할 때는 먼저 editing/으로 복제한다.
- 모든 수정은 editing/ 안의 복제본에서만 수행한다.
- 이미지 링크는 Obsidian에서 확인 가능한 Markdown 상대 링크로 정리한다.

이렇게 규칙을 정해두면 매번 같은 설명을 반복하지 않고 ‘글을 수정해줘’ 라고 간단히 요청하면 됩니다. 특히 raw/, editing/, published/의 역할을 명확히 정해두면 원본 초안을 실수로 수정하는 일을 줄일 수 있습니다.

각자 블로그 운영 방식이 다르기 때문에 AGENTS.md의 내용은 상황에 맞게 조정하면 됩니다. 중요한 것은 “Codex가 어떤 역할을 해야 하는지”와 “어떤 파일을 수정해도 되는지”를 명확히 알려주는 것입니다.

Jekyll 블로그에 업로드하기

글 수정이 끝나면 이제 블로그에 업로드할 차례입니다.

저는 개인 GitHub Pages 블로그 저장소도 Codex 프로젝트로 추가해두었습니다. 그런 다음 게시글이 저장되는 폴더에 글을 옮기고, 블로그의 Jekyll 형식에 맞게 front matter와 이미지 경로를 수정해달라고 요청합니다.

대략적인 흐름은 다음과 같습니다.

  1. editing/에서 최종 글을 확인합니다.
  2. 블로그 저장소의 _posts 또는 해당 게시글 폴더로 글을 옮깁니다.
  3. Jekyll front matter를 블로그 형식에 맞게 정리합니다.
  4. 이미지 경로가 실제 배포 환경에서 잘 동작하는지 확인합니다.
  5. 로컬에서 build를 실행해 문제가 없는지 봅니다.
  6. 필요하다면 영어 버전 글도 번역해서 생성합니다.

처음 한 번은 본인만의 방식대로 글을 추가하고 배포하는 과정을 채팅으로 진행해보는 것이 좋습니다. 이후 Codex에게 “방금 진행한 글 포스팅 플로우를 정리해서 AGENTS.md에 적어줘”라고 요청하면, 다음부터는 훨씬 안정적으로 반복할 수 있습니다.

글을 올리는 부담이 줄었습니다

이 방법을 사용하면서 글을 업로드하는 부담이 크게 줄었습니다.

의식의 흐름대로 빠르게 초안을 작성하면, 오탈자와 문체는 기존 규칙대로 수정됩니다. 제목을 추천해주고, 글을 소제목별로 나눠주고, Markdown 문법에 맞게 정리해줘서 최종 글의 가독성도 훨씬 좋아졌습니다.

내용에 대한 확신이 없을 때도 검증을 요청할 수 있다는 점이 좋습니다. 물론 최종 책임은 글을 올리는 저에게 있지만, 혼자서 모든 문장을 붙잡고 고민하는 것보다는 훨씬 효율적입니다.

그렇다면 이 글은 GPT가 쓴 글일까?

그렇다면 제 글은 GPT가 쓴 글이 되는 걸까요?

저는 아니라고 생각합니다. 저는 이 글을 작성할 때 “Codex와 Obsidian으로 기술 블로그 작성하는 법에 대한 블로그 글을 작성해줘”라고 요청하지 않았습니다. 제가 선택한 주제가 있었고, 제가 생각한 논리와 맥락이 있었고, 제가 말하고 싶은 주장이 있었습니다.

GPT와 Codex는 그 글의 형식적인 부분을 읽기 좋게 다듬었을 뿐입니다. 제 사용 방식에서 AI는 작성자라기보다 편집자에 가깝습니다.

AI Slop인 글과 아닌 글의 차이는 여기에 있다고 생각합니다. 그 글에 작성자의 생각과 경험이 담겨 있는가. 이 조건을 만족한다면 문장 정리, 구조화, 오탈자 수정 같은 부분에서 도움을 받는 것은 충분히 괜찮지 않을까요?

코딩에도 비슷하게 적용할 수 있다고 생각합니다. 이 코드를 왜 이렇게 설계했는지 알고 있는가. 그 이유를 설명할 수 있다면, 에이전트의 도움을 받았더라도 그 코드는 여전히 내가 만든 코드에 가깝습니다. 에이전트는 제 생각을 대신하는 도구가 아니라, 제가 이미 가진 설계와 의도를 더 빠르고 정확하게 구현하도록 도와주는 도구이기 때문입니다.

최근 글

  1. 에이전틱 코딩 Codex와 Obsidian으로 기술 블로그 글쓰기
  2. 에이전틱 코딩 디자인 지식이 없는 개발자가 AI로 일관된 UI를 만드는 방법
  3. 행사 AWS Unicorn Day Seoul 2026 후기
  4. 데이터 엔지니어링 스파크를 다루는 기술 3: 런타임, 스케줄링, 실시간 처리 예제
  5. 데이터 엔지니어링 스파크를 다루는 기술 2: 파티셔닝과 셔플링 이해하기
  6. 데이터 엔지니어링 스파크를 다루는 기술 1: MapReduce에서 RDD까지
  7. 머신러닝 검색 결과의 순위를 계산하는 법: Learning to Rank
  8. 머신러닝 NLP 훑어보기: TF-IDF부터 Transformer까지
  9. 머신러닝 Self-Attention Encoding and Pooling으로 살펴보는 화자 인식