17장. 데이터 분석을 위한 폴더 구성

방법을 이해했다는 말과 그 방법으로 자기 질문을 판정할 수 있다는 말 사이에는 아직 비어 있는 자리가 있고 그곳을 채우는 산출물이 concept page와 method page, 그리고 가설과 대안 가설과 대조군과 판정 기준을 갖춘 계획서다. 이 가운데 가장 먼저 정해야 하는 것은 판정 기준이다. 결과를 본 뒤에 기준을 정하면 어떤 결과든 성공으로 읽히기 때문이다. 지도교수가 논문 한 편을 건네면서 이 방법을 써 보라고 한다. 학생은 Methods 절을 읽고 단계를 번호로 정리한다. 시약과 장비, 소프트웨어 이름까지 적어 두면 준비가 끝난 것처럼 보인다. 그런데 자기 시료나 자기 데이터에 대입하려는 순간, 논문에 적혀 있지 않은 것들이 한꺼번에 나타난다. 몇 개를 비교해야 하는지, 무엇을 대조군으로 둘 것인지, 어느 정도의 차이가 나야 차이가 있다고 말할 수 있는지가 그것이다. Methods 절은 저자들이 무엇을 했는지 적은 기록이다. 논문의 저자들은 자기 결과를 보기 전에 무엇을 성공으로 볼지 정해 두었고 그 결정은 대체로 본문에 문장으로 남지 않는다. 남지 않은 것을 복원하지 않은 채 단계만 옮겨 오면, 실험은 돌아가지만 결과를 받아 들고 나서야 무엇을 기준으로 삼을지 정하게 된다. 그 시점에 정해진 기준은 이미 결과를 알고 정한 기준이므로 판정을 하지 못한다. 방법을 설계로 바꾼다는 말은 논문에 적히지 않은 결정들을 찾아내 자기 조건에서 다시 정한다는 뜻이다.

논문을 넣을 때 함께 만들어지는 method card

Method card는 여러 논문에서 반복되는 방법의 단계, 전제, 판정 기준을 한 문서에 모은다. 논문의 절차를 자기 실험 설계로 옮길 때 이 문서에서 시작한다.

Method card는 논문 페이지와 별도로 만들어지는 문서다. 그 논문이 쓴 방법을 다시 쓸 수 있는 형태로 떼어 놓은 것이고 같은 방법을 쓴 다른 논문이 들어오면 그 문서를 함께 가리킨다. 위 화면은 논문 한 편을 넣었을 때 만들어진 method card이며 방법의 이름과 핵심 단계와 그 방법이 전제하는 조건이 항목으로 나뉘어 있다. 논문 페이지와 나눠 두는 이유는 쓰임이 다르기 때문이다. 논문 페이지는 그 논문이 무엇을 주장했는지를 담고 method card는 그 방법을 내가 쓰려 할 때 무엇을 정해야 하는지를 담는다. 같은 방법을 쓴 논문이 세 편 들어오면 세 논문 페이지가 하나의 method card를 가리키게 되고 그 시점에 이 방법에 대한 판단이 한자리에 모인다. Method card의 판단을 자기 실험 조건에 옮기면 연구 설계가 시작된다.

방법을 다루는 세 종류의 논문

같은 방법이 여러 종류의 논문에 등장하고 종류마다 읽는 목적이 다르다. 방법 논문은 기술 자체가 주인공이므로 목적, 성능, 벤치마크, 한계를 축으로 읽는다. 여기서 주의할 것은 성능 수치가 저자들이 고른 조건에서 나온 값이라는 점이다. 저자는 자기 방법이 잘 작동하는 조건을 알고 있고 그 조건을 벗어난 곳에서의 성능을 보고할 의무는 없다. 방법 논문에서 실제로 건져야 하는 것은 그 방법이 어떤 가정 위에 서 있는지, 가정이 깨지면 무엇이 먼저 무너지는지에 대한 서술이다. 방법을 사용한 연구 논문에서 방법은 도구로 쓰이고 관심의 초점은 그 도구가 어떤 생물학적 질문의 판정에 쓰였는지로 옮겨 간다. 같은 방법이라도 어떤 논문에서는 후보를 넓게 훑는 탐색에 쓰이고 다른 논문에서는 하나의 후보를 확정하는 검증에 쓰인다. 탐색에 쓸 때와 검증에 쓸 때 필요한 대조군과 반복 수는 같지 않다. 방법의 이름만 보고 두 용도를 구분하지 않으면, 탐색용 설계로 검증을 주장하거나 검증용 설계로 탐색을 하다가 자원을 소진하게 된다.

여러 방법을 같은 과제 위에 올려놓고 비교하는 벤치마킹 논문은 또 다른 읽기를 요구한다. 이 장이 실습 대상으로 삼는 것은 세포 foundation model들을 섭동 후 RNA-seq 예측이라는 과제로 평가한 연구다(Csendes 외, 2025). 벤치마킹 논문을 방법의 성능표로 읽으면 절반만 읽은 것이 된다. 어떤 과제를 골랐고 무엇을 기준선으로 두었고 어떤 지표로 우열을 갈랐는지가 본문의 실제 주장이기 때문이다. 평가 설계를 명시적으로 드러낸 논문은 판정 기준을 어떻게 만드는지 배울 수 있는 드문 교재다. 한 방법을 제대로 알려면 세 종류의 논문이 모두 필요하다. 방법 논문 한 편만 읽으면 그 방법이 어디까지 검증되었는지는 알지만 실제 연구에서 어떤 문제를 일으키는지 모른다. 사용 논문만 읽으면 방법을 도구로 다루는 감각은 생기지만 가정이 깨지는 지점을 모른다. 벤치마킹 논문만 읽으면 순위는 알지만 그 순위가 자기 과제에도 적용되는지 모른다. 그래서 한 방법에 대해 논문 서너 편을 묶어 읽고 그 묶음에서 하나의 method page를 만드는 편이, 논문마다 요약을 하나씩 만드는 것보다 나중에 훨씬 자주 쓰인다. 연구실이 이미 낸 논문과 지도교수가 지정한 참고 논문은 또 다른 자리에 있다. 연구실의 기존 논문에는 공식 프로토콜에 적히지 않은 것이 들어 있다. 어떤 대조군을 반드시 넣는지, 어느 지점에서 실험을 중단하는지, 무엇을 보고 재현되었다고 말하는지가 결과와 그림 안에 흔적으로 남아 있다. 지도교수가 건넨 논문은 자기 연구에서 선택해야 할 설계 요소가 무엇인지 알려 주는 목록이다. 그 목록을 만드는 일이 방법을 자기 것으로 만드는 첫 단계다.

방법을 끄집어내는 열한 가지 질문

논문을 위키에 들이는 절차는 4장에서 다룬 ingest 여섯 단계를 그대로 따른다. 그 절차가 끝나면 원문과 독서 기록과 논문 페이지가 갖추어져 있으므로 방법을 추출하는 작업은 그 위에서 시작한다. 에이전트에게 다음 항목을 표로 정리하게 하면 방법의 뼈대가 한 화면에 들어온다. 항목을 고정하는 이유는 4장에서 독서 기록의 항목을 고정한 이유와 같다. 논문마다 다른 형식으로 정리하면 같은 방법을 다르게 구현한 논문들을 나란히 놓을 수 없다.

이 방법이 답하려는 질문
필요한 생물학적 재료 또는 입력 데이터
핵심 가정과 적용 조건
독립변수, 종속변수, 비교군
양성 대조군과 음성 대조군, 보정 기준
실험 또는 분석 단계
중간 품질 검사와 최종 성공 기준
예상되는 출력과 해석 방법
자주 생기는 실패 방식
대체 가능한 방법과 그 대가
원 논문이 실제로 증명한 범위와 증명하지 못한 범위

열한 항목 중에서 에이전트가 안정적으로 잘 채우는 것은 앞의 여섯 개다. 재료, 변수, 단계처럼 본문에 명시적으로 적혀 있는 정보이기 때문이다. 뒤로 갈수록 정확도가 떨어지고 마지막 항목이 가장 어렵다. 논문은 자기가 하지 않은 것을 적지 않으므로 증명하지 못한 범위는 본문 어디에도 문장으로 존재하지 않는다. 그 자리는 설계를 읽고 추론해야 채워지고 추론을 그럴듯한 문장으로 대신하면 나중에 자기 계획의 근거가 되어 버린다. 표가 만들어지면 원문으로 돌아가 검증하는데 Methods 절만으로는 부족하다. 대조군이 실제로 몇 개였는지는 그림 범례에 있고 데이터를 어떻게 걸렀는지는 보충 방법에 있으며 어느 비교가 저자들에게 결정적이었는지는 결과 서술의 순서에 드러난다. 본문 그림과 보충 자료까지 확인하지 않고 만든 방법 정리는 설계의 겉모습에 그친다. 확인하는 데 걸리는 한 시간이 잘못된 전제로 석 달을 쓰는 일을 막는다. 방법 논문 한 편을 골라 method page 하나와 한 쪽짜리 설계안 하나를 만드는 순서는 여기서 시작한다. 15장에서 만든 읽기 대기열의 앞자리에 있는 논문이면 왜 읽기로 했는지가 이미 한 줄로 붙어 있으므로 고르기 쉽고 자기 분야의 방법 논문으로 바꾸어도 절차는 같다.

  1. 논문을 4장의 절차로 위키에 들인다. 이미 들어와 있다면 이 단계는 넘어간다
  2. 에이전트에게 앞의 열한 항목을 표로 정리하게 한다
  3. 표에서 대조군, 판정 기준, 원 논문이 증명하지 못한 범위 세 항목을 골라 원문의 그림과 보충 자료로 직접 확인한다
  4. 확인한 것과 확인하지 못한 것을 표에 표시한다

대체 가능한 방법과 그 대가를 묻는 항목은 자주 건너뛰지만 계획을 가장 크게 바꾼다. 어떤 방법을 쓰기로 정한 뒤에 그 방법의 대안을 적으면 이미 내린 결정을 정당화하는 문장이 나오기 쉬우므로 표를 만드는 단계에서 미리 적어 두는 편이 낫다. 대안을 적을 때는 이름만 나열하지 않고 무엇을 얻고 무엇을 포기하는지를 같은 축으로 쓴다. 해상도를 얻고 처리량을 잃는지, 처리량을 얻고 인과의 방향을 잃는지처럼 무엇과 무엇을 맞바꾸는지가 드러나야 한다. 이 항목이 채워져 있으면 나중에 지도교수가 다른 방법을 제안했을 때, 검토하지 않아서 안 쓴 것인지 검토하고 안 쓴 것인지를 즉시 답할 수 있다. 논문에 없는 항목은 없다고 적는다. 빈칸을 그대로 두는 편이 그럴듯한 값으로 채우는 것보다 낫다는 원칙은 3장에서 세운 운영 원칙 중 없으면 없다고 말하는 규칙과 같은 것이다. 대조군의 근거가 논문에 적혀 있지 않다면 “논문에 명시 없음”이라고 남기고 그 빈칸이 자기 설계에서 반드시 채워야 할 결정 지점이 된다. 빈칸의 위치가 곧 자기가 정해야 할 것의 목록이라는 점에서, 빈칸은 이 작업의 산출물이다. 표가 빈칸 없이 깔끔하게 채워져 돌아왔다면 어딘가를 지어냈을 가능성을 먼저 본다.

Concept page와 method page의 구분

Concept page는 이 현상이나 개념이 무엇인지를 설명하고 method page는 그것을 어떻게 측정하고 무엇으로 판정하는지를 설명한다. 둘을 한 문서에 합치면 개념이 바뀔 때마다 방법 서술을 건드리게 되고 방법을 개선할 때마다 개념 설명이 흔들린다. 개념은 분야가 바뀌어야 바뀌고 방법은 장비와 알고리즘이 바뀔 때마다 바뀌므로 갱신 주기가 다른 내용을 갈라 두는 편이 유지에 유리하다. 한 개념을 여러 방법이 측정하고 한 방법이 여러 개념에 쓰이는 관계도 두 문서를 나누어야 표현된다. Concept page에 들어가는 것은 정의와 경계다. 이 개념이 무엇을 가리키고 무엇을 가리키지 않는지, 분야에서 어떤 이름들로 불리는지, 인접한 개념과 어디서 갈라지는지를 적는다. 같은 단어가 분야마다 다른 뜻으로 쓰이는 경우가 흔하므로 지금 위키에서 이 단어를 어느 뜻으로 쓰기로 했는지를 정해 적어 두는 것이 concept page의 실질적인 기능이다. 개념과 관련된 논쟁도 여기에 적는다. 아직 합의되지 않은 것을 합의된 것처럼 적으면, 그 개념을 전제로 세운 모든 계획이 한곳에서 흔들린다. Method page의 구조는 다음과 같이 잡는다.

Question and purpose
Inputs and prerequisites
Assumptions
Experimental or analytical design
Controls and comparisons
Stepwise procedure
Quality control
Outputs and interpretation
Failure modes
Alternatives and limitations
Supporting papers
Local decisions and open questions

절차는 열두 항목 중 하나에 불과하다. 다음에 이 방법을 다시 쓸 때 필요한 것은 전제 조건, 입력 자료가 갖추어야 할 요건, 흔히 발생하는 실패 방식, 판정 기준, 그리고 비용이다. 비용은 마지막 항목에 적는데 시료 수와 장비 시간, 계산 시간, 사람의 시간을 함께 적어야 나중에 다른 방법과 비교할 수 있다. 비용을 적지 않은 method page는 언제나 그 방법을 쓰는 쪽으로 판단을 밀어붙인다. 같은 방법을 여러 논문이 다르게 구현했다면 차이를 숨기지 않고 나란히 적는다. 구현이 갈리는 지점은 대체로 그 방법에서 가장 민감한 선택이 있는 곳이고 나중에 자기 실험이 재현되지 않을 때 먼저 의심해야 한다. 특정 논문의 수치와 조건을 보편적 규칙으로 옮겨 적는 것도 피한다. 어떤 논문이 특정 세포주에서 정한 처리 시간은 그 세포주와 그 목적에 묶인 값이다. 연구실 내부에서 최적화한 조건과 공개된 논문에서 온 조건은 같은 문서 안에서도 출처를 갈라 적어야, 나중에 외부에 공유할 때 무엇을 빼야 하는지 판단할 수 있다.

  1. 검증한 표를 앞의 method page 구조로 옮긴다
  2. 논문에 없어서 자기가 정해야 하는 항목을 Local decisions and open questions에 모은다

모든 방법에 method page를 만들 필요는 없다. 한 번 쓰고 말 방법, 이미 표준이 되어 매뉴얼이 있는 방법, 자기 연구에서 결정할 것이 거의 없는 방법은 논문 페이지의 링크만으로 충분하다. Method page를 만들 값어치가 있는 것은 앞으로 여러 번 쓸 방법, 구현이 논문마다 갈리는 방법, 그리고 실패했을 때 원인을 찾기 어려운 방법이다. 판단이 서지 않으면 같은 방법을 두 번째로 쓰게 될 때 만든다. 두 번째로 쓰는 시점에는 첫 번째에서 무엇이 문제였는지 알고 있으므로 실패 방식 항목이 실제 내용으로 채워진다. 근거로 삼은 연구용 위키는 wiki page 17,591건을 50개 카테고리로 나누어 두고 있는데 방법 문서는 논문 페이지와 같은 층에 섞이지 않고 개념과 종합을 담는 층에 놓인다. 논문 페이지는 한 편의 논문을 가리키고 method page는 여러 논문을 가로지르기 때문이다. 독서 기록의 항목 이름은 4장에서 정한 그대로 쓰고 method page는 여러 독서 기록에서 방법에 해당하는 부분만 모아 재구성한 문서다. 출처가 된 논문들은 Supporting papers에 모두 적어 어느 문장이 어느 논문에서 왔는지 되짚을 수 있게 한다.

실험 설계의 큰 그림

실험 계획은 다음 여덟 질문을 순서대로 고정하면서 만들어진다. 순서를 바꾸면 앞의 답이 뒤의 답에 끌려간다.

  1. 연구 질문은 무엇인가.
  2. 중심 가설과 경쟁 가설은 무엇인가.
  3. 두 가설을 가장 잘 가르는 관측은 무엇인가.
  4. 어떤 실험군과 대조군이 필요한가.
  5. 생물학적 반복과 기술적 반복은 각각 왜 필요한가.
  6. 어떤 편향을 무작위화, 눈가림, 배치 설계로 줄일 것인가.
  7. 성공과 실패와 애매한 결과를 무엇으로 판정할 것인가.
  8. 결과별로 다음 실험은 무엇인가.

첫 번째 질문은 쉬워 보이지만 대부분의 계획서에서 가장 넓게 쓰여 있다. 어떤 유전자가 어떤 과정에 관여하는지를 알고 싶다는 문장은 관심사에 머문다. 질문이 되려면 어느 대상에서, 어떤 조건에서, 무엇과 비교해 무엇을 보겠다는 범위가 붙어야 한다. 범위를 좁히는 일이 야심을 줄이는 것처럼 느껴져 미루게 되지만 좁히지 않으면 뒤의 일곱 질문에 답할 수 없다. 네 번째 질문의 대조군도 마찬가지로 질문의 범위가 정해져야 고를 수 있다. 무엇과 비교할지는 무엇을 주장하고 싶은지에 따라 정해지고 주장이 흐릿하면 대조군은 관행대로 정해진다. 두 번째와 세 번째 질문에서 계획이 판정력을 갖는지가 정해진다. 경쟁 가설이 없으면 어떤 결과든 중심 가설의 증거로 읽히고 실제로 대부분의 초안 계획서에 경쟁 가설 자리가 비어 있다. 경쟁 가설은 “같은 관측을 만들어 낼 수 있는 다른 설명”으로 써야 쓸모가 있다. 기술적 잡음, 배치 효과, 시료 준비 과정의 차이처럼 재미없는 설명이 가장 자주 참인 경쟁 가설이다. 세 번째 질문은 두 설명을 서로 다른 방향으로 밀어내는 관측이 무엇인지 묻는 것이고 그 관측이 없으면 실험을 아무리 잘해도 판정이 되지 않는다.

다섯 번째와 여섯 번째 질문은 결과의 신뢰도를 좌우한다. 생물학적 반복은 결론을 개체나 배양 단위로 일반화하기 위한 것이고 기술적 반복은 측정 과정의 변동을 잡기 위한 것인데, 둘을 섞어 세면 실제보다 강한 주장을 하게 된다. 편향을 줄이는 장치는 실험을 시작한 뒤에는 넣을 수 없다. 처리군과 대조군을 서로 다른 날에 서로 다른 배치로 처리했다면 분석 단계에서 어떤 보정을 해도 처리 효과와 배치 효과가 갈라지지 않는다. 무작위화와 배치 설계는 되돌릴 수 없는 시점의 문제다. 일곱 번째 질문의 판정 기준은 결과를 보기 전에 적어 두어야 기준으로 작동한다. 효과의 방향과 크기, 비교 대상, 반복 사이의 일관성, 그리고 애매하다고 판단할 구간까지 미리 적는다. 애매한 구간을 비워 두면 실제로 애매한 결과가 나왔을 때 그 결과가 지지 쪽이나 기각 쪽 중 그때의 기대에 가까운 쪽으로 끌려간다. 결과가 나온 뒤에 기준을 정하는 순간, 그 실험은 가설을 검증하는 힘을 잃고 기대를 확인하는 절차가 된다. 여덟 번째 질문은 계획을 실행 가능한 것으로 만든다. 가설이 지지되었을 때의 다음 실험만 적힌 계획서는 절반만 쓰인 계획서다. 아무 차이도 없는 결과가 나왔을 때 방법이 작동하지 않은 것인지 효과가 없는 것인지를 어떻게 가를지, 예상과 반대 방향의 결과가 나왔을 때 무엇을 먼저 의심할지를 함께 적는다. 실험 하나가 끝났는데 다음에 무엇을 할지 다시 회의를 열어야 한다면 계획이 아직 미완인 것이다. 결과별 분기를 적어 두면 실험이 끝나는 날 바로 다음 작업으로 넘어갈 수 있다. 이렇게 만든 설계안은 아젠다 쪽에 날짜와 함께 남기고 판정 기준 문단은 실행을 시작한 날짜를 적어 고정한다. 이후에 고칠 때는 덮어쓰지 않고 언제 왜 고쳤는지를 함께 남기는데 기준을 바꾼 기록이 남아 있는 것과 바꾼 흔적이 없는 것은 다른 문서다.

분석 설계와 실험 설계의 동형성

분석은 질문과 판정 기준을 정하는 순간에 시작된다. 계산 분석은 시료가 소모되지 않고 실패해도 다시 돌리면 되기 때문에 계획 없이 시작하기 쉽다. 여러 번 돌릴 수 있기 때문에 사전 계획이 없으면 가장 마음에 드는 결과가 나온 설정을 사후에 정당화하게 된다. 실험에서는 시료가 없어서 못 하는 일을, 분석에서는 마음만 먹으면 스무 번도 할 수 있다는 점이 계산 분석의 고유한 위험이다. 분석 계획에는 시료 포함과 제외 기준, 표현형의 정의, 전처리 절차, 함께 넣을 공변량, 데이터를 나누는 방식, 비교의 기준선, 그리고 민감도 분석을 미리 적는다. 표현형 정의가 특히 자주 비어 있다. 같은 코호트에서도 어떤 기준으로 사례를 정의하느냐에 따라 표본 수와 효과 크기가 함께 움직이고 정의를 몇 번 바꾸다 보면 유의해지는 정의를 고르게 된다. 기준선도 계획서에 이름으로 적어야 한다. 무엇과 비교해서 좋아졌는지가 정해지지 않은 성능 수치는 해석할 수 없고 기준선을 나중에 고르면 이길 수 있는 기준선을 고르게 된다. 가설 없이 해 볼 만한 분석을 모아 놓은 목록은 계획처럼 보이지만 어떤 결과가 나와도 다음 행동이 정해지지 않으므로 계획이 되지 못한다. 목록의 각 줄 옆에 그 분석이 어떤 가설을 가르는지 적어 보면 대부분의 줄이 지워진다.

같은 데이터에 여러 방법을 시도하는 일에서 갈리는 것은 그 결과를 어떻게 보고하느냐다. 사전 계획에 따라 여러 방법을 비교하고 전부를 보고하는 것과, 여러 방법을 돌려 본 뒤 가장 좋은 결과 하나만 남기는 것은 겉으로 같은 표를 만들지만 의미가 정반대다. 계획서에 시도할 방법의 목록과 선택 규칙을 미리 적어 두면 둘을 구분할 수 있다. 선택 규칙은 “사전에 정한 지표에서 정한 차이 이상으로 앞선 것”처럼 결과를 보기 전에 적용할 수 있는 형태여야 한다. 모델 성능과 생물학적 결론을 같은 문장에 넣지 않는 것도 분석 계획에 명시한다. 예측 정확도가 올라갔다는 것은 예측이 잘된다는 뜻까지만 보증한다. 성능이 높은 모델이 무엇을 근거로 그 예측을 했는지는 별도의 분석이 필요하고 그 분석을 계획에 넣지 않았다면 논문에서도 그 주장을 하지 않아야 한다. 이 계획에서 어떤 결론까지 허용되는지를 계획서에 한 줄로 적어 두면, 나중에 결과가 좋을 때 주장을 늘리고 싶은 압력에 대응할 기준이 생긴다. 허용 범위를 넘는 주장을 하고 싶어졌다면 그때 계획을 다시 세운다.

민감도 분석은 계획서에서 가장 자주 생략되고 가장 자주 논문 심사에서 요구된다. 결론이 전처리 방식 하나, 제외 기준 하나, 공변량 하나에 얼마나 의존하는지를 미리 정해 두면 결과를 얻은 뒤에 급하게 만들지 않아도 된다. 어떤 선택을 흔들어 볼지는 계획 단계에서 이미 알고 있다. 근거 없이 관행으로 정한 항목, 논문마다 다르게 하는 항목, 정하면서 망설였던 항목이 그것이다. 망설였던 자리를 그대로 민감도 분석의 목록으로 옮기면, 나중에 결론이 그 선택에 크게 흔들릴 때 스스로 먼저 발견하게 된다. 재현 경로도 계획의 일부다. 실행한 코드, 입력 파일, 중간 산출물, 최종 결과가 서로를 가리키도록 남긴다. 사전에 정하지 않으면 중간 산출물이 임시 폴더에 흩어지고 석 달 뒤에 그림 하나를 다시 그리려 할 때 어느 입력에서 나온 것인지 알 수 없게 된다. 벤치마킹 논문은 그래서 분석 설계의 교재가 된다. 여러 방법을 공정하게 비교하려면 입력과 전처리와 지표를 모두 고정해야 하므로(Csendes 외, 2025), 그런 논문의 설계를 따라 읽으면 자기 분석에서 무엇을 고정해야 하는지가 드러난다.

재현 경로를 계획의 일부로 만들려면 파일이 놓일 자리가 먼저 정해져 있어야 한다. 분석 작업 공간 하나를 열어 두고 그 안에서 프로젝트마다 폴더를 하나씩 만드는 배치가 오래 버틴다. 최상위에는 규칙 파일 하나와 위키 폴더 하나, 그리고 작업 단위가 되는 프로젝트 폴더들이 놓인다.

Projects/
├── AGENTS.md                    강제 규칙과 위키 진입점
├── wiki/
│   ├── index.md                 지도와 현재 규칙 라우터
│   ├── conventions.md           폴더 레이아웃과 파일명
│   ├── references.md            공용 자료 registry와 중복 제거 규칙
│   ├── projects.md              프로젝트별 정체와 상태와 정본 데이터
│   ├── lint.md                  문서와 파일 시스템의 정합성 점검
│   ├── log.md                   위키 구조 변경 이력
│   ├── project-guides/          프로젝트별 세션 라우터
│   └── project-logs/            프로젝트별 작업 로그 (덧붙이기만)
└── {프로젝트}/                   작업 단위. 00_inputs → 01_{방법} → 02_results

폴더 이름은 예시다. 최상위 폴더의 이름을 자기 말로 바꾸어도 되고 프로젝트 폴더에는 각자의 과제 이름을 쓴다. 배치에서 실제로 지켜야 하는 것은 두 가지다. 하나는 작업의 단계를 폴더 이름으로 드러내는 것이고 다른 하나는 로그를 작업 폴더 밖으로 뽑아내는 것이다. 받은 원본은 00_inputs에 그대로 두고 덮어쓰지 않으며 파생본은 새 이름으로 만든다. 지금 내놓는 결과물은 프로젝트 폴더의 루트에 두어 무엇이 최신인지 몇 초 안에 보이게 하고 새 버전이 나오면 직전 버전을 같은 자리의 old/로 밀어낸다. 중간 산출물은 old/tmp/나 작업 공간 밖의 임시 폴더에 두고 프로젝트 폴더의 루트에는 임시 폴더를 만들지 않는다. 여러 프로젝트가 함께 쓰는 공용 자료는 정본 한 곳에서 경로로 읽고 프로젝트 폴더로 복사하지 않으며 그 정본의 위치는 references.md가 소유한다. 심볼릭 링크도 쓰지 않는데 동기화 서비스가 링크를 사본으로 평탄화해 결국 사본이 두 벌 남기 때문이다. 진행 메모와 변경 기록은 wiki/project-logs/ 아래에 프로젝트마다 한 파일씩 두고 덧붙이기만 한다. 로그 항목의 형식도 고정해서 무엇이 이 작업을 촉발했는지, 그때 원본이 어떤 상태였는지, 무엇을 실행했는지, 무엇을 확인했는지, 무엇을 발견했는지, 무엇을 결정했는지, 무엇이 남았는지, 어떤 산출물이 나왔는지의 여덟 항목을 같은 순서로 적는다. 확인 결과에는 확인됨, 불일치, 미확인, 보류, 재실행필요의 다섯 라벨을 쓰는데 확인하지 못한 것을 이상 없음으로 적지 않기 위한 장치다. 위키의 규칙 문서에는 일반형 문장만 쓰고 특정 날짜와 세션과 파일 이름은 로그 쪽에 남긴다.

따라해보기

아래 블록은 AI 도구의 채팅창에 그대로 붙여 넣는 프롬프트다. 분석 작업 공간을 처음 세울 때 쓰는 프롬프트다. 빈 폴더를 하나 만들어 그 안에서 에이전트를 실행한 뒤 아래를 그대로 붙여 넣고 꺾쇠로 표시한 자리는 자기 상황에 맞게 바꾼다.

이 빈 폴더를 분석 작업 공간으로 세팅해 줘.
1. AGENTS.md를 만들고 다음 세 가지를 강제 규칙으로 적어 줘.
   - 공용 자료는 <공용 자료 폴더의 절대경로>에서 경로로 읽는다. 프로젝트 폴더로 복사하지 않고 심볼릭 링크도 만들지 않는다.
   - 작업 폴더 안에 로그 파일을 만들지 않는다. 모든 작업 로그는 wiki/project-logs/ 아래에 덧붙인다.
   - 세션을 시작하면 AGENTS.md와 wiki/index.md를 먼저 읽는다.
2. wiki/ 아래에 index.md, conventions.md, references.md, projects.md, lint.md, log.md를 만들고 project-guides/와 project-logs/ 폴더를 만들어 줘. 각 파일에는 무엇을 담는 문서인지만 두 줄로 적고 규칙 본문은 비워 둬.
3. conventions.md에 프로젝트 폴더의 내부 배치를 적어 줘. 받은 원본은 00_inputs/에 두고 덮어쓰지 않는다, 단계별 산출물은 01_{방법}/에 둔다, 지금 내놓는 결과물은 프로젝트 폴더 루트에 둔다, 직전 버전은 같은 자리의 old/로 밀어낸다, 중간 산출물은 old/tmp/에 둔다.
4. <첫 프로젝트 이름> 폴더를 만들고 그 안에 00_inputs/를 만들어 줘.
5. projects.md에 그 프로젝트를 등록해 줘. 무엇을 밝히려는 프로젝트인지, 지금 어느 단계인지, 정본 데이터가 어느 경로에 있는지를 적어 줘.
6. 만든 파일과 아직 비어 있는 파일을 구분해서 보고해 줘. 내가 채워야 할 자리는 따로 모아서 알려 줘.

계획서가 만들어지는 순환

계획은 한 번에 완성되지 않고 다음 순환을 돈다.

연구 질문
    ↓ 관련 concept, method, 논문 검색
근거와 제약
    ↓ 가설과 경쟁 가설 작성
결정적 비교
    ↓ 대조군, 품질 검사, 분석, 판정 기준
실행 가능한 계획
    ↓ 예비 실험 또는 예행 분석
결과와 설계 수정
    └──────────────→ 아젠다와 위키로 환류

순환에서 예비 실험과 예행 분석을 빼놓지 않는 것이 중요하다. 예비 단계의 목적은 계획이 실행 가능한지를 확인하는 것이다. 시료가 예상한 양만큼 나오는지, 측정값이 읽을 수 있는 범위에 들어오는지, 데이터의 형식이 파이프라인에 그대로 들어가는지처럼 본 실험에서 발견하면 늦는 것들을 여기서 걸러 낸다. 계산 분석에서는 실제 데이터 대신 무작위로 뒤섞은 자료나 가상의 자료로 분석 전체를 한 번 돌려 보는 방식이 같은 역할을 한다. 예행에서 유의한 결과가 나온다면 분석 절차 어딘가에 결과를 만들어 내는 단계가 있다는 뜻이므로 본 분석을 돌리기 전에 그것을 찾아야 한다. 순환의 각 단계에서 중요한 선택 옆에는 근거가 된 논문이나 method page를 링크로 붙인다. 링크를 붙이는 일이 번거로워 보이지만 계획을 지도교수나 심사자에게 설명할 때 되돌아가야 할 곳이 바로 그 링크들이다. 근거 없이 적힌 선택은 시간이 지나면 관행이 되고 관행이 된 선택은 왜 그렇게 하는지 아무도 모르는 채로 연구실에 남는다. 어떤 선택에 붙일 근거가 없다면 그 선택은 아직 가정이고 가정이라고 표시해 두면 나중에 결과가 이상할 때 먼저 확인할 목록이 된다. 근거와 가정을 갈라 표시하는 일에 드는 시간은 계획서를 쓰는 시간의 일부다.

  1. 자기 연구 질문에 맞춘 설계안을 한 쪽으로 쓴다
  2. 가설, 경쟁 가설, 두 가설을 가르는 관측, 대조군, 분석, 판정 기준을 반드시 넣는다
  3. 에이전트에게 예상한 결과가 그대로 나와도 가설이 틀렸을 수 있는 경로를 세 가지 찾게 한다
  4. 그중 하나를 반영해 설계안을 고친다

설계안이 제 몫을 하는지는 판정 기준 문단을 가린 채 읽었을 때 다음 세션의 에이전트가 “이 실험에서 어떤 결과가 나오면 가설을 기각하는가”에 답할 수 있는지로 정해진다. 경쟁 가설 자리와 판정 기준 자리가 모두 채워져 있고 각 선택 옆에 근거 문서가 링크되어 있는지로 판단한다. 에이전트에게는 계획을 공격해 달라고 요청한다. 약한 전제, 빠진 대조군, 같은 결과를 만들어 낼 수 있는 다른 설명을 찾게 한다. 요청은 구체적일수록 잘 작동한다. “이 계획의 문제를 찾아 줘”는 일반론을 돌려주지만 “이 계획에서 예상한 결과가 그대로 나와도 중심 가설이 틀렸을 수 있는 경로를 세 가지 찾아 줘”는 실제로 검토할 만한 목록을 돌려준다. 위키에 method page가 쌓여 있으면 에이전트가 과거에 정리해 둔 실패 방식과 지금 계획을 대조할 수 있으므로 반론의 질이 위키의 두께에 비례해 올라간다. 책임의 경계는 이 순환 안에서 분명하다. 에이전트는 관련 문서를 찾고 여러 논문의 설계를 나란히 비교하고 항목을 구조화하고 반론을 제기한다. 학생은 원문을 직접 확인하고 어떤 질문을 할지 고르고 실험과 분석의 실행에 책임을 지고 결론을 어느 강도로 말할지 정하고 무엇을 밖으로 내보낼지 결정한다. 지도교수와 공동연구자는 전문적 판단과 자원의 제약을 함께 정하지만 학생이 미리 정리해야 할 부분을 대신하지는 않는다. 에이전트가 제안한 프로토콜이나 분석 코드를 검증 없이 실행하는 일은 이 경계를 지우는 가장 흔한 방식이다. 결과가 예상과 다르게 나왔을 때 계획서를 조용히 덮지 않는다. 어떤 가정이 깨졌는지를 method page의 실패 방식 항목에 되돌려 적는 것이 이 순환의 마지막 화살표다. 다음에 같은 방법을 쓰는 사람은 그 한 줄 때문에 같은 실패를 반복하지 않는다. 실패한 실험의 기록이 남지 않는 연구실에서는 같은 실패가 사람이 바뀔 때마다 되풀이되고 그 비용은 누구의 논문에도 나타나지 않는다.

실험과 계산 분석의 갈림

후보 조절 요소의 기능을 검증하는 실험에서 먼저 정할 것은 현재 주장의 범위와 후보를 고른 근거다. 어떤 신호를 보고 후보로 올렸는지에 따라 검증해야 할 것이 달라지기 때문이다. 다음으로 검증 방식이 답하는 질문이 서로 다르다는 점을 확인한다. 리포터 방식은 잘라 낸 서열이 활성을 가질 수 있는지를 묻고 내인성 자리를 억제하는 방식은 원래 위치의 서열이 실제로 발현에 기여하는지를 묻는다. 두 질문의 답이 갈릴 수 있고 갈렸을 때 어느 쪽을 결론으로 삼을지는 계획 단계에서 정해야 한다. 젖은 실험 계획에서 남는 결정은 대체로 물리적 제약에 묶여 있다. 어떤 벡터와 프로모터를 쓸지, 서열을 얼마나 길게 넣을지, 무엇을 읽을지, 한 번에 몇 개의 후보를 처리할 수 있는지가 서로 맞물린다. 후보 수를 늘리면 후보당 반복이 줄고 반복을 늘리면 처리할 수 있는 후보가 준다. 양성 대조군은 이 실험계에서 신호가 나오는지를 확인하고 음성 대조군은 나온 신호가 서열 때문인지를 확인한다. 둘 중 하나가 빠지면 결과가 나와도 해석되지 않고 시료를 이미 다 쓴 뒤에는 되돌릴 수 없다. 결과별 후속 검증까지 계획에 넣으면 실험 하나가 다음 실험을 부른다. 두 검증 방식의 결과가 같은 방향이면 후보를 확정하고 다음 층위의 질문으로 넘어가지만 갈리면 어느 쪽을 먼저 의심할지를 미리 정해 두어야 한다. 잘라 낸 서열에서는 활성이 나오는데 원래 자리에서는 나오지 않는 경우와 그 반대의 경우는 서로 다른 해석을 부르고 각각에 대해 확인할 실험도 다르다. 두 경우의 다음 단계를 계획서에 미리 적어 두면 결과가 갈렸을 때 당황하지 않는다. 갈린 결과를 실패로 부르지 않는 것도 계획서의 역할인데, 서로 다른 질문에 서로 다른 답이 나온 것은 정보이기 때문이다.

여러 코호트의 전장 유전체 데이터를 분석하는 사례에서는 결정의 성격이 다르다. 이미 확보한 데이터와 앞으로 들어올 데이터를 먼저 구분하고 각각이 어느 참조 유전체와 어느 파이프라인 버전으로 어느 단계까지 처리되어 있는지 적는다. 코호트마다 처리 이력이 다르면 같은 방식으로 다시 처리할 수 있는지가 첫 번째 결정 사항이 되고 그 결정에 따라 합동 변이 검출이 가능한지와 언제 가능한지가 정해진다. 품질 검사와 제외 기준도 코호트별로 다르게 적용할지 통일할지를 미리 정한다. 마지막으로 확정된 사항과 아직 확인해야 할 사항을 갈라 적어 두면, 미팅에서 논의할 것이 무엇인지가 그대로 드러난다. 두 사례에서 같은 것은 판정 기준을 결과보다 먼저 적는다는 원칙이고 다른 것은 되돌리는 비용이다. 젖은 실험은 시료와 시간이 소모되므로 잘못 설계된 실험을 다시 하려면 처음부터 다시 해야 한다. 계산 분석은 다시 돌릴 수 있지만 다시 돌릴 수 있다는 사실 때문에 사후에 설정을 고르는 유혹이 생긴다. 앞의 위험은 자원을 잃는 것이고 뒤의 위험은 결론을 잃는 것인데, 뒤의 손실은 겉으로 드러나지 않기 때문에 더 늦게 발견된다. 같은 계획서 양식을 쓰되 젖은 실험에서는 순서와 배치를, 계산 분석에서는 사전 고정과 보고 범위를 더 꼼꼼히 적는다.

계획에서 미팅 자료로의 전환

완성된 계획서를 그대로 들고 미팅에 들어가면 대체로 앞부분에서 시간이 다 간다. 계획서는 실행하는 사람을 위한 문서이고 미팅 자료는 결정하는 사람을 위한 문서라서, 담아야 할 것이 다르다. 실행에 필요한 세부 조건은 계획서에 그대로 두고 미팅에는 결정이 필요한 것만 가져간다. 분량은 네 장에서 여섯 장 사이로 잡는다. 그보다 길면 듣는 쪽이 어디에서 판단해야 하는지 알기 어렵고 그보다 짧으면 판단의 근거가 빠진다. 가져갈 내용은 다음 순서로 정리한다. 연구 질문과 현재 결론이 어디까지 말할 수 있는지, 그 질문에 관련된 근거와 그로부터 나온 설계 선택, 실험이나 분석의 흐름과 대조군, 예상되는 결과별 해석, 아직 정해지지 않은 사항과 필요한 결정, 그리고 결정이 나면 바로 착수할 다음 작업이다. 다섯 번째 항목이 미팅을 여는 실제 이유이므로 가장 구체적으로 적는다. 무엇을 결정해 달라는 요청 없이 계획만 설명하면 회의는 감상으로 끝나고 같은 계획을 들고 다음 달에 다시 모이게 된다. 네 번째 항목의 예상 결과별 해석도 빼놓지 않는데 결과가 나오기 전에 해석을 합의해 두면 결과가 나온 뒤에 해석을 놓고 다투지 않아도 된다.

가져가지 않을 것도 정해 두는 편이 좋다. 시약의 카탈로그 번호, 파이프라인의 실행 옵션, 코드의 구조는 실행하는 사람에게 필요한 정보다. 세부를 넣으면 논의가 그 세부로 끌려가고 정작 결정이 필요한 항목은 시간이 없어 다음으로 미뤄진다. 다만 질문이 나올 만한 세부는 계획서의 어느 부분에 있는지 링크로 걸어 둔다. 미팅 자료가 계획서로 가는 입구가 되어야, 논의가 깊어졌을 때 바로 근거를 열어 볼 수 있다. 한 장짜리 결정표를 함께 준비하면 논의가 흩어지지 않는다. 각 행에 결정할 항목, 선택지, 각 선택지의 근거와 대가, 그리고 지금 기울어져 있는 쪽을 적는다. 기울어져 있는 쪽을 미리 적는 것이 중요한데, 아무 의견 없이 선택지만 내밀면 결정이 지도교수에게 통째로 넘어가고 학생은 자기 판단을 훈련할 기회를 잃는다. 결정표는 미팅이 끝난 뒤 결정된 내용과 그 이유를 채워 넣어 그대로 기록으로 남긴다.