2026년 9월 24일 목요일

Human reference genome은 도대체 누구의 것인가?

추석 연휴인데 사무실에 나와 컴퓨터를 두드리고 있다. 다음 주 싱가포르에서 열리는 제14차 GA4GH(Global Alliance for Genomics and Health) Plenary Meeting에 참석하기 위한 준비 때문이다. 연휴에 굳이 사무실까지 나와야 하나 싶기도 하지만, 이번에는 단순히 학회에 참석하는 것만으로 끝날 일이 아니다.

한국에서는 국가통합바이오빅데이터구축사업(BIKO)에 참여하는 주요 인사들이 대거 참석한다. 나도 일행 중 한 사람으로서 Patrick Tan을 비롯한 PRECISE(Precision Health Research, Singapore)의 주요 인사들과 만날 예정이다. 만나서 무슨 이야기를 할 것인가 생각하다 보니 당연히 싱가포르의 국가 정밀의료 사업인 NPM(National Precision Medicine)을 공부하지 않을 수 없었다. 많은 미팅을 주선한 사업단 관계자들께 특별한 감사의 뜻을 전한다.

때마침 아주 적절한 논문도 나와 있었다. 2026년 8월 Nature Genetics에 실린 “Translating genomic data into healthcare practice with the Singapore National Precision Medicine program”이라는 Perspective 논문이다. Patrick Tan을 비롯한 PRECISE 관계자들이 대거 저자로 참여했다. 제목부터 노골적으로 translating genomic data into healthcare practice이다. 너무 길어서 읽기가 불편하다면 PRECISE 웹사이트에 실린 소개의 글만 봐도 도움이 될 것이다.

처음에는 다음 주 미팅을 위해 필요한 내용만 뽑아 읽을 생각이었다. 그런데 읽다 보니 생각보다 재미있었다.

우리는 BIKO와 같은 대규모 바이오데이터 구축 사업의 활용을 이야기할 때 대체로 두 가지를 떠올린다. 연구자가 데이터를 이용하여 좋은 논문을 쓰는 것, 그리고 기업이 이를 이용하여 신약이나 새로운 진단기술을 개발하는 것이다. 나 역시 별다른 의심 없이 그렇게 생각해 왔다.

그런데 싱가포르 NPM에는 그 사이에 한 단계가 더 있었다. Clinical Implementation Pilot(CIP)이다. 연구에서 얻은 유전체 지식을 실제 진료 과정에 집어넣어 보고, 임상적으로 정말 도움이 되는지, 비용을 들일 만한 가치가 있는지를 검증한 뒤 실제 의료체계로 옮기는 것이다. 가족성 고콜레스테롤혈증(familial hypercholesterolemia, FH)은 그렇게 해서 국가적인 유전자 검사 및 관리 프로그램으로 이어졌다. 지난주 보스턴에서 열렸던 International Precision Health Summit에서 UK Biobank 관계자도 비슷한 내용을 이야기하였다. 당시에 찍었던 발표 자료를 여기에 소개해 둔다. 2035년이 되면 영국의 전체 의료 서비스 이용에서 최대 절반에서 유전체 정보가 어떤 형태로든 활용될 수 있다고 한다. 정말 부럽지 않은가?




논문을 읽지 않고 AI가 만들어 준 digest 정도만 보았더라면 아마 “SG100K를 구축했고 연구와 임상 활용을 추진하고 있다” 정도로 이해하고 넘어갔을 것이다. 틀린 말은 아니지만 정작 중요한 것이 빠진다. 연구 결과가 저절로 의료가 되는 것이 아니라 그 사이에 clinical pathway를 만들고, health economics를 따지고, 실제 의료체계 안에서 시험하는 과정이 있었다.

NPM이 Phase I을 proof of concept, Phase II를 proof of value, 현재의 Phase III를 proof of scale이라고 부르는 이유도 이제 조금 이해가 되었다.

그런데 이 논문을 읽다가 나의 관심은 엉뚱한 방향으로 흐르기 시작했다.


그런데 우리는 도대체 누구의 유전체를 보고 있는 것일까?

싱가포르는 Chinese, Malay, Indian이 함께 사는 나라이다. PRECISE-SG100K 역시 이 세 population을 중심으로 만들어진 multi-ancestry Asian cohort이다. 그러다 보니 서로 다른 아시아 국가에서 생산한 유전체 데이터를 함께 분석하려면 무엇을 맞추어야 하는지가 궁금해졌다. 다음 주 PRECISE 사람들과 이야기를 나눌 만한 주제이기도 했다.

그런데 생각은 여기서 한 번 더 옆길로 샜다. Harmonize한다는 것이 정확히 무엇이지? Sequencing depth와 QC 기준을 맞추고, variant calling pipeline을 통일하는 것까지는 쉽게 생각할 수 있다. 그런데 reference genome이 다르면 어떻게 하지?

여기에서 또 하나의 아주 기초적인 질문이 튀어나왔다.

그런데 GRCh38은 도대체 누구의 유전체인가?

좀 당황스러운 질문이다.

GRCh37과 GRCh38은 오랫동안 들어와서 잘 알고 있다. Reference가 다르면 좌표를 변환해야 한다는 것도 알고, 최근에는 T2T-CHM13이 나왔다는 것도 알고, Human Pangenome이라는 것도 대충 알고 있었다.

그런데 정작 “GRCh38은 누구의 유전체인가?”라는 질문에는 즉시 대답할 수가 없었다.

생각해 보니 내가 가지고 있던 지식은 조각조각이었다. Human Genome Project에서 여러 사람의 DNA를 사용했다는 이야기도 어디선가 들었고, reference genome은 어느 한 사람의 genome이 아니라는 것도 알고 있었다. 한 사람의 샘플이 꽤 많은 비중을 차지한다는 것 정도는 알고 있었지만, 그것들이 머릿속에서 하나의 이야기로 연결되어 있지는 않았다.

그래서 찾아보기 시작했다.

GRCh38의 70%를 차지하는 RP11

Genome Reference Consortium의 설명을 읽어 보니 GRCh38은 여러 익명의 사람에게서 만든 genomic clone library의 염기서열을 조합한 composite genome이다. 여기까지는 예상했던 바이다.

그런데 구성 비율이 예상 밖이었다.

GRCh38 primary assembly의 약 93%가 11개의 genomic clone library에서 왔고, 그 가운데 RP11(RPCI-11 Human Male BAC Library)이라는 하나의 library가 혼자서 약 70%를 차지한다.

무려 70%라니!

여러 사람의 유전체를 골고루 섞어서 만든 reference 같은 것을 막연히 상상했다면 꽤 많이 틀린 셈이다. 실질적으로 GRCh38의 대부분은 한 사람에게서 온 것이다.

Genome Reference Consortium: Frequently Asked Questions

그런데 더 의외의 사실이 하나 있었다.

RP11 donor는 익명의 남성인데, 유전체를 분석해 보니 African-European admixed ancestry를 가진 것으로 추정된다는 것이다. 후속 연구에서는 RP11이 GRCh38의 72.6%를 차지한다고 계산했고, ancestry를 판별할 수 있었던 RP11 clone 가운데 56.0%는 African, 28.1%는 European local ancestry로 분류했다. 논문에서는 이 donor를 admixed African-American ancestry를 가진 사람이라고 표현한다.

어라?

나 역시 reference genome의 population bias를 이야기하면서 별 생각 없이 ‘Western population 중심의 reference’ 같은 표현을 사용하곤 했다. 그런데 GRCh38의 대부분을 제공한 사람이 내가 막연히 상상했던 European ancestry의 ‘백인 표준 인간’이 아니었다. 아, 여기에서 매우 주의해야 한다. 백인이 모든 인종의 표준이라는 의미로 읽지는 말기를 바란다.

더 재미있는 것은 두 번째로 큰 CTD library이다. GRCh38의 약 5.5%를 차지하는데, ancestry를 분석할 수 있었던 clone의 86.3%가 East Asian local ancestry로 추정되었다.

Aganezov et al. A complete reference genome improves analysis of human genetic variation

그러니까 GRCh38은 European genome도 아니고 African genome도 아니며, 당연히 Asian genome도 아니다.

애초에 그런 식으로 이해할 물건이 아니었다.

여러 사람에게서 얻은 DNA 조각을 이어 붙여 만든 mosaic reference이고, 그중 압도적으로 많은 부분이 한 admixed donor에게서 왔다.

그러면 T2T-CHM13은 좀 나은가?

여기까지 오니 당연히 다음 질문이 생겼다.

GRCh38이 이렇게 복잡한 물건이라면 2022년에 ‘완성된 인간 유전체’로 등장한 T2T-CHM13은 어떨까?

T2T-CHM13은 대단한 성과이다. GRCh38에서 제대로 조립하지 못했던 centromere, segmental duplication, 반복서열 등의 영역을 포함하여 telomere에서 telomere까지 이어지는 거의 완전한 인간 유전체를 만들었다.

그런데 CHM13의 정체를 알고 나면 여기에서도 이야기가 묘해진다.

CHM13은 일반적인 사람의 혈액에서 얻은 평범한 diploid genome이 아니라고 한다. Complete hydatidiform mole(완전포상기태)에서 유래한 세포주이다. 쉽게 말하면, 난자의 핵 DNA가 없는 상태에서 들어온 한 정자의 haploid genome이 복제되어 두 벌이 된 것에 가깝다. 따라서 염색체 수는 46개이지만 두 벌의 서열이 거의 동일하다. 보통 사람처럼 부계와 모계에서 물려받은 서로 다른 두 haplotype을 구별할 필요가 거의 없으므로, 완전한 genome assembly를 만들기에 매우 유리했다.

즉 CHM13이 선택된 것은 이 사람이 인류를 가장 잘 대표해서가 아니다. 완전한 genome을 조립하기에 아주 좋은, 다소 특별한 생물학적 재료였기 때문이다.

그런데 ancestry까지 들여다보면 CHM13은 대체로 European ancestry를 가진 genome이다.

여기서 또 한번 머리를 긁적이게 된다.

머리를 긁적이는 장면
뚜껑이 열릴 일이다. 팀 버튼의 <크리스마스 악몽>(1993) 중에 출연한 Dr. Finkelsterin.

GRCh38은 여러 사람의 DNA가 섞여 있고 그 대부분은 African-European admixed donor에서 왔다. T2T-CHM13은 훨씬 완전하지만 사실상 하나의 haplotype에 가까운 genome이고 predominantly European ancestry이다.

완전한 인간 유전체(complete human genome)가 인류를 대표하는 유전체(representative human genome)라는 뜻은 아니다.

생각해 보면 너무나 당연한 말인데 나는 두 가지를 은연중에 같은 문제처럼 생각하고 있었던 것 같다. Completeness와 population diversity는 전혀 다른 문제이다.

아, 그래서 Pangenome을 써야 하는구나

여기까지 오고 나니 Human Pangenome이 갑자기 다르게 보였다.

전에는 pangenome을 ‘여러 사람의 유전체를 더 많이 모아서 만든 더 좋은 reference’ 정도로 막연히 이해하고 있었다. 그러나 문제의 핵심은 reference에 sequence를 조금 더 추가하는 데 있는 것이 아니었다.

한 사람 또는 소수 사람의 linear genome 하나를 기준으로 모든 인간의 variation을 기술하는 방식 자체에 한계가 있는 것이다.

Human Pangenome Reference Consortium(HPRC)이 2023년에 발표한 첫 draft human pangenome은 서로 다른 ancestry를 가진 47명의 phased diploid assembly를 이용했다. GRCh38과 비교하면 약 119 million base pairs의 euchromatic polymorphic sequence가 추가되었고, small variant와 structural variant를 찾아내는 성능도 향상되었다.

Liao et al. A draft human pangenome reference. Nature 617, 312–324 (2023)

여기서 또 하나 궁금해졌다. Pangenome은 여러 사람의 유전체를 단순히 이어 붙인 거대한 FASTA 파일이 아니다. 여러 haplotype의 서로 다른 경로를 graph 형태로 표현한다. 그렇다면 지금까지 GRCh38이라는 하나의 linear reference를 놓고 BWA로 read를 mapping하던 방식도 달라져야 한다. 실제로 pangenome에서는 vg Giraffe와 같은 graph-aware mapper가 사용된다. 다만 graph 안에 GRCh38이나 CHM13과 같은 기존 reference를 하나의 path로 유지할 수 있으므로, 기존 좌표계와의 연결을 완전히 포기하는 것은 아니다. 결국 pangenome의 문제는 reference sequence 하나를 바꾸는 것에 그치지 않고, mapping에서 variant representation, 그리고 좌표계에 이르는 분석 체계 전체를 바꾸는 문제인 셈이다.

하지만 여기에서도 ‘이제 인류의 다양성을 충분히 대표한다’고 말하기는 어렵다. 이것은 어디까지나 47명으로 만든 첫 draft였고, HPRC 자체도 더 많은 사람과 population을 포함하는 방향으로 확장하고 있다. 한편 중국에서는 36개 population을 대상으로 별도의 Chinese pangenome reference를 구축했다.

Gao et al. A pangenome reference of 36 Chinese populations. Nature 619, 112–121 (2023)

그러면 또 문제가 생긴다.

한국인은 한국인에게 더 잘 맞는 reference를 만들고, 중국은 중국 population을 위한 pangenome을 만들고, 싱가포르는 Chinese, Malay, Indian을 포함하는 reference를 만들면 각 population의 분석에는 분명 도움이 될 것이다.

그런데 그렇게 만든 데이터를 나중에 한데 모아 분석하려면 어떻게 하지?

결국 다시 PRECISE로 돌아왔다

처음에는 다음 주 PRECISE 사람들과 무엇을 이야기할 것인지 준비하다가 여기까지 흘러왔다.

이번에 읽은 Nature Genetics 논문에서 PRECISE-SG100K는 Chinese, Malay, Indian을 중심으로 한 multi-ancestry Asian population resource로 소개된다. 싱가포르 NPM은 Phase III가 끝날 무렵에는 국민의 약 10%를 genetically mapped population으로 만들겠다는 계획을 갖고 있다.

논문은 또 PRECISE가 GA4GH의 WGS Quality Control Standards, Regulatory and Ethics Work Stream, federated gnomAD, National Initiatives Forum 등에 참여하고 있다고 설명한다. 그리고 공교롭게도 내가 다음 주 참석할 2026년 제14차 GA4GH Plenary가 아시아에서는 처음으로 싱가포르에서 열린다는 내용도 이 논문에 들어 있다.

Translating genomic data into healthcare practice with the Singapore National Precision Medicine program. Nature Genetics 58, 1760–1772 (2026)

그러니 이 문제를 그들과 이야기해 보지 않을 이유가 없다.

아시아 각국이 자기 population에 더 적합한 reference 또는 pangenome을 사용하기 시작한다면, 그 장점을 살리면서도 국가 간 데이터의 interoperability를 어떻게 유지할 것인가. 또 T2T와 human pangenome이 등장한 지금, 언제까지 GRCh38이라는 하나의 linear reference에 의존할 것인가. 그렇다고 지난 수십 년 동안 GRCh37과 GRCh38을 기준으로 축적한 방대한 데이터를 버릴 수도 없다.

다음 주에는 질문을 할 기회가 주어진다면 이런 이야기도 한번 꺼내 볼 생각이다. 어떤 답을 들을 수 있을지 궁금하다.

처음의 의문은 우리 식으로 말하자면 biosample의 provenance에 관한 것이었다. GRCh38이라는 reference를 구성한 DNA는 도대체 누구에게서 왔는가? 어떤 시료에서 만들어졌고, 그 시료를 제공한 사람의 ancestry는 무엇인가? 평소 데이터를 다루면서 provenance의 중요성을 그렇게 강조하면서도, 정작 가장 들어 온 reference genome의 provenance에 대해서는 제대로 알고 있지 못했다.

그런데 RP11을 거쳐 T2T-CHM13과 human pangenome까지 따라가고 나니 질문의 성격이 달라졌다. 처음에는 reference를 만든 시료의 출처가 궁금했는데, 점차 ‘무엇을 reference라고 부를 것인가’로 질문이 바뀌고 있었다.

GRCh38에서는 여러 사람의 DNA 조각을 하나의 linear genome으로 조립했다. T2T-CHM13에서는 거의 하나의 haplotype으로부터 훨씬 완전한 genome을 만들었다. 그리고 pangenome에 와서는 하나의 linear sequence가 모든 사람을 대표해야 한다는 전제 자체에서 벗어나기 시작했다. Reference가 더 정확해졌다기보다 reference라는 개념 자체가 달라지고 있는 셈이다.

이것은 과거 Human Genome Project의 역사를 되짚어 보는 잡학으로 끝날 문제도 아니다. BIKO에서 수십만 명의 유전체를 만들고, 언젠가 SG100K를 비롯한 다른 아시아 국가의 데이터와 함께 분석하려 한다면 각 population의 다양성을 더 잘 표현하는 것과 서로 다른 데이터 사이의 interoperability를 유지하는 것을 동시에 해결해야 한다.

추석 연휴에 다음 주 국외 출장 준비를 하다가 생각보다 멀리 와 버렸다. 시작은 biosample의 provenance였는데, 끝에 와 보니 질문은 전혀 다른 것이 되어 있었다.

앞으로 우리는 무엇을 reference라고 부르게 될까?

MAX4410의 시대는 지나갔는가

Fluid Ardule의 I²S DAC(PCM5102A 사용) 출력은 헤드폰을 직접 울리기에 적당하지는 않다. 음원 파일이나 여러 채널의 출력이 동시에 나오는 MIDI 파일 재생에서는 큰 문제가 없으나, 어쿠스틱 피아노 사운드폰트를 걸어놓고 연주할 때에는 약간 빈약한 느낌이다. 16개 채널 중 하나에서만 소리가 나므로 그러한 기분이 드는 것은 당연하다. 이 DAC의 출력은 파워앰프로 보내어 스피커를 울리는 것이 가장 바람직하다.

근본적인 해결책은 적당한 헤드폰 앰플리파이어를 쓰는 것이다. 예전에 MAX4410칩을 사용한 헤드폰 앰플리파이어 보드를 몇 개 구입해 둔 일이 있다. 문제는 이를 Fluid Ardule 내에 깔끔하게 넣어버릴 수가 없다는 점이다. 우선 전후 패널이 너무 두꺼워서 볼륨 pot의 나사산이 이를 통과하여 나오지 못한다. 더 큰 문제는 SMPS의 자체 노이즈가 보드의 음성 출력에 딸려 나오는 것이다. 전원이 들어간 SMPS에 가까이 귀를 대면 '삐~뀨~'하는 소리가 난다. DAC에서는 문제가 없으나 이를 MAX4410 앰플리파이어 보드의 전원으로 공급하면 여지없이 출력단에서 이 소리가 딸려 나온다. 

따라서 별도의 전원을 공급하는 거치형 헤드폰 앰플리파이어를 만들어야 한다. 그러려면 기존의 보드를 적당한 케이스에 넣고 입출력 단자와 파일럿 LED 등을 달아야 한다. 서투른 DIYer를 가장 힘들게 하는 점은 바로 케이스 가공하기가 아니던가.

차라리 완제품 앰프를 살까? 알리익스프레스를 검색해 보니 MAX97220이라는 칩을 사용한 보드가 대세이다. 3.5mm 스테레오 폰잭이 입력과 출력에 전부 달려 있어고 USB-C 커넥터가 붙어 있어서 작업이 편리한 보드가 눈에 뜨였다. 내가 보유한 MAX4410 보드는 출력용 폰잭만 붙어 있다.

항목 MAX97220 MAX4410
용도 저왜곡 헤드폰 앰프 저전압 헤드폰 앰프
전원 약 2.5–5.5 V 약 1.8–3.6 V 계열*
출력 방식 DirectDrive 계열, ground-referenced DirectDrive 계열
입력 차동 입력 가능 기본적으로 single-ended
출력 능력 비교적 강함 충분하지만 구형 설계
노이즈/왜곡 매우 낮음 양호
PSRR 우수 상대적으로 불리
PCM5102A와 조합 추천 사용 가능
세대 2011년 출시 2000년대 초반 출시

* 시중 MAX4410 모듈이 5–12 V 입력을 지원한다고 표시되어 있다면, 보드에 별도의 전압 레귤레이터가 포함되어 MAX4410의 실제 동작전압으로 낮추어 주는 경우를 구분해야 한다. 내가 갖고 있는 보드가 그러하다.

성능은 비교적 최근 제품인 MAX97220이 더 나은 것 같다. 구입을 할까? 일단 하나를 주문한 다음, 작업실로 쓰는 작은 방으로 들어갔다. MAX4410 보드에 케이스와 커넥터를 연결하려고 책상 위에 부품을 늘어 놓고는 거의 두 달 가까운 시간이 흘렀다.

에이, 해 보자. 파일럿 LED는 보드의 레귤레이터에 붙여버렸다. Fluid Ardule의 핵심 부품인 라즈베리 파이 3B를 한때 품고 있었던 파랑 알루미늄 케이스의 일부를 사용했다. 사실 사진에서 보인 것은 상판이다. 하판은 라즈베이 3B의 마운팅용 보드가 되어 Fluid Ardule 내에 영구히 머물고 있다.


몇 달 전에 측면 구멍을 넓히느라 무척 애를 먹었다.


나쁘지 않다! 앰프의 볼륨을 올리니 피아노 소리가 이제야 좀 박력있게 느껴진다. 출력단자에 해당하는 듀폰 커넥터의 접촉이 약간 불량한데, 핀을 살짝 구부리든지 또는 납땜으로 직결을 해 버리면 된다.

이것을 매번 어댑터로 구동하려면 약간 성가시다. 보조배터리를 연결하면 좋을 것 같은데, 배터리의 USB-A 스타일 단자에서 단순히 VBUS와 GND를 뽑아서 일반적인 어댑터 단자를 통해 앰프를 연결하면 몇 초 후에 배터리가 자동으로 차단된다. 아마도 저전류가 흐를 때에는 보조배터리의 출력을 차단하는 너무나 스마트한 기능이 숨어 있는 것 같다. 보조배터리의 USB-C 단자를 이용하되, 케이블 끝의 USB-C 단자에 다음과 같은 보드를 달아서 원하는 전압을 뽑으면 되지 않을까? USB-C 단자에서는 단순히 +5V/GND에서 선을 끌어다가 다른 기기를 구동하면 안 된다. USB-A 시절과 같이 그렇게 단순하지 않다. 



ChatGPT의 설명을 들어 보자.

USB-C에서는 CC1/CC2(Configuration Channel) 핀을 통해 전원을 공급하는 쪽(Source)과 받는 쪽(Sink)이 서로 연결 상태와 역할을 확인합니다. 정상적인 USB-C Sink 장치는 CC 핀에 Rd 저항(보통 5.1 kΩ)을 연결하여 “나는 전원을 받는 장치다”라고 Source에 알려줍니다. 이 절차가 성립해야 Source가 VBUS에 5 V를 공급하는 것이 USB-C의 정상적인 동작입니다.

따라서 USB-C 커넥터에서 VBUS와 GND만 납땜해서 빼내면 문제가 생길 수 있습니다. 단순한 충전기는 우연히 5 V를 계속 내보낼 수도 있지만, 규격을 제대로 따르는 충전기나 보조배터리는 Sink가 연결된 것으로 인식하지 못하여 아예 5 V를 켜지 않거나 일정 시간이 지나면 출력을 차단할 수 있습니다.

여기에 보조배터리에는 또 하나의 문제가 있습니다. CC 협상이 제대로 되어 5 V가 나왔다고 해도, 헤드폰 앰프처럼 소비전력이 매우 작은 장치는 보조배터리가 “부하가 없어졌다”고 판단하여 자동으로 꺼질 수 있습니다. 어제 100 Ω 저항을 달고, 다시 91 Ω을 병렬로 추가했는데도 배터리가 꺼졌던 문제는 이 저부하 자동 차단과 관련된 별개의 문제일 가능성이 큽니다.

보유 중이던 MAX4410 보드를 케이스에 넣었으니 더 이상 필요하지 않게 된 MAX97220 앰플리파이어 보드는 결국 주문을 취소하였다. 

공작을 한동안 쉬면 감각이 줄어서 질 좋은 결과물이 나오지 않는다. 사실 어제 업무 스트레스를 삭이기 위해 정말 오랜만에 납땜인두를 들었다가 제대로 되는 것이 하나도 없어서 엄청난 좌절감을 느꼈었다. 온갖 부품과 잡동사니를 다 치워 버리고 더 이상 DIY를 하지 말까 생각도 했었다. 욕심을 버리고 차분한 마음을 갖는 것이 무엇보다 중요하다.

다음 DIY 프로젝트는 KORG X2 Music Workstation의 망가진 2DD 플로피 디스크 드라이브를 대체할 에뮬레이터를 달아 보는 것. 이렇게 하면 USB 매체를 이용해서 X2와 PC 사이의 양방향 데이터 전송이 가능하다. 현재는 SysEx를 이용한 느린 덤프만 겨우 가능한 상태이다. PCG 파일의 역엔지니어링이 충분히 가능하므로 플로피 에뮬레이터가 제대로 설치만 되면 X2를 Ardule 생태계에 편입할 수 있을 것이다.


2026년 9월 24일 업데이트

많은 보조배터리는 버튼을 더블클릭하면 저전류(소전류) 충전 모드로 진입한다고 한다. 이러한 문제를 겪는 것이 나 혼자만은 아니니, 어쩌면 제조사측에서 합리적인 해결 방안을 이미 만들어 두었을 가능성이 크다. 불필요한 부품을 또 쇼핑하여 자꾸 재고만 늘릴 것이 아니라 테스트를 먼저 해 보자.

결과는 성공이었다. 이 제품의 경우 버튼을 길게 누르면 저전류 충전 모드로 들어간다. 2초 정도는 눌러야 하는 것 같다. 그 뒤에는 충전상태를 표시하는 LED가 주기적으로 다음 영상과 같이 흐르듯 작동한다.


저전류 충전 모드에서는 케이블을 뽑아서 부하를 제거해도 LED가 계속 켜진 상태이다. 이때는 버튼을 더블클릭하면 꺼진다. 인터넷 검색과 실험을 통해서 불필요한 부품 구입에 대한 부담을 줄일 수 있었다.

헤드폰 앰프 작동에 사용한 배터리(아이리버 IWP-20)의 제품 겉면에 인쇄된 상세 정보.


2026년 9월 23일 수요일

바이오데이터를 공유한다는 것은 무엇인가? Open Repository, Controlled Access, 그리고 Federation

※ 이 글은 다음 주 싱가포르에서 열리는 제14차 GA4GH Plenary meeting 참석을 앞두고 개인적인 공부를 위해 작성한 것이다. GA4GH의 개념과 관련 자료를 이해하기 위해 생성형 AI(ChatGPT)와 대화하면서 초안을 자동 생성하고, 내용을 검토·수정하여 정리하였다. 따라서 GA4GH나 소속기관의 공식 입장을 나타내는 글이 아니다.


연구데이터를 공유해야 한다는 데에는 이제 큰 이견이 없다. Open Science와 FAIR Data가 연구정책의 중요한 원칙이 되었고, 공공 연구비로 생산한 데이터는 가능한 한 널리 재사용할 수 있어야 한다는 요구도 강해졌다.

그러나 바이오데이터, 특히 사람의 유전체와 임상정보를 다루기 시작하면 이야기는 금방 복잡해진다.

모든 데이터를 인터넷에서 자유롭게 내려받게 하는 것이 과연 가장 바람직한 데이터 공유일까?

더 나아가 데이터를 반드시 한곳에 모아야 할까? 원자료를 분산해서 보관하더라도, 적어도 메타데이터만큼은 한곳에 모아야 제대로 검색하고 활용할 수 있는 것일까?

어쩌면 우리는 지금까지 ‘공유’를 너무 쉽게 한곳에 모으고, 한곳에서 검색하고, 필요한 데이터를 내려받는 것으로 생각해 온 것은 아닐까?

그렇지 않다. 오히려 오늘날의 바이오데이터 인프라를 이해하려면 다음 세 가지 sharing architecture를 구별해 볼 필요가 있다.

  1. Open-access repository
  2. Controlled-access repository / environment
  3. Federated data-sharing infrastructure

이 세 가지는 앞의 방식이 낡아서 뒤의 방식으로 대체되는 발전단계가 아니다. 데이터의 성격과 위험, 그리고 연구환경에 따라 서로 다른 방식이 필요하며 실제로는 함께 존재한다.

1. 가장 단순하고 강력한 모델: Open-access repository

생명정보학 연구자에게 가장 익숙한 것은 공개 데이터 저장소이다.

연구자가 데이터를 생산하고 repository에 제출하면 accession이 부여되고, 다른 연구자는 검색하여 데이터를 내려받는다.

Researcher
    ↓ submit
Repository
    ↓ search / download
Research community

염기서열 데이터에서는 INSDC가 대표적인 사례이다. GenBank, ENA, DDBJ가 데이터를 국제적으로 교환함으로써 연구자는 공개된 nucleotide sequence data를 전 세계 어디에서나 활용할 수 있다.

이 모델은 현대 생명과학 발전에 엄청난 기여를 했다. 논문에 염기서열 몇 줄을 싣는 대신 accession을 제시하면 전 세계 연구자가 동일한 원자료를 다시 사용할 수 있게 되었다. 이처럼 연구데이터를 가능한 한 제약 없이 이용할 수 있게 하는 Open Access는 Open Science의 이상과도 매우 잘 맞는다.

Open Science의 이상과도 매우 잘 맞는다.

그러나 여기에서 중요한 구별이 하나 필요하다.

Open Science가 반드시 모든 데이터를 Open Access, 즉 누구나 별도의 접근 승인을 받지 않고 이용할 수 있는 형태로 제공하라는 뜻은 아니다.

개인정보, 임상정보, human genomic data처럼 공개함으로써 연구참여자에게 위험을 초래할 수 있는 데이터에는 정당한 접근 제한이 필요하다. UNESCO의 Recommendation on Open Science도 scientific knowledge는 가능한 한 개방되어야 하지만 privacy, confidentiality, human subjects 보호 등의 이유로 정당화되고 비례적인 접근 제한을 둘 수 있으며, 필요한 경우 defined access criteria에 따른 mediated access를 사용할 수 있음을 명시하고 있다.

따라서 Open Science의 반대말이 Controlled Access인 것은 아니다.

오히려 Controlled Access 역시 책임 있는 Open Science를 구현하는 한 방법이라고 볼 수 있다.

2. 사람의 유전체가 등장하면서 문제가 달라졌다

사람의 genome은 일반적인 연구데이터와 성격이 다르다.

이름과 주민등록번호를 제거했다고 해서 완전히 익명이라고 단정하기 어렵다. Genotype이나 molecular sequence 자체가 개인 식별 가능성을 가질 수 있고, phenotype이나 clinical information과 결합되면 위험은 더 커질 수 있다.

따라서 human genomic data에서는 다음과 같은 모델이 필요해졌다.

Researcher
    ↓ request
Data Access Committee
    ↓ review
Controlled-access repository
    ↓ approved access
Researcher

미국 NIH의 dbGaP가 대표적인 사례이다.

연구자는 단순히 회원가입을 하고 controlled data를 내려받는 것이 아니라 Data Use Certification을 포함한 access request를 제출한다. NIH Data Access Committee(DAC)는 제안된 연구목적이 연구참여자의 consent와 해당 dataset에 설정된 제한조건에 부합하는지를 검토한다.

따라서 핵심 질문은 더 이상 단순한 availability가 아니다.

Can I find the data?

에 더하여

Am I allowed to use the data
for this particular purpose?

라는 질문이 등장한다.

이것이 Controlled Access의 세계이다.

3. 하지만 Controlled-access repository만으로도 충분하지 않다

여기까지는 여전히 repository 중심의 사고방식이다.

승인을 받으면 데이터를 repository에서 연구자가 있는 곳으로 가져오는 방식을 생각하기 쉽다.

Repository
     ↓
 approved download
     ↓
Researcher's environment

그러나 dataset이 수십 TB, 수백 TB가 되고 여러 병원과 국가에 분산되면 상황이 달라진다.

더 중요한 것은 모든 데이터를 하나의 중앙 repository로 옮기는 것 자체가 불가능하거나 바람직하지 않을 수 있다는 점이다.

병원 A의 데이터는 병원 A에 있어야 하고, 병원 B의 데이터는 병원 B의 governance 아래 있어야 할 수 있다. 한국의 데이터와 싱가포르의 데이터에는 서로 다른 법률과 consent, access policy가 적용될 수도 있다.

그렇다면 새로운 질문이 생긴다.

데이터를 한곳에 모으지 않고도 하나의 연구 인프라처럼 사용할 수는 없을까?

여기에서 Federation이라는 개념이 중요해진다.

4. GA4GH가 풀려는 문제

GA4GH(Global Alliance for Genomics and Health)는 거대한 국제 유전체 데이터베이스를 만들려는 조직이 아니다.

GA4GH는 genomic and health community가 실제로 필요로 하는 technical standards와 regulatory·ethical policy tools를 개발한다. 그 목적은 서로 독립적으로 관리되는 genomic and health data infrastructure가 안전하고 책임 있는 방식으로 함께 작동할 수 있게 하는 데 있다.

예를 들어 연구자는 먼저 데이터가 어디에 있는지 찾아야 한다.

                 Researcher
                     ↓
                   Beacon
                     ↓
          ┌─────┼─────┐
          ↓          ↓          ↓
        Korea    Singapore    Europe

Beacon은 관련 데이터가 존재하는지를 찾게 해준다. 데이터 자체를 연구자에게 곧바로 넘겨주는 서비스는 아니다.

그 다음에는 그 데이터가 어떤 목적으로 사용될 수 있는지를 알아야 한다.

Dataset
   ↓
  DUO

DUO(Data Use Ontology)는 dataset의 permitted use를 machine-readable하게 표현하기 위한 ontology이다.

반대편에는 연구자가 있다.

Researcher
    ↓
Passport / Visa

연구자가 누구인지, 어떤 자격과 authorization을 가지고 있는지를 서로 다른 기관이 신뢰할 수 있는 방식으로 전달할 필요가 있다.

그리고 실제 data object를 표준적인 방식으로 가리키고 접근하기 위해 DRS(Data Repository Service)와 같은 interface를 사용할 수 있다.

이렇게 되면 서로 다른 기관이 반드시 같은 software나 같은 storage를 사용할 필요가 없다.

중요한 것은 같은 시스템을 사용하는 것이 아니라 서로 이해할 수 있다는 것이다.

5. 더 나아가 데이터를 움직이지 않을 수도 있다

Federation에서 특히 흥미로운 변화는 분석 방식에서 나타난다.

전통적인 모델은 다음과 같다.

DATA
 ↓
Researcher

연구자가 데이터를 내려받아 자신의 compute environment에서 분석한다.

그러나 sensitive genomic data에서는 반대로 할 수 있다.

WORKFLOW
   ↓
 DATA

즉 연구자의 분석 workflow를 데이터가 존재하는 secure compute environment로 보내는 것이다. 흔히 compute-to-data 또는 bring the algorithms to the data라고 표현한다.

GA4GH의 WES(Workflow Execution Service)와 TES(Task Execution Service)는 이런 방식의 federated analysis를 지원할 수 있는 표준 interface를 제공한다.

따라서 여기에서는 데이터 공유라는 말 자체의 의미가 달라질 수 있다.

과거에는 흔히

데이터를 공유한다 = 파일을 전달한다

라고 생각했다.

Federation에서는 이를 다음처럼 생각할 수도 있다.

데이터를 공유한다 = 허가된 연구자가 그 데이터로부터 연구결과를 얻을 수 있게 한다.

파일 자체가 연구자의 컴퓨터로 전달되지 않아도 데이터는 연구에 활용될 수 있다.

6. 세 가지 모델을 비교해 보자

Open-access repository Controlled-access repository Federated infrastructure
대표 질문 데이터가 공개되어 있는가? 내가 이 데이터를 이 목적으로 사용할 수 있는가? 서로 다른 기관의 데이터를 함께 사용할 수 있는가?
접근 방식 공개 검색·다운로드 신청·심의·승인 Discovery + authorization + interoperable access/compute
데이터 위치 Repository Controlled repository / secure environment 여러 기관에 분산 가능
연구자 인증 상대적으로 단순 중요 기관 간 신뢰 가능한 identity가 특히 중요
Data-use restriction 상대적으로 적음 핵심 요소 Machine-readable policy와 기관 간 trust가 중요
분석 방식 주로 다운로드 후 분석 승인 후 다운로드 또는 secure environment Compute-to-data 가능
대표 사례/개념 INSDC 등 dbGaP, EGA 등 GA4GH standards를 활용한 federated ecosystem
핵심 가치 Openness Responsible access Interoperability + Trust + Local control

여기에서 중요한 것은 이 세 모델을 우열관계로 보지 않는 것이다.

공개할 수 있는 nucleotide sequence를 굳이 복잡한 access-control system 안에 넣을 필요는 없다.

반대로 identifiable human genomic data를 Open Science라는 이유만으로 unrestricted download하게 만들어서도 안 된다.

그리고 데이터가 여러 병원과 국가에 분산되어 있다면 하나의 controlled repository로 모두 복사하는 것보다 federation이 적절할 수 있다.

결국 데이터의 성격에 맞는 sharing architecture를 선택해야 한다.

7. Open과 Closed 사이에는 넓은 공간이 있다

이런 관점에서 보면 데이터 공유를

OPEN ←────────────────────────→ CLOSED

라는 한 축으로만 생각하는 것이 오히려 문제일 수 있다.

실제 연구데이터 infrastructure에는 훨씬 다양한 access model이 존재한다.

Open download
      ↓
Registered access
      ↓
Controlled access
      ↓
Secure analysis environment
      ↓
Federated analysis

아래로 내려간다고 반드시 데이터가 덜 공유되는 것은 아니다.

예를 들어 100,000명의 genome을 연구자에게 직접 다운로드하게 하는 것보다 secure environment 안에서 승인된 workflow를 실행할 수 있게 하는 것이 개인정보를 더 잘 보호하면서도 실제 연구 활용성을 높이는 방법이 될 수 있다.

따라서 중요한 질문은

How open is the data?

하나만이 아닐 것이다.

어쩌면 더 중요한 질문은

How usable is the data under appropriate governance?

일 수 있다.

8. 결국 핵심은 Trust이다

Open repository에서는 trust 문제가 상대적으로 단순하다. 누구나 데이터를 사용할 수 있기 때문이다.

Controlled access에서는 연구자를 신뢰해야 한다.

Federation에서는 한 단계 더 나아간다.

기관이 다른 기관을 신뢰해야 한다.

Can Hospital A trust
the identity issued by Institution B?

Can Singapore trust
an access authorization from Korea?

Can the data custodian trust
the workflow submitted by a foreign researcher?

따라서 API 몇 개를 연결한다고 federation이 완성되는 것은 아니다.

오늘 공부하면서 나는 federation의 핵심을 다음과 같이 정리하게 되었다.

Federation = Trust + Interoperability + Local control

9. 다시 Open Science로 돌아가면

이제 처음의 질문으로 돌아가 보자.

Open Science는 모든 연구데이터를 인터넷에 공개하는 것일까?

적어도 바이오데이터에서는 그렇게 단순하게 정의하기 어렵다.

Open Science가 추구해야 할 것을 반드시 unrestricted access라고 보기보다 maximum responsible reuse라고 생각하는 편이 더 적절할 수도 있다.

공개 가능한 데이터는 open repository에 둔다.

민감하지만 연구가치가 높은 데이터는 controlled access로 제공한다.

그리고 물리적으로 이동시키기 어렵거나 서로 다른 기관의 governance 아래 있어야 하는 데이터는 federation을 통해 발견하고, 허가받고, 분석한다.

OPEN-ACCESS REPOSITORY
          │
          │
  CONTROLLED ACCESS
          │
          │
FEDERATED ACCESS & ANALYSIS

이들은 서로 경쟁하는 모델이 아니다.

데이터를 가능한 한 많이 공유하면서도, 그 데이터가 요구하는 책임을 지키기 위해 만들어진 서로 다른 도구들이다.

이렇게 생각하고 나니 GA4GH의 의미도 조금 다르게 보인다.

GA4GH는 Open Science를 제한하기 위한 체계라기보다, 단순한 Open Access로는 공유할 수 없는 genomic and health data까지 책임 있는 재사용의 영역으로 끌어들이기 위한 기술적·governance적 시도라고 볼 수 있지 않을까.

GA4GH 스스로도 genomic and health-related data의 공유가 human health의 발전에 중요하다고 전제하면서, privacy, non-discrimination, procedural fairness와 human rights에 기반한 responsible data sharing을 강조한다.

다음 주 싱가포르에서 실제 GA4GH community의 사람들을 만나고 Plenary의 여러 발표를 들으면서, 오늘 공부하며 만들어 놓은 이 그림이 실제 현장에서는 어떻게 구현되고 있는지 확인해 보고 싶다.


참고자료

  • UNESCO, Recommendation on Open Science
    https://www.unesco.org/en/legal-affairs/recommendation-open-science
  • GA4GH, Framework for Responsible Sharing of Genomic and Health-Related Data
    https://www.ga4gh.org/framework/
  • GA4GH, What We Do
    https://www.ga4gh.org/what-we-do/
  • GA4GH, About Us
    https://www.ga4gh.org/about-us/
  • NIH dbGaP, Requesting Controlled-Access Data
    https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/about.html

2026년 9월 21일 월요일

이 롱우드(Longwood)는 그 롱우드가 아니었네

지금으로부터 꼭 20년 전, 보스턴에 약 두 달 넘게 가족과 함께 장기 출장을 나온 일이 있다. Harvard Medical School의 George M. Church 연구실에서 polony sequencing 기법을 통해 대장균 변이체의 유전체 염기서열을 해독하는 임무를 띠고서. 실제로는 라이브러리를 만드는 데 시간이 많이 걸려서 미국에 머무는 동안에는 본격적인 시퀀싱 실험까지 이어지지는 못했었다. 이런 기회를 갖게 해 준 21C 프론티어 미생물유전체활용기술개발사업단에게 여전히 고마운 마음을 잊지 않고 있다. 

당시 Church Lab에서 만났던 한국인 방두희 박사는 현재 연세대학교 화학과에서 교수로 재직 중이고(웹사이트), Gautam Dantas(Washington University in St. Louis), Greg Porreca, Nicholas Reppas, Jay Shendure, Kun Zhang, Resmi Charalel 정도의 얼굴이 생각이 난다(Church Lab members 1989-2014). 나를 직접적으로 도와주었던 사람은 Sara Vassallo였다. Gautam은 그로부터 수년 뒤에 미국에서 열렸던 다른 학회에서 한번 우연히 만난 일이 있다. 

기억나는 또 다른 과학자는 대만인인 Hsin-Hung (David) Chou. 그는 현재 국립대만대학교에서 재직 중이다(웹사이트1, 웹사이트2). 내 기억이 정확하다면 당시 시퀀싱을 할 샘플은 실험적 장기 진화 연구(Long-Term Evolution Experiment, LTEE, 꽤 최근까지는 Long-Term Experiment Evolution으로 불렸었음)의 대가인 Richard E. Lenski 교수(미시건 주립대)에게서 얻기로 한 것이었다. 시퀀싱용 샘플 균주가 왜 왜 하바드 대학교에 있는가? 2006년 당시 하바드 대학교 Department of Organismic and Evolutionary Biology에서 부교수로 있던 Christopher J. Marx는 Lenski 연구실에서 박사후연구원으로 근무한 일이 있고, Marx는 바로 David의 박사과정 지도교수였기 때문이다. David과 함께 케임브리지의 메인 캠퍼스 Marx 랩에 가서 진탕배양기 속에서 달그락거리는 수십개의 배양용 플라스크를 보았던 기억이 난다. 몸집이 매우 큰 친구였던 David과는 같이 밥을 먹거나 커피를 마시면서 이야기를 할 기회가 많았다. 그 후에 몇 차례 이메일로 연락을 주고받았다가 마지막 이메일을 보낸 것이 꼭 10년 전인 2016년이었다. 이 글을 쓰면서 문득 생각이 나서 이메일을 보냈고, 반가운 답장을 받았다.

그 뒤로 보스턴을 들른 것은 2년 전에 비행기를 갈아타기 위해 로건 국제 공항에 두어 시간 머문 것이 전부였다. Church Lab은 찰스 강 남쪽, 대형병원이 밀집한 롱우드 의료지구(Longwood Medical Area)에 있다. 반면 본교는 찰스강 북쪽, 케임브리지에 위치한다. 두 캠퍼스의 거리는 약 5 km. 20년 전에 내가 있었던 동네는 바로 남쪽에 해당한다. 우리 가족은 Church Lab이 위치한 곳에서 걸어갈 수 있는 거리인 Back Bay Manor라는 아파트에서 잠시 거주했었다. 무슨 이유인지는 모르겠으나 지금은 폐쇄된 상태라고 한다. 아내는 근처 Stop & Shop(구글맵)에서 카트 가득 식료품을 구입하여 매번 집에서 요리를 하느라 정말 고생이 많았다. 예나 지금이나 나는 외식에 너무 인색했으니...

그로부터 꼭 20년이 지나서 보스턴으로 출장을 오게 되었다.





롱우드 거리(Longwood Avenue)는 어떻게 바뀌었을까?


David이 이 던킨의 커피가 일품이라고 했었는데... 롱우드 갤러리아 안 푸드코에 있다.

롱우드 갤러리아는 아직도 건재하다.

Beth Israel Deaconess Medical Center.

롱우드 센터. Dana-Farber Cancer Institute와 Boston Children's Hospital이 여기에 입주해 있다.

Boston Children's Hospital에 근무하는 한국인 과학자를 만난 뒤 Green Line(T)을 타러 나섰다. 내가 뻔질나게 T를 탔던 역 이름이 Longwood였던 것으로 생각하고 길을 물어서 찾아갔는데 길거리 모습이 영 익숙하지 않다. 지하철역을 조금만 넘어가면 가족과 같이 두 달 넘게 살았던 아파트가 나오는데, 역에 다가갈수록 점점 길거리의 모습이 낯설게 느껴지는 것이었다. 막상 찾아간 역은 굴다리 밑으로 열차가 지나간다. 이상하다? 절대로 이런 역이 아니었는데... 분명히 차도와 나란히 달리는 선로가 있었고 지금 눈앞에 펼쳐지는 주변 길거리의 모습도 20년 전의 기억과는 너무나 달랐다.

엥? 선로가 굴다리 아래를 통과한다. 내가 기억하는 롱우드 역은 이렇지 않았는데...

T에 오른 뒤 Green Line 노선도를 확인해 보았다. 한 정거장만 북동쪽으로 올라가면 Museum of Fine Arts, 그리고 Northeastern, Prudential 등 익숙한 역명이 나와야 하는데 왜 하나도 맞지를 않나? 노선도를 바라보고 있노라니 비로소 궁금증이 풀렸다. 내가 T를 탔던 곳은 Longwood가 아니라 이곳에서 남동쪽으로 1마일 남짓 떨어진 Longwood Medical Area 역이었던 것이다. 즉 Galleria를 나와서 왼편이 아니라 정 반대편인 오른쪽으로 갔어야 했다.


MBTA(우리가 흔히 말하는 MBTA test가 아니라 Massachusetts Bay Transportation Authority임)에서 제공하는 노선도에 의하면 Longwood는 D 지선, Longwood Medical Area는 E 지선에 위치한다. 

T Green Line 노선도(출처).


기억이란 얼마나 부정확한 것인가! 겨우 20년 전에 살았던 곳도 이렇게 제대로 기억하고 있지 못하다니. 

2026년 9월 11일 금요일

느린게 아니라 기다리고 있었던 것

"기다리고 있었습니다"

시인, PD, 가수이자 아나운서인 이상협 씨가 KBS 클래식 FM '당신의 밤과 음악(밤 10시~)'에서 종종 들려주는 멘트이다. 요즘 드럼 패턴학에 지나칠 정도로 몰두하면서 DIY synth인 Fluid Ardule의 운영 스크립트 개선은 상대적으로 신경을 덜 쓰고 있었다. 화면 전환의 특정 위치에서만 반응이 너무 늦어서 왜 그런지 늘 고민을 하고 있었는데, 그것은 결국 코딩의 불완전함 때문이었다. 라즈베리 파이 3B, SPI로 연결한 3.5인치 TFT 디스플레이와 같은 '소박한 하드웨어'의 문제가 아니었다. 뭔가를 기다리게 만든 코드가 문제였다.

어제의 퇴근 후 개발에서는 작정하고 시간을 재기로 했다. 화면을 그리는 시간, framebuffer에 쓰는 시간, 이벤트가 들어온 뒤 실제 렌더링이 시작되는 시간을 나누어 측정했다. 

Home에서 Sound 서브메뉴로 진입하는 순간의 코드가 문제였다. 화면을 새로 그려야 한다는 dirty 상태가 설정되지 않았던 것이다. 렌더링 함수는 호출되었지만 새로 그릴 것이 없다고 판단하여 그냥 돌아갔고, 나중에 다른 이벤트가 화면을 dirty 상태로 만들 때까지 기다리고 있었다. 너무나 허망했다. 이제는 버튼을 누르면 거의 즉각적으로 화면이 바뀐다.

이것 외에도 사운드폰트를 다루는 방식 등 많은 개선을 하였다. Changelog에 260910u 버전으로 기록된 사항은 이것 외에도 상당히 많다.

다음은 개선 후의 사운드 서브메뉴 화면이다. 이제는 부팅 시 두 개의 사운드폰트를 기본적으로 메모리에 올려 둔다. 하나는 피아노 전용인 Salamander C5 Lite이고, 다른 하나는 범용으로 사용하는 Arachno GM-compliant SF2이다. 평상시에는 키보드가 연결된 채널 1에 Salamander를, 나머지 채널(CH2–16)에 Arachno를 할당한다. MID 파일 재생을 시작하면 채널 1도 Arachno로 전환되므로 전 채널을 사용하는 일반적인 MIDI 파일 재생에도 문제가 없다. 범용 사운드폰트는 필요하면 FluidR3 GM으로 바꿀 수도 있다.

버전 260910u.


두 개의 사운드폰트를 동시에 로딩하므로 부팅 시간은 약간 길어졌지만, 일단 올라온 뒤에는 연주 모드를 바꿀 때마다 사운드폰트를 내렸다가 다시 올릴 필요가 크게 줄었다. 특히 Combi는 특정 사운드폰트에 종속되지 않고 현재 올라와 있는 범용 사운드폰트를 그대로 사용하도록 바꾸어 운용 방식이 훨씬 간단해졌다.

스포츠 캐스터로도 잘 알려진 이재후 아나운서는 같은 방송국의 아침 방송인 '출발 FM과 함께(아침 7시~)'를 진행한다. 방송 시간대가 다르니 두 아나운서의 목소리를 같은 시간에 듣기는 어렵다. 간혹 특집 방송이 편성되면 서로를 향한 장난기 넘치는 디스를 하기도 한다. 

"제 이름은 이재호가 아니고 이재후입니다. '후지다'의 '후'입니다."

뭔가 일이 잘 풀리고 있지 않다면, 능력이 부족해서가 아니라—후져서 그런 것이 아니라—누군가의 결정을 기다리느라 그럴 수도 있다는 것을 명심하자. 

그런데 그 결정권자가 나였다면?

Sound 서브메뉴는 하루가 지나 다시 바뀌었다. 글로 설명하기는 어렵지만, 꽤 많은 고민을 하여 합리적으로 고친 UI이다(버전 260911c).


2026년 9월 8일 화요일

요즘의 드럼 패턴학

바이브 코딩(Vibe Coding)을 주로 하다 보니 기술적인 사항을 기록하기 위한 문서를 ChatGPT에서 자동 작성하여 남기는 경우가 점점 많아지고 있다. 이를 적당히 HTML로 자동 변환하여 이곳 구글 블로그에 그대로 올리는 일도 과거보다는 훨씬 많아졌다. 요즘은 게을러져서 '인공지능을 통해 자동 생성한 글'임을 밝히는 일도 잘 하지 않는다.

이렇게 만들어진 글은 생기가 없고, 재미도 없다. 단지 건조하게 정보만 나열할 뿐이다. 순식간에 비교적 정확한 글을 만드는 것은 즐거운 일이지만, 직접 쓴 글에 비하여 내가 나중에 다시 읽는 빈도 또한 떨어진다. 가급적 인공지능을 이용한 글 자동 생성을 자제해야 되겠다는 생각은 하지만 편리함과 효율 앞에서 그러한 의지를 계속 펼쳐 나가기가 어렵다. 

요즘은 많은 논문이 이러한 방식으로 쓰여질 것이다. 바이브 코딩으로 드럼 패턴학 연구를 한다면, 그것은 사람의 연구로 인정받아 학술지에 실릴 수 있을까? 최소한 실용적인 코드를 짜고 그 설명을 GitHub에 올리는 데에는 별다른 주저함이 없다. 특히 각종 명세서라든가 프로그램 사용법 등은 ChatGPT가 아주 정확하게 만들어 준다. 그러나 이를 학술 성과로는 인정받을 수 있을까?

인공지능을 이용하여 제품을 개발하면 안 된다는 법은 없다. 그러나 논문이라면?  인공지능에게 물어 보았다.

  1. 가장 중요한 것은 "누가 문장을 썼는가"가 아닙니다.
  2. 따라서 "논문 초안을 AI에게 쓰게 하는 것" 자체는 부당하지 않습니다. 다만 투고한 저널의 개별 정책은 반드시 확인해야 합니다.
  3. 오히려 이 연구에서는 AI 사용 자체가 흥미로운 부차적 이야기가 됩니다.
  4. 더 중요한 문제는 "논문거리가 되느냐"인데—저는 된다고 봅니다.

상당히 위로가 되는 글.

3번 항목에 대해서는 Methods 또는 별도의 disclosure에서 이렇게 밝히는 것이 좋다고 한다.

Generative AI tools were used interactively during software development, exploratory data analysis, methodological discussion, and manuscript drafting. The author determined the research questions, designed and evaluated the analytical framework, selected and curated the datasets, interpreted the results, and verified the analyses and manuscript content. AI-generated code and text were reviewed and modified by the author before use.

굉장히 솔직하면서도 흥미를 유발할 수 있는 글이다. 이제는 인공지능이 이런 일까지 할 수 있음을 밝히는 것이기 때문이다. 인공지능의 활용에 대해서 너무 죄책감을 가질 것은 없다. 밝힐 것은 밝히는 것이 좋다.

그래서 '드럼 못 치는 사람의 드럼학'인 나의 드럼 패터놀로지는 점점 진화하고 있다. 프로그래밍을 하든, 기성곡의 MIDI 데이터를 참조하든, 반복 사용할 수 있는 드럼 패턴 라이브러리를 만들 수 있을 것이라는 것이 나의 기대였다. 초창기에는 추상화를 거쳐 드럼 패턴을 표현하는 방법을 만드는데 힘썼고, 지금은 돌아다니는 유명 대중음악의 MIDI 파일에서 드럼 패턴을 추출하는 방법을 구체화하였다. 그런데 분석을 하면 할 수록 마치 bacterial pangenome 분석과 유사하다는 생각이 들었다. 그것도 open pangenome. 다음의 패턴 전이 그래프를 보라.


ABBA의 Dancing Queen(1979)에서는 몇 개 되지 않는 패턴이 곡 전체에서 재사용된다. 그런데 오른쪽의 Hammer to Fall(Queen, 1984)에서는 어떤가? 패턴 분석 전에는 매우 심플한 패턴이 재사용될 것이라고 생각했다. 드럼 난이도는 초중급이라고 소개되어 있다. 그러나 실제로는 겉보기에 매우 단순해 보이는 패턴이 조금씩 바뀌면서 쓰인다. 핵심 패턴은 18.1%(25회)의 비중을 차지하는 다음의 것(SNG_0035)인데 이를 조금씩 변형한 것이 훨씬 많이 존재한다.



유튜브에서는 이 패턴을 거의 전적으로 반복하고 있지만, 실제는 다르다. 이 곡을 MIDI로 전사한 전문가가 원곡보다 더 복잡하게 재현할 이유는 없다.


내가 지금까지 모은 패턴 라이브러리에 SNG_0035와 유사한 것이 이미 들어 있을까? 그에 앞서서 드럼 패턴의 유사도를 올바르게 정의하는 것으로부터 시작해야 한다. 물론 이 단계에서부터 요즘 유행하는 벡터화나 임베딩을 떠올릴 수 있다. 그러나 그것보다는 '눈과 귀에 친숙한 고전적인 방법'을 적용하였다. 상세한 것은 나중에 다시 소개하기로 하자. 예를 들어 패턴의 뼈대를 이루는 킥과 하이햇에 높은 가중치를 둔다는 것이 중요한 원칙 중 하나이다. 지금 단계에서는 패턴 간의 유사도를 수치화하는 방법을 어느 정도 정립하였고, 몇 건의 실제 곡 분석을 통해서 'dedupe'를 할 수 있는 실용적인 기준도 마련하였다. 귀로 들었을 때 어느 정도 고개가 끄덕여지는 합리적인 기준을 세웠다고 자부한다. 결론은 SNG_0035와 유사한 패턴은 아직 라이브러리에 없다는 것이다.

Dancing Queen의 곡 내 패턴 계층적 분석 결과. 이 분석의 목적은 중복 제거(dedupe)를 하기 위함이다. 서로 다른 패턴은 겨우 11개에 불과하며, 3개의 그룹으로 묶을 수 있다. 각 그룹에는 대표에 해당하는 medoid를 할당한다. 이는 매우 단순한 사례이며, Hammer to Fall은 반대편 극단에 해당한다. Medoid는 수학적으로 '중심'에 해당할지 모르나, 음악적으로는 그렇지 않다. 이에 따라서 새 버전의 스크립트에서는 canonical pattern을 따로 산출하게 만들었다.


실제 MIDI 파일을 열어 보면 전체적으로 1~2 tick을 보정해야 그리드에 딱 맞는 경우도 있다. 심지어 단순한 드럼 패턴이 있을 것으로 생각하여 열어본 스티브 밀러 밴드의 Abracadabra(1982)는 하이햇 타격이 정확한 8비트가 아니었다. 이는 패턴이 원칙적으로 그리드에 딱 맞아야 한다는 나의 원칙에 매우 심각하게 벗어나는 예외에 해당한다. 음원을 루프백 녹음하여 분석해 보니 이 곡이 히트를 쳤던 그 당시에 내 귀에도 그렇게 들렸던 것처럼 55:45 정도(정확한 수치는 아님)의 아주 약한 스윙이 있었다. 

또다른 극단을 생각해 보자. 듣기만 하면 어떤 곡의 드럼 연주인지 알 수 있는 패턴이 있다. 예를 들어 Toto의 Rosanna(1982). 패턴학 연구용으로는 아주 좋은 사례이지만 커버곡을 연주할 것이 아니라면 이 패턴을 다른 곡에서 재사용하기는 매우 어렵다. 

다시 기본적인 질문으로 되돌아가 본다. 어디까지를 하나의 패턴으로 보아야 할까? 킥과 스네어, 하이햇의 위치만 같으면 같은 패턴인가? 아니면 이렇게 미세하게 밀고 당기는 타이밍까지 포함해야 하나? 처음에는 드럼 패턴을 단순화하고 표준화하여 재사용 가능한 형태로 만드는 것이 목표였다. 그런데 실제 곡을 들여다볼수록 단순화 과정에서 버리는 것들이 오히려 음악의 정체성을 이루고 있을지도 모른다는 생각이 든다. 드럼 패턴학은 패턴을 모으는 일에서 시작했는데, 요즘은 점점 ‘무엇이 같은 패턴인가’를 묻는 일이 되어 가고 있다.



2026년 9월 4일 금요일

[셀프 학습 노트] 드럼 패턴의 유사도를 계산하다가 embedding까지 생각해 보다

오늘은 모아 둔 ADT 드럼 패턴을 대상으로 “서로 비슷한 패턴을 어떻게 찾을 것인가?”를 조금 더 체계적으로 실험했다.

현재 데이터는 한 마디 단위로 정규화한 뒤, 킥·스네어·하이햇 등의 타격 위치를 비교할 수 있게 만들어 놓았다. 서로 다른 드럼맵도 검색할 때에는 다음과 같은 공통 범주로 환산한다.

KK / SN / HH / TOM / CYM / PERC

현재 확보한 2,010개의 1-bar pattern occurrence를 정리하니 1,796개의 canonical pattern이 만들어졌다. 같은 패턴이 여러 파일에 반복해서 등장하는 경우를 하나의 패턴으로 묶은 결과다.

비슷하다는 것을 숫자로 표현하기

이제 두 패턴이 얼마나 비슷한지를 계산해야 한다.

현재 방법은 머신러닝이 아니다. 킥과 스네어는 리듬의 골격을 이루므로 상대적으로 높은 가중치를 주고, 하이햇 등에는 낮은 가중치를 주는 식으로 사람이 규칙을 정해 similarity를 계산한다.

예를 들어 현재 실험에서는 대략 이런 가중치를 사용한다. 이러한 가중치 체계가 정말 올바른지도 고민해 보아야 한다. 

KK   = 3.0
SN   = 3.0
HH   = 1.0
TOM  = 1.5
CYM  = 1.2
PERC = 1.0

오늘 재미있는 사례가 하나 나왔다. 어떤 기준 패턴(RCK_0040)에 대해 검색했더니, 눈으로 보기에 상당히 비슷한 rock 패턴보다 rap 패턴 하나(RAP_0088)가 더 높은 순위로 나타났다.



계산 과정을 뜯어보니 오류가 아니었다. rap 패턴은 하이햇 두 개가 빠졌고, rock 패턴은 킥 하나가 더 들어 있었다. 현재 가중치 체계에서는 후자의 차이를 더 크게 평가하기 때문에 rap 패턴의 점수가 높아진 것이다.

“킥 하나의 차이는 하이햇 두 개의 차이보다 큰가?”

프로그램이 틀린 것이 아니라, 오히려 이런 질문이 튀어나온 셈이다.

타격의 강도(strength)까지 조금 반영해 보니 순위가 다시 달라졌다. 타격 위치뿐 아니라 accent까지 비슷했던 rock 패턴들이 위로 올라왔다. 그렇다고 strength를 지나치게 강조하면 이번에는 리듬 구조가 다른 패턴까지 올라올 수 있다.

결국 ‘비슷하다’는 말 자체를 정의하는 것이 생각보다 어렵다.

그러다 embedding이라는 말에 도달했다

여기서 자연스럽게 이런 생각이 들었다.

이런 가중치를 계속 사람이 정하지 말고, 컴퓨터가 패턴의 특징을 스스로 학습하게 할 수는 없을까?

여기에서 vector와 embedding이라는 개념이 등장한다.

벡터화는 생각보다 단순하다. 예를 들어 다음과 같은 패턴이 있다고 하자.

KK  o . . . o . . .
SN  . . . . o . . .
HH  o . o . o . o .

이를 컴퓨터가 다루기 쉬운 숫자로 바꾸면 다음과 같이 표현할 수 있다.

KK = 1 0 0 0 1 0 0 0
SN = 0 0 0 0 1 0 0 0
HH = 1 0 1 0 1 0 1 0

이것도 이미 일종의 vector이다. 쉽게 말하면 드럼 패턴을 숫자들의 묶음으로 표현한 것이다.

Embedding은 여기에서 한 걸음 더 나간다. 많은 패턴과 그 관계를 학습시켜서 비슷한 패턴은 숫자 공간에서도 가까운 곳에 놓이도록 좌표를 만들어 주는 것이다.

          RCK_0040
             ●
          ● RCK_0050


                         ● RAP_0088

실제로는 이런 2차원 지도가 아니라 수십 또는 수백 차원의 공간일 수 있지만 개념은 같다. 새로운 패턴이 들어오면 그 주변에 놓인 패턴을 찾아서 “이것들이 비슷하다”고 제시할 수 있다.

그런데 무엇을 학습시킬 것인가?

여기에서 다시 오늘의 실험으로 돌아온다.

Embedding을 사용한다고 해서 컴퓨터가 저절로 음악적으로 무엇이 비슷한지 깨닫는 것은 아니다. 컴퓨터에게 비슷한 것끼리 가까이 놓으라고 하려면 먼저 무엇이 비슷한지를 알려줄 방법이 필요하다.

킥 하나가 다른 것과 하이햇 두 개가 다른 것 가운데 어느 것이 더 중요한가? 타격 위치가 같고 accent만 다르면 얼마나 비슷한가? 싱코페이션된 킥 하나가 이동하면 얼마나 큰 차이인가?

바로 오늘 사람이 similarity를 계산하면서 고민했던 문제들이다.

그래서 당장 embedding이나 머신러닝으로 넘어갈 생각은 없다. 지금처럼 설명 가능한 방법으로 패턴을 비교하면서 왜 두 패턴이 비슷하게 또는 다르게 평가되는지를 직접 살펴보는 과정이 먼저 필요하다.

오늘의 결론은 의외로 단순하다.

머신러닝을 적용하는 것보다 먼저 해야 할 일은, 머신러닝에게 무엇을 배우라고 할 것인지를 알아내는 것이다.

드럼 패턴을 모으기 시작했을 때에는 이렇게까지 갈 줄 몰랐다. 단순한 MIDI 파일 정리에서 출발했는데, 어느새 “리듬이 비슷하다는 것은 무엇인가?”라는 문제를 붙들고 있다. Drum Patternology라는 이름이 조금씩 그럴듯해지는 것 같기도 하다.