연구 노트(랩 노트북): 재현 가능한 연구를 위한 실전 습관
6개월 뒤 당신은 Figure 3을 만든 시드가 무엇이었는지, 어떤 커밋으로 ablation을 돌렸는지, v2 데이터셋을 왜 버렸는지 정확히 알아야 합니다. 실제로 굴러가는 연구 노트는 행정 업무가 아니라, 몇 달치 실험을 다시 돌리지 않게 해 주는 가장 싼 보험입니다.
1. 연구 노트는 결국 무엇을 위한 도구인가
연구 노트는 일기가 아니고, 지도교수에게 보내는 진척 보고도 아니며,
정돈된 문장으로 글을 쓰는 곳도 아닙니다. 6개월 뒤의 단 하나의 질문에
답하는 도구입니다 — "과거의 내가 정확히 무엇을 했고, 그걸 다시 할
수 있는가?" 실제 독자는 순서대로: (1) 리뷰어 응답을 위해 결과를 다시
돌리려는 미래의 나, (2) 졸업 후 코드를 물려받는 후배, (3) "X를 바꾸면
어떻게 되느냐"고 묻는 리뷰어, (4) 데이터 공개 정책을 따르라는 저널,
(5) 감사 중인 IRB나 펀딩 기관, (6) 8년 뒤, 어떤 후속 논문이 당신의
결과가 재현되지 않는다고 주장할 때의 나 자신. 모든 엔트리는 이 중
최소 한 명을 위해 쓰여야 합니다. 아무에게도 도움이 안 되면 쓰지
마세요. 여섯 명 모두에게 도움이 된다면 잘 쓴 겁니다.
좋은 엔트리가 답해야 할 3가지 질문
- 오늘 무엇을 했는가 — 신중한 후배가 다시 돌릴 수 있을 만큼의 상세함으로
- 무엇을 관찰했는가 — 예상하지 못한 결과를 포함해서
- 다음에 무엇을 할 것인가 — 왜 다른 게 아니라 이걸 하는가
2. 종이/전자/하이브리드 — 실제로 쓸 형식을 고르기
매일 쓰는 평범한 노트가, 완벽하게 셋업하고 3주 만에 버리는 노트보다
무조건 낫습니다. 안정적인 세 가지 패턴: (1) 종이 — 제본·번호·서명·
날짜. 일부 실험실에서 IP 이유로 필수, 오프라인이라 산만하지 않지만
검색이 불가능. (2) 전자 — Obsidian, Notion, LabArchives, Benchling,
또는 Git 리포의 평문 Markdown. 검색·동기화·그림·코드 임베드가 쉽지만
도구 분산 위험. (3) 하이브리드 — 벤치/화이트보드 원관찰은 종이, 24시간
이내 전자 노트에 스캔·색인. 손글씨의 속도와 텍스트의 검색성을 동시에
가져갑니다. 어떤 걸 고르든, 최소 한 학기는 바꾸지 마세요. 마이그레이션
비용이 약간 더 못한 도구를 견디는 비용보다 큽니다.
분야별 형식 선택
- 웻랩·규제 환경: 종이 또는 기관 ELN(LabArchives, Benchling)
- 전산·ML: Git 안의 Markdown + 실험 추적기(MLflow, W&B, Aim)
- 이론/수학: 유도는 종이, 정리는 LaTeX 또는 Obsidian
- 혼합 연구: 하이브리드 + 매주 30분 스캔·색인 시간 확보
- IP/규정상 필수일 때: 연구처가 지정하는 형식 — 협상 불가
3. 한 실험에 한 엔트리 — 굴러가는 일지를 만들지 마세요
"오늘"이라는 흘러가는 일지에 모든 걸 적고 싶은 유혹을 참으세요. 실험
당 하나의 엔트리, 날짜와 짧은 안정 ID로 색인하세요(`2026-05-15-ablation-dropout`,
`EXP-0042`). 모든 엔트리는 동일한 골격: 한 문장 가설, 짧은 불릿 프로토콜
또는 정확한 커밋 해시 링크, 실제로 돌린 명령(파라미터·시드 포함),
관찰한 것(수치·플롯·이상치), 결론. 실패한 실험을 보존하세요. 6개월 뒤
리뷰어가 "X는 시도해 봤느냐"고 물을 때 가장 가치 있는 엔트리가
됩니다. 기록된 부정 결과는 2주를 아껴 줍니다. 어렴풋이 기억나는
부정 결과는 0의 가치입니다.
현실에서 살아남는 엔트리 템플릿
- 제목 + 날짜 + 안정 ID(파일명·커밋·런 네임에 동일 ID 사용)
- 가설: 한 문장 — 무엇을 기대하고, 왜
- 방법: 커밋 링크, 이전 런 대비 변경된 파라미터 목록
- 런: 정확한 명령, 시드, 하드웨어, wall-clock 시간
- 결과: 표 형식 수치, 핵심 플롯 스크린샷, 원본 로그 경로
- 해석: 한 문단, 예상 밖이었던 점 포함
- 다음 단계: 이 엔트리가 함의하는 단 하나의 구체 행동
4. 버전, 시드, 출처(provenance) 추적
"내 결과를 내가 재현 못함" 사태의 대부분은 세 가지 정보로 살아납니다:
정확한 코드 커밋, 정확한 데이터 버전, 정확한 랜덤 시드. 셋 다 잃어
버릴 수 없게 만드세요. 커밋 해시를 엔트리에 박아 넣으세요(`git log -1
--format=%H` 결과를 그대로 붙여 넣기). 데이터셋은 콘텐츠 해시나 버전
참조로 고정하세요(DVC, Git-LFS, S3 versioning, 또는 SHA-256을 엔트리에
적은 동결 tarball). 코드에서 시드를 명시적으로 설정하고 노트에도
기록하세요 — "기본값"은 시드가 아닙니다. ML 실험은 CUDA 버전,
라이브러리 버전(`pip freeze > env.txt`), 하드웨어(`nvidia-smi`)도
남기세요. 재현 불가로 알려진 논문 상당수가 CUDA 마이너 버전만 맞추면
재현됩니다. 출처 정보 전체 캡처에 30초, 절약되는 시간은 몇 주.
5. 플롯·표·원본 데이터는 한 곳에 모아 두기
노트의 한 결과에서, 헌팅 없이 원본 데이터와 그림 생성 스크립트로
한 번에 들어갈 수 있어야 합니다. 표준 레이아웃: 실험 ID당 디렉토리
하나에 `run.sh`(정확한 명령), `config.yaml`(파라미터), `logs/`(stdout/
stderr), `outputs/`(체크포인트·원관측), `figures/`(플롯과 생성 노트북),
`README.md`(노트 엔트리 본문). 엔트리는 이 디렉토리로 링크합니다.
소스 파일 링크 없이 플롯의 숫자를 본문에 적지 마세요. 내년에 그
플롯이 잘못된 것 같을 때, 한 오후가 아니라 1분 안에 원본 데이터를
찾아야 합니다. 웻랩 노트의 동치는: 출력된 젤·블롯·시퀀스 트레이스를
노트 페이지에 붙이고, 원본 스캔의 파일 경로를 옆에 적어두는 것.
5년 차에도 관리 가능한 디렉토리 구조
- 프로젝트당 최상위 폴더, 실험 ID당 서브폴더 하나
- 정렬되는 파일명을 위해 ISO 날짜(2026-05-15)와 zero-padded 번호(EXP-0042)
- 데이터는 코드 리포 안에 넣지 마세요 — 심볼릭 링크나 경로 참조
- 원본 데이터는 OS 레벨에서 읽기 전용(`chmod -w`) — 실수 덮어쓰기 방지
- 프로젝트 폴더는 주 1회 iCloud 외 두 번째 위치에 백업
6. 주간 색인, 월간 리뷰, 분기 감사
400개의 엔트리가 있는데 색인이 없으면 그건 쓰기 전용 노트입니다. 세
가지 리뷰 주기로 해결합니다. 주간(금요일 끝 15분): `weekly/` 페이지에
이번 주 실험의 5줄 요약을 적고, 엔트리로 링크, 후속이 필요한 결과를
표시. 월간(30분): 주간 요약을 다시 읽고 "프로젝트 상태" 한 문단
작성 — 현재 베스트 결과, 다음 병목, 죽은 가지 정리. 분기(1시간):
오래된 엔트리 셋을 랜덤으로 골라 기억 없이 노트만 보고 재현 시도.
여기서 발견되는 빈틈이 템플릿이 빠뜨린 것을 알려 줍니다. 이 재현
감사 1시간이 분기에서 가장 가치 있는 시간입니다. 드리프트가 논문을
망치기 전에 잡아냅니다.
7. 이번 주부터 그만둘 6가지 안티패턴
좋은 노트를 망치는 6가지. (1) "나중에 정리할게" — 나중이 오면 숫자도
맥락도 사라져 있습니다. 실험한 날 바로 엔트리를 쓰세요. (2) 옛
엔트리를 더 똑똑해 보이도록 수정하기 — 대신 날짜가 박힌 "addendum"을
추가해 이력을 보존하세요. (3) 최종 플롯만 보관하기 — 중간 플롯을
남기세요. 버린 플롯이 종종 논문의 가장 가치 있는 그림이 됩니다.
(4) 슬랙 스크린샷으로만 노트를 공유하기 — 지도교수가 1년 뒤 슬랙을
검색할 수 없습니다. 엔트리 링크를 보내세요. (5) 존재하지 않는 청중
(가상의 정년 심사위원)을 향해 쓰기 — 구체 질문 하나를 던질 리뷰어를
향해 쓰세요. (6) "사소한" 실험에서 엔트리 생략 — 1년 뒤 어떤 사소한
실험을 기억하느냐가 논문의 승패를 가릅니다.
PhD graduate who spent years tracking conference deadlines across computer science and engineering. Built ScholarDue after missing a submission window in the final year of candidacy and realizing no single tool tracked CFPs, extensions, and notification dates in one place.
더 알아보기→