단 하나의 파일로 하는 습관 기록: 조용히 코딩 하루를 바꾸는 작은 텍스트 로그
하나의 일반 텍스트 파일만으로 강력하면서도 마찰이 거의 없는 습관 추적기를 만드는 방법을 알아보세요. 생산성 앱에 지치지 않고, 개발자로서 매일을 조금씩 더 좋게 만들고 싶을 때 딱 맞는 방식입니다.
단일 파일 습관 트래커: 코딩 하루를 조용히 개선하는 작은 텍스트 로그 만들기
대부분의 개발자는 습관 관리 앱을 최소 세 개쯤은 써 봤을 겁니다.
반짝이는 새 앱을 설치하고, 설정을 만지고, 연속 기록(스트릭)에 집착하다가… 두 주쯤 지나 조용히 안 쓰게 됩니다. 기능은 화려했지만, 꾸준함은 그렇지 않았던 거죠.
그보다 더 조용하고 오래 가는 대안이 있습니다. 단 하나의 일반 텍스트 파일입니다.
UI도 없고, 알림도 없고, 클라우드 동기화 문제도 없습니다. 그냥 프로젝트 폴더나 홈 디렉터리에 놓인 habits.txt(혹은 log.txt) 하나가, 실제로 당신의 코딩 하루를 만드는 습관들을 묵묵히 기록해 줄 뿐입니다.
이 글에서는 이 작은 텍스트 파일 하나를 가벼운 습관 트래커로 쓰는 방법, 왜 개발자에게 특히 잘 맞는지, 그리고 이것을 초보자 친화적인 코딩 사이드 프로젝트로 확장하는 방법까지 정리해 보겠습니다.
왜 텍스트 파일 하나가 그렇게 잘 작동할까
플레인 텍스트 습관 트래커는 너무 단순해 보입니다. 그런데 바로 그 단순함 때문에 잘 작동합니다.
핵심 장점:
- 학습 비용 제로 – 타이핑만 할 줄 알면 됩니다. 온보딩도, 문서도 필요 없습니다.
- 에디터 무관 – Vim, VS Code, 메모장, 휴대폰 메모 앱 등 어떤 환경에서도 동작합니다.
- 동기화 스트레스 없음 – 텍스트 파일은 작고 가벼워서 Git, Dropbox, Syncthing, 이메일 등으로 손쉽게 동기화할 수 있습니다.
- 미래 호환성 – 플레인 텍스트는 20년 후에도 그대로 읽을 수 있습니다. 독점 포맷 걱정이 없습니다.
무엇보다 중요한 건: 가장 좋은 습관 시스템은 기능이 많은 시스템이 아니라, 실제로 꾸준히 쓰게 되는 시스템이라는 점입니다. 텍스트 파일은 마찰을 크게 줄여서, “실제로 쓰는 것”이 충분히 가능해지게 만들어 줍니다.
무엇을 기록할까: 이진 습관과 측정 가능한 지표
단일 파일 트래커에는 크게 두 가지 타입의 기록을 섞어서 넣을 수 있습니다.
-
이진(Binary) 습관 — 했는가, 안 했는가?
- 예:
✅ Deep work session/❌ Deep work session - 예:
code_review: done
- 예:
-
측정 가능한 지표(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 파일 읽고, 추가 기록하고, 덮어쓰기
- 커맨드라인 인자 처리 –
argparse나sys.argv사용해 보기 - 데이터 파싱 – 한 줄을 쪼개고, 날짜를 처리하고, 간단한 포맷을 다뤄 보기
- 실전 워크플로 – 실제로 매일 쓰는 도구를 직접 만들어 보기
간단한 프로젝트 로드맵
-
일주일 정도는 수동으로
habits.txt에 기록해 봅니다. -
Python으로 작은 CLI를 설계해 봅니다.
# 습관 완료 표시 python habit.py done "Deep work" --minutes 90 # 지표 기록 python habit.py metric coding_minutes 150 # 오늘 로그 보기 python habit.py today -
내부 저장 형식은 CSV나 텍스트 중 하나를 고릅니다.
- 옵션 A: 사람이 읽기 좋은
habits.txt를 그대로 소스 오브 트루스로 사용 - 옵션 B: 구조화된 데이터는
data.csv, 일기 성 메모는notes.txt처럼 분리
- 옵션 A: 사람이 읽기 좋은
-
시간이 지나면서 작은 기능들을 차근차근 추가합니다.
habit.py week→ 최근 7일 요약 출력habit.py streak "Deep work"→ 해당 습관의 연속 기록 계산- README나 위키에 붙여 넣을 수 있는 마크다운 표 출력
GUI도, 데이터베이스도 필요 없습니다. 플레인 텍스트를 읽고 쓰는 작은 스크립트들이면 충분합니다. 튜토리얼만 보고 끝나는 토이 앱보다, 이렇게 매일 직접 쓰는 도구를 만들어 보는 편이 훨씬 많은 것을 배우게 됩니다.
이 시스템을 꾸준히 유지하는 실전 팁
단일 파일 트래커를 초반 열정기 이후에도 계속 쓰려면 다음을 시도해 보세요.
-
파일을 항상 눈에 띄게 두기
- 에디터에서 핀(Pin) 해 두기
- IDE 워크스페이스에 추가해 두기
- 홈 디렉터리나 dotfiles에 두기:
~/habits.txt
-
고정 체크포인트를 정해 기록하기
- 하루 시작: 오늘 날짜 헤더 만들기
- 딥워크 블록 하나 끝날 때마다: 분 수 + 짧은 메모 남기기
- 하루 마무리: 남은 습관들을 완료/미완료 표시, 한 줄 회고 쓰기
-
처음에는 2–3개 습관만
- 예:
Deep work,Exercise,Sleep >= 7h - 기록이 자동으로 손에 익었다고 느끼기 전까지 더 늘리지 마세요.
- 예:
-
비어 있는 날도 괜찮다고 받아들이기
- 공백인 날도 데이터입니다.
- 몇 날 며칠 빼먹었다고 억지로 과거를 “채워 넣지” 말고, 그냥 오늘부터 다시 시작하세요.
-
포맷은 천천히 다듬기
- 태그가 필요해지면 라인 끝에
@tag를 붙입니다. - 프로젝트 구분이 필요하면
proj: api-refactor처럼 접두사를 붙입니다. - 매주 포맷을 갈아엎지 말고, 실제 필요가 생길 때 조금씩 진화시키세요.
- 태그가 필요해지면 라인 끝에
결론: 작고, 심심해 보이지만, 놀라울 만큼 강력한 도구
플레인 텍스트 파일 하나로는 디자인상을 받기 어렵습니다. 푸시 알림도, 예쁜 원형 그래프도, 삶을 게임처럼 만들어 주는 기능도 없습니다.
하지만 이 파일은:
- 화려한 앱들이 사라진 뒤에도 여전히 그 자리에 있을 것이고
- 다음 달에 무엇을 추적하고 싶든, 그대로 모양을 바꿔 줄 수 있고
- 당신의 습관뿐 아니라 그 뒤에 숨은 이야기와 맥락까지 함께 담아 줄 것이며
- 코딩 하루를 조금씩 더 나은 방향으로 은근하게 밀어 줄 것입니다.
만약 각종 생산성 도구를 시도했다가 포기하는 사이클에 지쳤다면, 가장 작은 대안을 한번 실험해 보세요.
habits.txt파일을 만듭니다.- 오늘 날짜를 적습니다.
- 습관 2–3개와 지표 하나를 적습니다.
- 하루를 보내며 틈틈이 업데이트합니다.
이 파일이 천천히 당신의 신뢰를 얻도록 두세요. 그리고 나중에 여기에 무언가를 더 얹고 싶어지면—Python CLI, 요약 스크립트, 시각화 도구 등—이미 잘 작동하고 있는 기반 위에 코드를 쌓게 될 것입니다.
가장 강력한 시스템은 항상 기능이 가장 많은 시스템이 아닙니다. 하나의, 심심해 보일 정도로 단순하지만 믿을 수 있을 만큼 안정적인 텍스트 파일 안에 전부 들어갈 수 있는 시스템일 때도 많습니다.