claude-code
비개발자 의사가 Claude Code로 22개 연구 자동화 스킬을 만든 방법
코딩 배경 없는 영상의학과 전공의가 체계적 문헌고찰, 원고 작성, 통계 분석을 자동화하는 오픈소스 툴킷을 만들었습니다 — Claude Code와 도메인 전문성만으로.
문제 — 연구의 80%는 반복 작업
다섯 개의 연구 프로젝트를 동시에 진행하는 것은 이력서상 인상적으로 들립니다. 실제로는, 이번 주에 세 번째로 PubMed에서 같은 PDF 묶음을 다운로드하고, 약간 다른 스타일로 같은 PRISMA 흐름도를 다시 포맷하고, 원고가 STARD 체크리스트의 모든 항목을 실제로 보고하는지 확인하는 것을 의미합니다 — 또 다시.
저는 영상의학과 전공의입니다. CT 스캔을 읽고 카테터를 삽입하도록 훈련받았지, Python 스크립트를 작성하도록 훈련받지 않았습니다. 하지만 체계적 문헌고찰, 진단 정확도 연구, AI 검증 논문에 수개월을 보낸 후 패턴을 발견했습니다: 연구 시간의 약 80%가 기계적이고 예측 가능하며 프로젝트 간에 동일한 작업에 사용됐습니다.
Unpaywall과 PMC에서 오픈액세스 PDF 다운로드. 다른 데이터셋으로 같은 이변량 메타분석 모델 실행. 보고 가이드라인에 맞춰 원고 준수 여부 확인. 열다섯 번째로 "통계 분석" 섹션 작성.
연구 자체 — 임상 질문, 연구 설계, 해석 — 는 실제로 의사의 판단이 필요한 20%였습니다. 나머지는 사소한 변형이 있는 복사-붙여넣기였습니다.
첫 번째 스킬 — PDF에서 시작됐다
CBCT 유도 폐 생검에 대한 메타분석을 진행하는 중에 전환점이 왔습니다. 76개의 포함 연구에 대한 원문 PDF가 필요했습니다. 표준 방식: PubMed를 클릭하고, 오픈액세스인지 확인하고, Unpaywall을 시도하고, 출판사 사이트를 시도하고, 76번 반복.
그 시점에 Claude Code를 몇 주 사용하고 있었습니다 — 주로 테이블 재포맷이나 R 스크립트 디버깅 같은 작은 작업들에. 그래서 다른 것을 시도해봤습니다. 완전한 프로그램을 작성해달라고 요청하는 대신, 실제 문제를 설명했습니다:
"76개의 DOI 목록이 있습니다. 원문 PDF를 다운로드해야 합니다. 일부는 Unpaywall을 통해 오픈액세스이고, 일부는 PMC에 있으며, 나머지는 기관을 통해 받아야 합니다. 먼저 OA 것들을 일괄 다운로드하는 것을 도와주실 수 있나요?"
Claude Code가 Python 스크립트를 작성했습니다. 첫 번째 시도에서 완벽하게 작동하지 않았습니다 — PMC 웹사이트가 JavaScript 챌린지로 다운로드를 차단했습니다. 그래서 그 문제도 설명했고, 반복했습니다. 세 번의 대화 후, 작동하는 파이프라인이 생겼습니다: 먼저 Unpaywall, 그 다음 Europe PMC의 REST API(JavaScript 문제를 우회하는), 그 다음 OpenAlex와 Crossref를 대안으로.
그 스크립트가 오후 한 나절을 절약해줬습니다. 더 중요한 것은, 아이디어를 심어줬습니다: 이것을 재사용 가능한 스킬로 저장해두면, 다음에 메타분석을 시작할 때 PDF 검색 단계가 이미 해결되어 있지 않을까?
하나의 스크립트에서 22개의 스킬로
Claude Code에는 스킬이라는 기능이 있습니다 — 특정 유형의 작업을 처리하는 방법을 가르치는 지시 파일. 워크플로우, 입력값, 출력값, 제약 조건을 설명하는 SKILL.md 파일을 작성합니다. 다음에 그 작업을 요청하면, 처음부터 시작하는 대신 스킬을 따릅니다.
그 후 몇 주 동안, 프로젝트 간에 연구 작업을 반복하고 있다는 것을 발견할 때마다 스킬로 만들었습니다:
문헌 검색은 search-lit이 됐습니다 — PubMed, Semantic Scholar, bioRxiv를 검색하고, 포함하기 전에 모든 인용을 실제 데이터베이스에서 검증합니다. 환각된 참고문헌 없음.
통계 분석은 analyze-stats가 됐습니다 — 진단 정확도, 평가자 간 일치도, 생존 분석, 메타분석에 대한 재현 가능한 Python 또는 R 코드 생성. 적절한 신뢰구간과 효과 크기가 포함된 출판용 테이블 출력.
원고 작성은 write-paper가 됐습니다 — 아웃라인에서 투고 준비 초안까지 8단계 파이프라인, AI 작문 패턴에 대한 내장 검사 포함("it is worth noting"이나 "comprehensive analysis" 같은 구절을 플래그하고 재작성).
보고 준수는 check-reporting이 됐습니다 — STROBE, STARD, TRIPOD+AI, PRISMA, QUADAS-2와 RoB 2 같은 비뚤림 위험 도구를 포함한 33개 보고 가이드라인에 맞춰 원고를 감사. 각 항목에 대해 PRESENT, PARTIAL, MISSING을 반환.
Figure는 make-figures가 됐습니다 — 300 DPI, 색맹 안전, 저널 투고 크기로 ROC 곡선, Forest plot, PRISMA 흐름도, Bland-Altman plot, Confusion matrix 생성.
전체 목록은 22개 스킬에 달했습니다:
| 스킬 | 기능 |
|---|---|
search-lit | 인용 검증이 포함된 문헌 검색 |
analyze-stats | 통계 분석 코드 생성 |
write-paper | 전체 IMRAD 원고 파이프라인 |
check-reporting | 준수 감사 (22개 가이드라인) |
make-figures | 출판용 Figure |
meta-analysis | 체계적 문헌고찰 파이프라인 (8단계) |
design-study | 연구 설계 및 타당성 검토 |
self-review | 투고 전 품질 확인 |
revise | 심사자 응답 |
manage-project | 프로젝트 구조화 및 추적 |
intake-project | 새 프로젝트 분류 |
grant-builder | 연구비 제안서 구조화 |
present-paper | 발표 및 발표자 노트 |
publish-skill | 배포를 위한 스킬 패키징 |
fulltext-retrieval | OA PDF 일괄 다운로드 |
orchestrate | 단일 진입점 — 분류 및 라우팅 |
calc-sample-size | 대화형 표본 크기 계산기 |
clean-data | 데이터 프로파일링 및 정리 |
find-journal | 저널 추천 엔진 |
write-protocol | IRB 프로토콜 및 PROSPERO 초안 |
deidentify | 임상 데이터 비식별화 CLI |
add-journal | 데이터베이스에 저널 프로필 추가 |
각 스킬은 가상의 "누군가에게 필요할 수 있다면" 연습이 아닌 실제 프로젝트의 실제 문제에서 태어났습니다.
내가 실제로 한 것 (코딩이 아니었다)
이 스킬들을 만드는 데 있어 내 역할에 대해 명확히 하고 싶습니다. 프로그래밍이 아니었습니다.
Python을 배우지 않았습니다. 소프트웨어 아키텍처를 공부하지 않았습니다. REST API에 대한 문서를 읽지 않았습니다. 내가 한 것은:
문제를 정확하게 정의하기. "원고가 STARD 체크리스트의 22개 항목을 모두 보고하는지 확인해야 합니다"는 "내 논문을 도와주세요"보다 나은 출발점입니다. 요청의 구체성이 출력의 품질을 결정합니다.
도메인 지식 제공하기. Claude Code는 Forest plot을 생성할 수 있지만, 진단 정확도 메타분석에 단순 무작위 효과 모델 대신 이변량 모델이 필요하다는 것을 알지 못합니다. QUADAS-2가 별도의 비뚤림 위험 및 적용 가능성 평가를 가진 네 가지 도메인을 가지고 있다는 것을 알지 못합니다. 그 지식은 수년간 영상의학 문헌을 읽고 저널 클럽에 참석한 경험에서 나왔습니다.
실제 원고로 테스트하기. 모든 스킬은 내가 작성하고 있는 실제 논문에서 테스트됐습니다. check-reporting이 STARD 항목을 놓치거나 analyze-stats가 잘못된 통계 검정을 사용했을 때, 오류를 설명하고 수정했습니다. 스킬들은 추상적인 설계가 아닌 사용을 통해 개선됐습니다.
실패를 기반으로 반복하기. PDF 검색 스킬은 안정적으로 작동하기까지 세 가지 버전이 필요했습니다. 원고 작성 스킬은 출력이 로봇처럼 들린다는 것을 알아차린 후 전용 "AI 패턴 감지" 단계가 필요했습니다. 각 실패는 더 나은 스킬 설명을 작성하는 방법을 가르쳐줬습니다.
패턴은 항상 같았습니다: 문제를 설명하고, Claude Code가 해결책을 만들게 하고, 실제 데이터로 테스트하고, 잘못된 것을 설명하고, 개선하고. 작동할 때까지 반복.
오픈소스로 만들기
몇 주 후, 내 연구에 충분히 잘 작동하는 스킬 모음이 생겼습니다. 비공개로 유지하거나 공유할 것인지가 문제였습니다.
답은 명확했습니다. 모든 의학 연구자들은 같은 반복적인 작업에 직면합니다. 한국의 영상의학과 전공의가 이 스킬들로 체계적 문헌고찰을 자동화할 수 있다면, 보스턴의 심장내과 전임의나 런던의 공중보건 연구자도 할 수 있습니다.
스킬들을 하나의 저장소에 패키징하고 GitHub에 공개했습니다:
git clone https://github.com/Aperivue/medsci-skills.git
cp -r medsci-skills/skills/* ~/.claude/skills/
전체 설치 과정입니다. 저장소를 클론하고, 스킬 파일을 복사하면, Claude Code가 자동으로 인식합니다.
스킬들은 MIT 라이선스 — 자유롭게 사용, 수정, 배포 가능합니다. 유일한 요건은 Claude Code 구독입니다.
연구 워크플로우에서 달라진 것
차이는 구체적이고 측정 가능합니다.
체계적 문헌고찰 PDF 검색: 오전 내내 수동 다운로드에서, 모든 오픈액세스 논문을 자동으로 검색하는 10분짜리 배치 스크립트로. 나머지 유료 구독 논문은 여전히 기관 접근이 필요하지만, OA 부분(내 분야에서 보통 40-50%)은 수동 클릭 없이 처리됩니다.
보고 준수 확인: 22개 항목 STARD 체크리스트를 수동으로 2시간 동안 검토하는 것에서, 누락 항목에 구체적인 추가 제안과 함께 플래그를 표시하는 3분짜리 자동화된 감사로.
통계 분석: R 코드를 처음부터 작성하는 것(또는 더 솔직히, 이전 프로젝트에서 복사하고 수정하는 것)에서, 일반 영어로 분석을 설명하고 출판용 출력이 포함된 재현 가능하고 문서화된 코드를 받는 것으로.
원고 초안: 빈 문서를 바라보는 것에서, IMRAD 규칙을 따르고 능동태를 사용하며 18가지 가장 일반적인 AI 작문 패턴을 피하는 구조화된 초안을 갖는 것으로.
심사자 응답: 수정 서한을 두려워하는 것에서, 특정 심사자 코멘트에 매핑된 추적 변경 사항이 있는 구조화된 항목별 응답 프레임워크를 갖는 것으로.
이 스킬들 중 어느 것도 연구자를 대체하지 않습니다. 연구자 작업의 기계적인 부분을 대체합니다. 저는 여전히 연구를 설계하고, 결과를 해석하며, 임상적 논거를 만듭니다. 하지만 포맷팅, 확인, 재확인에 훨씬 적은 시간을 씁니다.
동료 연구자들을 위한 교훈
이와 유사한 것을 고려하는 의사-연구자라면, 내가 배운 것들입니다:
코딩을 배울 필요가 없습니다. 문제를 명확하게 설명하는 법을 배워야 합니다. 증례 보고를 작성할 수 있다면 — 병력, 소견, 감별 진단, 최종 진단을 구조화된 형식으로 제시하는 — 이미 가장 중요한 기술을 가지고 있습니다. 문제 설명이 곧 문제 해결입니다.
가장 큰 고통 지점부터 시작하세요. 전체 워크플로우를 한꺼번에 자동화하려 하지 마세요. 가장 많은 시간을 낭비하는 하나의 작업을 선택하고 그것부터 자동화하세요. 저에게는 PDF 검색이었습니다. 여러분에게는 참고문헌 포맷팅, Figure 생성, 또는 준수 확인일 수 있습니다.
도메인 전문성이 어려운 부분입니다. DTA 메타분석에 이변량 모델이 적절하다는 것, 또는 TRIPOD+AI가 보정 지표 보고를 요구한다는 것을 아는 사실 — 그 지식이 스킬을 정확하게 만드는 것입니다. AI는 실행을 제공하고, 여러분은 판단을 제공합니다.
만든 것을 공유하세요. 연구 자동화는 경쟁 우위가 되어서는 안 됩니다. 인프라가 되어야 합니다. 우리 모두가 연구의 기계적인 부분을 더 빨리 처리할수록, 중요한 질문들에 더 많은 시간을 쓸 수 있습니다.
저장소는 github.com/Aperivue/medsci-skills에 있습니다. 무료이고, 오픈소스이며, Python에서 데코레이터가 무엇인지 아직도 설명하지 못하는 의사가 만들었습니다.
남유진은 영상의학 AI 연구자이자 Aperivue의 창립자입니다. 의료 영상 및 연구 자동화를 위한 오픈소스 도구를 만듭니다.