Rain Lag

단 하나의 파일로 하는 습관 기록: 조용히 코딩 하루를 바꾸는 작은 텍스트 로그

하나의 일반 텍스트 파일만으로 강력하면서도 마찰이 거의 없는 습관 추적기를 만드는 방법을 알아보세요. 생산성 앱에 지치지 않고, 개발자로서 매일을 조금씩 더 좋게 만들고 싶을 때 딱 맞는 방식입니다.

단일 파일 습관 트래커: 코딩 하루를 조용히 개선하는 작은 텍스트 로그 만들기

대부분의 개발자는 습관 관리 앱을 최소 세 개쯤은 써 봤을 겁니다.

반짝이는 새 앱을 설치하고, 설정을 만지고, 연속 기록(스트릭)에 집착하다가… 두 주쯤 지나 조용히 안 쓰게 됩니다. 기능은 화려했지만, 꾸준함은 그렇지 않았던 거죠.

그보다 더 조용하고 오래 가는 대안이 있습니다. 단 하나의 일반 텍스트 파일입니다.

UI도 없고, 알림도 없고, 클라우드 동기화 문제도 없습니다. 그냥 프로젝트 폴더나 홈 디렉터리에 놓인 habits.txt(혹은 log.txt) 하나가, 실제로 당신의 코딩 하루를 만드는 습관들을 묵묵히 기록해 줄 뿐입니다.

이 글에서는 이 작은 텍스트 파일 하나를 가벼운 습관 트래커로 쓰는 방법, 왜 개발자에게 특히 잘 맞는지, 그리고 이것을 초보자 친화적인 코딩 사이드 프로젝트로 확장하는 방법까지 정리해 보겠습니다.


왜 텍스트 파일 하나가 그렇게 잘 작동할까

플레인 텍스트 습관 트래커는 너무 단순해 보입니다. 그런데 바로 그 단순함 때문에 잘 작동합니다.

핵심 장점:

  • 학습 비용 제로 – 타이핑만 할 줄 알면 됩니다. 온보딩도, 문서도 필요 없습니다.
  • 에디터 무관 – Vim, VS Code, 메모장, 휴대폰 메모 앱 등 어떤 환경에서도 동작합니다.
  • 동기화 스트레스 없음 – 텍스트 파일은 작고 가벼워서 Git, Dropbox, Syncthing, 이메일 등으로 손쉽게 동기화할 수 있습니다.
  • 미래 호환성 – 플레인 텍스트는 20년 후에도 그대로 읽을 수 있습니다. 독점 포맷 걱정이 없습니다.

무엇보다 중요한 건: 가장 좋은 습관 시스템은 기능이 많은 시스템이 아니라, 실제로 꾸준히 쓰게 되는 시스템이라는 점입니다. 텍스트 파일은 마찰을 크게 줄여서, “실제로 쓰는 것”이 충분히 가능해지게 만들어 줍니다.


무엇을 기록할까: 이진 습관과 측정 가능한 지표

단일 파일 트래커에는 크게 두 가지 타입의 기록을 섞어서 넣을 수 있습니다.

  1. 이진(Binary) 습관 — 했는가, 안 했는가?

    • 예: ✅ Deep work session / ❌ Deep work session
    • 예: code_review: done
  2. 측정 가능한 지표(Metrics) — 수치로 관리하고 싶은 것들

    • 예: coding_minutes: 120
    • 예: weight: 72.4kg
    • 예: sleep_hours: 7.5

두 가지를 한 파일에 섞으면:

  • 단순 습관에서는 빠른 "체크박스" 감각을 얻고
  • 수치형 지표에서는 추세를 볼 수 있는 데이터를 얻게 됩니다.

어느 한 스타일만 고집할 필요도 없습니다. 파일은 신경 쓰지 않습니다. 이 유연함 덕분에 텍스트 기반 시스템은 미래에도 계속 쓸 수 있는 형태가 됩니다.

  • 다음 달부터는 분(minute) 대신 뽀모도로(Pomodoro) 횟수를 기록하고 싶나요? 라벨만 바꾸면 됩니다.
  • 이번 주는 머지된 PR 개수를 추적하고 싶나요? 새로운 라인 타입을 하나 추가하면 됩니다.

DB 마이그레이션도, “커스텀 필드” UI도 필요 없습니다. 그냥 텍스트 한 줄을 더 쓰면 끝입니다.


마찰을 최소화하는 단순한 포맷

포맷은 예측 가능해야 하지만, 너무 빡빡하게 고정되어 있지는 않아야 합니다.

다음과 같은 간단한 패턴이 꽤 잘 작동합니다.

2025-01-05 [x] Deep work (90 min) [ ] Exercise coding_minutes: 150 reading_minutes: 30 notes: Finished API pagination; need tests for edge cases. 2025-01-06 [x] Deep work (60 min) [x] Exercise coding_minutes: 90 weight: 72.3 notes: PR #42 merged. Investigate intermittent CI failure.

왜 이 방식이 좋은가:

  • 날짜를 헤딩처럼 – 하루에 섹션 하나라서 한눈에 훑기 쉽습니다.
  • 대괄호 체크박스[x], [ ]는 눈에 잘 띄고, grep 같은 도구로 검색하기도 좋습니다.
  • 키: 값 형식의 지표 – 사람도, 나중에 스크립트도 둘 다 읽기 편합니다.
  • 자유로운 notes: 필드 – 체크박스에 담기지 않는 맥락을 남길 수 있습니다.

전통적인 todo.txt 스타일을 좋아한다면 이렇게 변형할 수도 있습니다.

2025-01-05 +habit [x] Deep work (90) @focus 2025-01-05 +habit [ ] Exercise @health 2025-01-05 +metric coding_minutes:150 2025-01-05 +note Finished API pagination; need tests for edge cases.

어떤 스타일이든 상관 없습니다. 다만 다음을 만족해야 합니다.

  • 생각 없이도 새로운 항목을 계속 추가할 수 있고
  • 훑어보기가 빠르며
  • 원한다면 나중에 스크립트나 간단한 도구로 파싱할 수 있어야 합니다.

이 작은 파일이 코딩 하루를 바꾸는 방식

1. 자연스럽게 메모 습관이 붙는다

파일이 항상 거기, 에디터에 열려 있으니 다음 같은 일들을 더 자주 하게 됩니다.

  • 지금 뭘 시작하는지 적기: notes: Begin refactoring user service
  • 무엇이 깨졌는지 남기기: notes: Test suite failing after new dependency
  • 어떤 결정을 했는지 기록하기: notes: Chose approach B for caching layer

시간이 지날수록 이 파일은 **조용히 작업 일지(work journal)**로 변합니다.

  • 기능 하나에 실제 얼마나 걸리는지 보이기 시작하고
  • 왜 그런 설계를 선택했는지 기억할 수 있고
  • 패턴이 보입니다. (예: “잠을 줄인 다음 날은 항상 하루 종일 꼬이는구나”)

습관 추적은 단순히 “코딩을 했냐 안 했냐”를 넘어서, 어떤 코딩 하루였는지, 왜 그렇게 되었는지를 이해하는 일에 가깝습니다.

2. 습관과 결과를 연결해 준다

습관과 지표를 한 파일에 섞어 두면, 자연스럽게 이런 것들을 발견하게 됩니다.

  • deep work가 많았던 날 → 코드 라인 수나 머지된 PR이 늘어남
  • 잠이 짧았거나 운동을 거른 날 → notes: got stuck류의 메모가 많아짐

화려한 AI나 분석 대시보드가 필요 없습니다. 그냥 스크롤하며 로그를 읽다 보면:

  • 집중에 도움이 되는 것
  • 매번 일을 꼬이게 만드는 것
  • 실제로 유지할 가치가 있는 습관이 무엇인지

이런 것들이 자연스럽게 보입니다.

3. “생산성 앱 피로감”을 줄인다

핵심 추적이 텍스트 파일에 자리 잡으면 더 이상 이런 것들을 쫓지 않게 됩니다.

  • 완벽한 스트릭 그래프
  • Hacker News에 막 올라온 최신 습관 앱
  • 쓰다가 어느 날 조용히 깨져 있는 복잡한 자동화

대신 초점은 다음으로 옮겨집니다.

  • 실제로 그 행동을 하는 것
  • 기록하는 것
  • 워크플로를 조금씩 개선하는 것

생산성 앱 햄스터 바퀴에서 내려와, 기능과 디자인이 아니라 명료함과 실행을 선택하는 셈입니다.


이것을 코딩 프로젝트로: Python으로 CLI 습관 트래커 만들기

코딩을 막 배우는 중이거나, 가벼운 사이드 프로젝트를 찾고 있다면 이 단일 파일 트래커는 커맨드라인(CLI) 습관 트래커로 키우기 좋은 기반입니다.

왜 입문자에게 좋은가

다음과 같은 것들을 연습할 수 있습니다.

  • 파일 다루기 – 텍스트/CSV 파일 읽고, 추가 기록하고, 덮어쓰기
  • 커맨드라인 인자 처리argparsesys.argv 사용해 보기
  • 데이터 파싱 – 한 줄을 쪼개고, 날짜를 처리하고, 간단한 포맷을 다뤄 보기
  • 실전 워크플로 – 실제로 매일 쓰는 도구를 직접 만들어 보기

간단한 프로젝트 로드맵

  1. 일주일 정도는 수동으로 habits.txt에 기록해 봅니다.

  2. Python으로 작은 CLI를 설계해 봅니다.

    # 습관 완료 표시 python habit.py done "Deep work" --minutes 90 # 지표 기록 python habit.py metric coding_minutes 150 # 오늘 로그 보기 python habit.py today
  3. 내부 저장 형식은 CSV나 텍스트 중 하나를 고릅니다.

    • 옵션 A: 사람이 읽기 좋은 habits.txt를 그대로 소스 오브 트루스로 사용
    • 옵션 B: 구조화된 데이터는 data.csv, 일기 성 메모는 notes.txt 처럼 분리
  4. 시간이 지나면서 작은 기능들을 차근차근 추가합니다.

    • habit.py week → 최근 7일 요약 출력
    • habit.py streak "Deep work" → 해당 습관의 연속 기록 계산
    • README나 위키에 붙여 넣을 수 있는 마크다운 표 출력

GUI도, 데이터베이스도 필요 없습니다. 플레인 텍스트를 읽고 쓰는 작은 스크립트들이면 충분합니다. 튜토리얼만 보고 끝나는 토이 앱보다, 이렇게 매일 직접 쓰는 도구를 만들어 보는 편이 훨씬 많은 것을 배우게 됩니다.


이 시스템을 꾸준히 유지하는 실전 팁

단일 파일 트래커를 초반 열정기 이후에도 계속 쓰려면 다음을 시도해 보세요.

  1. 파일을 항상 눈에 띄게 두기

    • 에디터에서 핀(Pin) 해 두기
    • IDE 워크스페이스에 추가해 두기
    • 홈 디렉터리나 dotfiles에 두기: ~/habits.txt
  2. 고정 체크포인트를 정해 기록하기

    • 하루 시작: 오늘 날짜 헤더 만들기
    • 딥워크 블록 하나 끝날 때마다: 분 수 + 짧은 메모 남기기
    • 하루 마무리: 남은 습관들을 완료/미완료 표시, 한 줄 회고 쓰기
  3. 처음에는 2–3개 습관만

    • 예: Deep work, Exercise, Sleep >= 7h
    • 기록이 자동으로 손에 익었다고 느끼기 전까지 더 늘리지 마세요.
  4. 비어 있는 날도 괜찮다고 받아들이기

    • 공백인 날도 데이터입니다.
    • 몇 날 며칠 빼먹었다고 억지로 과거를 “채워 넣지” 말고, 그냥 오늘부터 다시 시작하세요.
  5. 포맷은 천천히 다듬기

    • 태그가 필요해지면 라인 끝에 @tag를 붙입니다.
    • 프로젝트 구분이 필요하면 proj: api-refactor 처럼 접두사를 붙입니다.
    • 매주 포맷을 갈아엎지 말고, 실제 필요가 생길 때 조금씩 진화시키세요.

결론: 작고, 심심해 보이지만, 놀라울 만큼 강력한 도구

플레인 텍스트 파일 하나로는 디자인상을 받기 어렵습니다. 푸시 알림도, 예쁜 원형 그래프도, 삶을 게임처럼 만들어 주는 기능도 없습니다.

하지만 이 파일은:

  • 화려한 앱들이 사라진 뒤에도 여전히 그 자리에 있을 것이고
  • 다음 달에 무엇을 추적하고 싶든, 그대로 모양을 바꿔 줄 수 있고
  • 당신의 습관뿐 아니라 그 뒤에 숨은 이야기와 맥락까지 함께 담아 줄 것이며
  • 코딩 하루를 조금씩 더 나은 방향으로 은근하게 밀어 줄 것입니다.

만약 각종 생산성 도구를 시도했다가 포기하는 사이클에 지쳤다면, 가장 작은 대안을 한번 실험해 보세요.

  1. habits.txt 파일을 만듭니다.
  2. 오늘 날짜를 적습니다.
  3. 습관 2–3개와 지표 하나를 적습니다.
  4. 하루를 보내며 틈틈이 업데이트합니다.

이 파일이 천천히 당신의 신뢰를 얻도록 두세요. 그리고 나중에 여기에 무언가를 더 얹고 싶어지면—Python CLI, 요약 스크립트, 시각화 도구 등—이미 잘 작동하고 있는 기반 위에 코드를 쌓게 될 것입니다.

가장 강력한 시스템은 항상 기능이 가장 많은 시스템이 아닙니다. 하나의, 심심해 보일 정도로 단순하지만 믿을 수 있을 만큼 안정적인 텍스트 파일 안에 전부 들어갈 수 있는 시스템일 때도 많습니다.

단 하나의 파일로 하는 습관 기록: 조용히 코딩 하루를 바꾸는 작은 텍스트 로그 | Rain Lag