본문으로 건너뛰기

개발자의 일기 쓰는 법

👀

일기를 쓰게 된 계기
#

21년 즈음부터 일기를 꾸준히 쓰기 시작했다

처음 목적은 연애였다. 여자친구가 재밌는 얘기를 해달라고 하면 바로 생각이 안나기 때문에 그때그때 재밌었던 일을 미리 적어놓고 그걸 말해주기 위해서였다.

이후에는 우울했던 내 감정들을 미리 적어놓기 위해서도 쓰기도 했다

또 일기가 숙제처럼 느껴지면 쓰기 싫어져서 쓰고 싶은 날만 쓰기로 했다

지금은 어쩌다보니 딱히 숙제처럼 느껴지지 않기도 하고 재밌어서 맨날 쓰기도 하고 꽤나 길게 쓰지만 예전에는 “오늘도 헬스장 가서 운동했다” 정도의 간단한 일기 정도만 쓰기도 했다

사용했던 일기 플랫폼들
#

해마일기
#

처음에는 해마일기를 사용했다

당시에는 여러 기능이 있는것보다는 간단히 쓸 수 있고 디자인이 귀여운 걸로 선택했다

5가지 종류의 기분 아이콘을 고를 수 있었는데 동그라미가 웃거나 울거나 하고 있어서 귀여웠다

과금 정책도 마음에 들었는데 월 구독이 아니고 3300원? 정도를 내면 평생 쓸 수 있었다

다만 일기 어플 특성 상 쓰는 사람만 쓰기 때문에 새로운 유입이 생기기는 어려운데, 나중에는 서버비가 부족했는지 업데이트를 하지 않은 듯 하다

많은 서비스들이 월 구독 정책을 사용하는 이유를 알 것 같은 기분이랄까

21년부터 23년 10월까지 사용했는데, 그동안 썼던 일기의 pdf 추출이 안된다는 리뷰들이 많아서 다른 플랫폼으로 갈아탔다

다행히 추출이 가능했어서 갈아타기 전에 한번 추출할 수 있었다

하루콩
#

이후에 사용한 것은 하루콩이다

역시나 디자인이 귀엽기도 하고 지인이 블루시그넘에 다니고 있었기에 사용했다

해마일기와의 차이점이라면 frontmatter를 더 많이 설정할 수 있다는 점이다

운동 집안일 등을 설정할 수 있었는데

필드 내에서 항목을 추가하거나 안 보고 싶은 필드는 숨기는 등 어느 정도 커스텀도 가능했다

또 서버비를 위해 구독 외에도 유료 상품들이 좀 있었는데 콩의 디자인을 바꿀 수 있는 테마들이 있었다

엄청 귀엽진 않아서 테마는 구입하진 않았다

사실 구독을 안하고도 사용할 수 있었어서 구독도 안했다

그렇게 24년까지 사용하다가 아래의 불편함을 느끼고 노션으로 넘어갔다

  • frontmatter의 필드를 더 커스텀하고 싶었으나 그런 기능이 없었다. 아마도 정신건강 데이터로 활용하기 위해 일부 필드만 추가했을 것으로 보인다. 당시 러닝 기록을 일기에 숫자로 기록하고 싶은 욕구가 있었어서 아쉬웠다.
  • 작성하다가 다른 어플을 보다가 다시 접속하면 작성하던게 날아가는 버그가 있었다 러닝 기록을 보러 운동 어플을 갔다오면 날아가서 허탈했던 기억이 많다.
  • 검색 기능이 별로였던 것 같다. 나중에 RAG를 구축하면서 느낀거지만 검색이라는게 참 어렵다는 걸 알게 됐다.
  • 예전 일기를 보기가 어려웠다. 자주 보지는 않지만 일기의 목적은 예전 일기 보면서 그땐 그랬지 하는 재미가 있어야 한다고 생각하는데 그게 어려워서 아쉬웠다
  • 문서 추출 기능이 없었다. 예전 일기 보는 목적으로 문서 추출이라도 해볼까 했는데 공식적으로 백업 기능은 지원하지 않는다고 한다. 하루콩 자체적으로 백업을 잘 하니 상관없을거라는 이유. 이걸 알고나서 서둘러서 다른 플랫폼으로 갈아탔는데 더 많아지면 캡처로라도 저장하는 번거로움이 더 커질 것이기 때문이었다.

다행히 일기 하나하나 이미지로 저장하는 기능은 있어서 수작업으로 하나하나 저장한 뒤에 지웠다

노션
#

이후에 선택한 것은 노션이다
노션을 선택한 이유는 다음과 같다

  • 노션 DB는 커스터마이징이 매우 자유로웠다. 때문에 러닝 기록이나 수면시간 등을 작성할 수 있었다. 그 외에도 만난 사람이나 아침 점심 저녁 메뉴 등도 적었다.
  • PC + 핸드폰 모두 사용할 수 있고 동기화가 쉽다. 노션 앱을 사용하면 바로 핸드폰에서도 작성이 가능했다.
  • 이미지 첨부가 가능하다. 하루콩에서도 있던 장점인데 하루콩은 무료판에서는 최대 3개의 이미지만 첨부할 수 있지만 노션은 내가 원하는만큼 이미지를 첨부할 수 있었다.
  • 오프라인 모드로도 사용이 가능했다.

그렇게 노션은 26년 1월까지 사용하다가 옵시디언으로 넘어갔다. 노션을 사용하면서 불편했던 점들은 아래와 같다.

  • 노션도 검색이 별로였다. 노션 검색이 구린건 회사에서도 널리 알려진 사실이었는데, 특정 키워드로 검색해도 나오지 않는 경우가 많았다.
  • 로딩이 너무 길었다. 나는 일기를 밤에 몰아서 쓰기보다 그때그때 생각나는 감정을 다 적는 편이라 자주 들어가야했는데 긴 로딩이 불편했다.

다행히 노션은 export 기능이 잘 되어있어서 옵시디언으로 migration하는 것이 어렵지 않았다.

옵시디언
#

일기 검색을 잘 되게 할 수는 없을까 하다가 요새 LLM이 있으니 AI한테 검색을 맡기면 되지 않을까 싶었다.

그러다 찾아본 것이 RAG였고 일기 파일이 어느정도 정형화된 텍스트 파일이면 충분히 가능하다는 결론을 내렸다. 마크다운에서는 frontmatter를 설정할 수 있었기 때문에 마크다운을 다루는 아주 빠른 툴인 옵시디언을 사용했다.

예전에 개발 기록 용으로 옵시디언을 찍먹했어서 익숙했다. 여담이지만 그때는 정리를 위한 정리를 하느라 결국 정리는 하나도 못하고 대차게 실패했다.

옵시디언은 모바일로도 사용 가능했고, 오프라인 모드로도 가능하며 매우 빠르다는 장점이 있었다.

다만 옵시디언을 사용하기 위해서 한가지 챌린지가 있었다.

termux 이용 PC와 모바일 간 일기 동기화
#

PC로도 일기를 쓰고 폰으로도 일기를 쓰기 때문에 두 저장소 간 동기화가 필요했다.

obsidian 자체적으로도 동기화를 제공하지만 유료 기능이고, 사람들은 git을 주로 사용했다. 심지어 옵시디언 plugin 중 git extension을 사용하면 모바일에서 git UI를 확인할 수 있어서 편했다. 현재 작성 중인 블로그도 모바일로 작성하고 해당 extension을 사용해서 관리하고 있다.

그래서 먼저 일기도 모두 git repo로 옮겨서 관리하기로 했다. 그런데 한가지 문제가 있었는데, 옵시디언에서 git UI가 안 뜨는 것이다. 아예 고장났나 했는데 한참 기다리면 뜨는걸 보니 로딩이 느린 거였다.

찾아보니 git은 파일이 많으면 다 검사하고 인덱싱하느라 느리다고 한다. 21년부터 일기를 썼으니 1000개가 넘는 일기 파일이 있어서 느린게 당연했다.

다른 방법이 없을까 찾다가 안드로이드 쉘에서 cron으로 git pull, push하는 방법이 있다는걸 찾았다.

obsidian 커뮤니티 플러그인 git은 native git이 아니라 자바스크립트 기반이라 파일이 많을때 상대적으로 느리지만 터미널에서 실행하면 native git이기 때문에 훨씬 빠르다고 한다.

그래서 폰에 termux를 설치하고 아래의 스크립트를 cron으로 실행했다.

#!/data/data/com.termux/files/usr/bin/bash

VAULT_PATH="$HOME/storage/shared/obsidian"
REPO_PATH="$VAULT_PATH/log"

cd "$REPO_PATH" || exit 1

git pull

if [ -n "$(git status -u --porcelain)" ]; then
    git add .
    git commit -m "Auto sync $(date '+%Y-%m-%d %H:%M:%S')"
    git push origin master
    echo "Git push: $(date)"
else
    echo "No change: $(date)"
fi

termux를 배터리 최적화 해제하니 계속 도는 것 같은데 가끔 termux가 꺼지는지 접속해보면 cron이 사라져있어서 한번씩 crond로 다시 키는 번거로움 정도만 감내하면 상당히 만족스러운 결과였다.