2025년 7월 22일 화요일

모든 것은 먹는 문제와 생활 습관으로 귀결된다 - '내가 의대에서 가르친 거짓말들'

mTOR(mammalian target of rapamycin)라는 단백질을 모른다면 생물학 전공자로서 기본 소양이 부족한 것일까? 로버트 러프킨의 『내가 의대에서 가르친 거짓말들』이라는 책을 최근 읽으면서 잠깐 그런 생각이 들었다. 요즘은 '난 미생물(유전체)학을 하는 사람이니까...'라는 변명이 통하기 어렵다. 미생물을 전공한다고 해도 감염병이나 장내 마이크로바이옴 등 인체와 상호작용하는 통합적 시각에서 미생물을 바라보기를 기대하기 때문이다. 그 통합의 중심에 한상 인간이 놓여야 한다는 이기적인 사고 방식이 생명과학 전역으로 확대되고 있는 것은 다소 공정하지 않다고 생각하지만.

솔직히 고백하건대 나는 TOR라는 약자를 처음 보았을 때 'target of rifamycin(리파마이신)'이라고 착각을 했다. 직업병이다! 식물에 유익한 토양 미생물 Paenibacillus polymyxa E681은 rifampicin(=rifampin, rifamycin 계열의 항상제)에 대한 자빌적 돌연변이체이고, 리파마이신의 타겟은 세균의 DNA-dependent RNA polymerase다. 

라파마이신이라는 항생제는 1960년대 후반 칠레의 이스터 섬 토양에서 발견되었다. 흙을 캐서 그 속에 사는 미생물이 생산하는 유용한 생리활성물질을 찾는 것은 미생물학자라면 밥 먹듯이 늘 하는 일이다. 거대한 석상을 바라보면서 토양 샘플링을 하는 미생물학자! 참 낭만적이지 않은가? 가끔은 심해나 화산 분화구 근처, 또는 위험한 빙하 틈새에서 아찔한 샘플링을 할 수도 있을 것이다.

이스터 섬의 거대한 석상 모아이. "Dumb dumb, give me gum gum!" 출처: 나무위키 


토양 미생물 Streptomyces hygroscopicus가 생산하는 이 물질은 원래 항진균제를 개발하기 위한 목적으로 개발한 것인데, 사람에게 쓸 정도로 충분히 안전하고 효율적인 항진균제는 아니었던 것 같다. 그러다가 강력한 면역억제 효과가 발견되면서 장기이식 후 면역억제제로 개발 방향이 바뀌어 결국 1999년에 면역억제제로 미 FDA 승인을 받았다. 바로 전형적인 drug repositioning 또는 drug repurposing의 사례일 것이다. 그런데 엉뚱하게도 동물에 먹였을 때 수명이 현저히 늘어나는 현상이 발견되었다. 미국 잭슨 연구소의 Richard A. Miller 연구팀은 생쥐에 이를 투여했더니 최대 38%나 수명이 늘어나는 것을 발견하였다. 이에 대한 2009년 기사를 참고해 보자('Scientists discover Easter Island 'fountain of youth' drug that can extend by ten years'). 원래 이 연구의 목표는 노화 마커에 미치는 약물의 효과를 평가하는 것이었다. 2009년 Nature에 실린 논문의 제목은 'Rapamycin fed late in life extends lifespan in genetically heterogygous mice'이다. 

효모에서 인간에 이르기까지 mTOR이라는 단백질이 존재한다. 이 단백질은 라파마이신과 상호작용을 하라고 만들어져서 지금까지 진화해 온 것이라고 보기는 어렵고, 세포과정을 조절하는 단백질 복합체의 핵심 구성 요소 역할를 하기 때문에 여기에 들러붙는 라파마이신이 지금껏 상상하지 못했던 효과를 발휘하고 있는 것이다. 

로버트 러프킨의 책 『내가 의대에서 가르친 거짓말들』은 바로 mTOR에 대한 이야기로 시작한다. 전문 영양사였던 어머니를 둔 사람으로서, 그리고 의사로서, 미국 사회에서 권장되는 '건강한' 식생활을 해 왔음에도 불구하고 러프킨은 고혈압·통풍성 관절염·이상지질혈증·당뇨 전단계라는 네 가지 병을 얻게 되었다. 몇 가지는 나와 비슷하다! 왜 그런가? 우리가 섭취하는 칼로리와 이에 반응하는 신체에 대한 올바른 이해가 부족했고, 소위 건강한 식품이라는 것은 고과당 옥수수 시럽(HFCS, high-fructose corn syrup)이 들어간 제품을 계속 팔려는 식품 제조 업체의 로비가 빚은 결과물이라는 것이다.

로버트 러프킨, 『내가 의대에서 가르친 거짓말들』(Lies I taught in medical school)

저자가 믿고 가르친 세 가지 대표적인 거짓말은 다음과 같다.

  1. 비만 거짓말: "1cal는 1cal일 뿐이다."
  2. 당뇨병 거짓말: "2형 당뇨병은 인슐린 치료가 최선이다."
  3. 심장병 거짓말: "식이성 포화지방과 콜레스테롤이 심장병을 일으킨다.:

인류는 진화 여정의 대부분을 수렵과 채집을 하면서 이따금 단백질(육류) 위주이지만 다양한 영양소를 섭취하고 한참을 굶는 생활을 해 왔다. 우리의 몸은 여기에 철저히 맞추어져 있다. 그러다가 농업혁명이 일어나면서 탄수화물의 '폭우'를 맞게 된다. 제러드 다이아몬드는 농경생활은 인류 최대의 실수라고 한다. 더 많은 노동을 필요로 하고, 영양 불균형을 초래했으며, 생태계에 부정적인 영향을 미쳤다. 물론 이를 통해서 문명이라는 멋진 결과물이 발생했음을 부인할 수는 없다.

그래서 (m)TOR가 뭘 어쨌다는 것인가? 이 단백질은 영양상태를 감지하여 성장 상태를 끄고 켜는 스위치 역할을 한다. 일종의 nutrient-sensing protein kinase이다. mTOR가 활성화되면 성장 모드요, 비활성화되면 정비 모드에 들어간다. 러프킨에 의하면 이 중간의 적당한 상태란 없다! 마치 디지털 신호와 같이 0 아니면 1인 것이다. 

TOR가 켜지면 우리 몸은 지방을 저장하고 연료인 포도당을 태우기 시작한다. 베타 세포로 인슐린을 만들고, 앞서 언급한 인슐린 유사 성장인자인 UGF-1을 생산한다. 염증이 생기지만, 성장도 일어난다. 음식이 있을 때 벌어지는 일들이다(74~75쪽).

이는 탄수화물 위주의 식사를 할 때 벌어지는 일이다. 정말 무서운 것은 대사증후군의 근본적인 원인인 인슐린 저항성으로 발전하는 것. 고혈당 상태이지만 세포는 인슐린에 반응하지 않아서 심각한 문제를 초래한다. 이는 만성적인 염증 상태와도 연결된다.

비만이든 아니든 자신의 현재 몸 상태를 자연스럽게 받아들이고 긍정하자는 '자기 몸 긍정(body positivity)' 정신에 대해서도 러프킨은 부정적이다. 비만에 대해서 조롱하거나 자괴감을 느끼는 것은 결코 바람직하지 않지만, 비만은 결국 대사 이상으로 나아가는 문제의 초석이 되기 때문이다. Fat pride 또는 fat acceptance로 표출되는 자기 몸 긍정은 요한 하리의 책 『매직 필(Magic Pill)』에서도 중요하게 다루어진다(내가 5월에 쓴 독후감 링크).

체중을 감량하려면 덜 먹고 더 운동하는 것만으로는 충분하지 않다. 심지어 인공감미료를 넣어서 칼로리가 전혀 없는 음료를 마셔도 인슐린 분비가 증가할 수 있다고 한다. 러프킨의 핵심 메시지는 다음과 같다. 음식을 먹는 시간대를 12시간 이내로 줄이라는 것(탄수화물을 일절 먹지 않아도 좋다는 주장은 다소 과하다는 생각이 든다). 비영양적인 요인인 스트레스, 수면장애, 환경호르몬, 노화 등도 비만을 촉진하는 원인이 된다.

식이나 대사는 그동안 의대에서 인기 있는 주제는 아니었을 것이다. 다들 유전체와 오믹스 및 맞춤형 의약에 몰두해 있는 동안 과연 그 막대한 데이터는 정말 인류의 건강에 얼마나 기여했는지, 투입 대비 효과는 얼마나 있었는지 고민을 할 필요가 있다. 그에 비한다면 건강한 식이와 생활 습관이 가져다 줄 효과는 '가성비'가 매우 높지 않겠는가?

"수명은 프로그래밍되어 있지만, 노화는 질병이다."

'그래요? 그러면 그 노화라는 질병을 막거나 치료할 수 있는 약을 주세요. 다른 노력은 하기 싫어요.' - 이것이 우리의 자세이다. 질병이라는 단순한 표적이 있고, 이를 제거하면 낫는다는 것을 이 책에서는 씨앗이론이라 하였다(316쪽). 루이 파스퇴르 이후 이 이론은 잘 먹혀 들어갔으며, 감염병이 아닌 질환에 대해서도 그런대로 잘 통했다. 문제는 대사증후군과 같은 만성병이다. 이는 생활습관을 통하여 고쳐 나가야 한다. 병원에 갔는데 이런 말을 들었다고 상상해 보라(319쪽).

약을 써보기 전에 먼저 환자분 스스로 설탕, 곡물, 씨앗기름은 드시지 마세요. 결핍된 영양을 바로잡고 독소를 제거하면서 근력 운동과 수면 개선 운동도 조금씩 해나가 보죠. 그렇게 했는데도 안 되면 그때 약을 드리겠습니다."

실은 이 조언이 맞는 이야기인데, 우리는 인내심이 부족하다. 먹으면 혈중 콜레스테롤이 곧바로 줄어들고, 식욕이 줄어드는 그런 약을 당장 원하기 때문이다. 마지막 장인 12장 <건강 설계>를 다 읽으면, 구체적으로 어떤 것을 실천해야 되는지 감이 잡힐 것이다.

  • 영양 측면: 농업 이전의 수렵채집인 시절의 자연식을 섭취하자. 가공식품, 정제 탄수화물, 공장에서 만드는 씨앗기름, 곡물과 글루텐의 섭취량을 줄이자. 그리고 하루 중에서 첫 식사와 마지막 식사까지의 시간을 12시간 이내로 줄이자. 심지어 하루 한 끼도 좋다. 과일은 갈아서 주스 형태로 만들어 마시지 말라. 식사량 자체를 줄일 필요는 없다. 먹을 때에는 지방과 탄수화물로 시작하여 탄수화물은 나중에 먹는다.
  • 기타 요소: 스트레스를 피하고, 충분히 수면을 취해라. 수면의 질이 나쁘면 포도당 대사 능력이 떨어지고 코르티솔 수치가 증가하며, 인슐린 생산을 자극해서 혈당과 인슐린 저항을 높인다. 꾸준히 운동을 하고 외국어나 악기 연주 등 두뇌를 써라.
  • 단식 또는 단식을 모방한 식단
수면의 질이 나쁘면 포도당 대사 능력이 떨어지고 코르티솔 수치가 증가하며, 인슐린 생산을 자극해서 혈당과 인슐린 저항을 높인다.

어떤가? 충분히 실천 가능하지 않은가?

2025년 7월 20일 일요일

2025년 종합건강검진 - 작은 불편함의 가치, 비수면 위 내시경 검사

어서 오세요, 편하게 해 드릴께요!

미국에 있는 딸아이가 심한 기침으로 2주 정도 고생을 하다가 병원을 갔다고 한다. 인후염이란 진단을 받고 처방을 받은 약을 사러 약국을 몇 군데나 갔지만 재고가 없어서 약을 사지 못했다고 한다. 처방전을 접수하러 40분이나 줄을 서서 기다렸는데 자기 차례가 되어 약이 없다는 말을 들었을 때 얼마나 속이 상했을까? 우리나라의 의료 시스템도 나름대로 어려운 점은 있지만, 이런 정도의 수준은 아니다. 한편으로는 우리나 너무 과한 의료의 혜택을 입고 있는 것은 아닌지 생각하게 되었다.

토요일, 그러니까 어제로 예정된 종합건강검진에 대해서 하루 전에 주변 사람들과 이야기를 하다가 이런 이야기를 들었다.

"비수면으로 위 내시경 검사를 받는 특별한 이유가 있으세요?"

나는 이 질문에 대해서 약간의 충격(?)을 받았다. 약간 구역질이 나지만 약물을 쓰지 않고 시행하는 일반 내시경 검사가 자연스러운 일이라고 믿고 있었기 때문이다. 지금은 수면 내시경 검사를 받는 사람이 훨씬 많아져서 일반 내시경 검사를 오히려 비수면 내시경 검사라고 부른다. 작년의 종합건강검진에서는 검사 과정 자체가 수면 내시경 검사를 받는 사람에 맞추어져서 오히려 나와 같이 비수면 검사자는 그 분위가 어색할 정도였다. 실제로 2019년 대한소화기내시경학회 회원을 대상으로 한 설문 조사에 의하면 상부 위·식도 내시경 검사 응답자 916명 중 80.1%가 수면 상태로 진행한다고 하였다.

결국 비수면 내시경 검사를 선호하는 나는 유별난 사람이거나, 몇 만원만 더 내면 약물을 이용하여 피할 수 있는 불편함을 맨몸으로 참아낼 수 있는 것을 자랑하고 싶어 하는 사람일이 된 것 같다. 자동 변속기 차량이 대세인 시대에 수동 변속기로도 언덕 출발에서 미끄러지지 않을 수 있음을 자랑스러워하는 것과 같은 부류의 구식 사람.

병원에서도 수면 내시경 검사를 하면 수입이 더 늘어나니 누이 좋고 매부 좋은 일인가? '조금 참으세요' '호흡은 이렇게 하세요' 하면서 수검자와 실랑이를 벌일 필요 없이 신속하게 검사를 할 수 있으니 의료진도 이 방법을 선호할 수도 있다.

나는 이 문화를 바꾸려고 조금은 노력할 필요가 있다고 본다. 대장 내시경이야 워낙 어려운 검사니 그렇다 하더라도, 위 내시경 검사는 약물 없이 진행하는 것이 여러 면에서 낫다고 생각한다. 검사 후 즉시 일상 생활로 복귀해도 아무런 문제가 없고, 검사를 진행하는 의사도 수검자의 위 상태를 즉시 알려 줄 수 있기 때문이다. 높은 빈도가 아니라 할지라도 수면 내시경 검사에 쓰이는 약물(미다졸람 또는 프로포폴)에 부작용이 있는 사람도 있다. 

딸아이가 약국에 몇 번을 가서도 처방받은 인후염 약을 받지 못한 미국의 현실과 비교해 본다면, 우리는 적은 돈을 내고서도 더 나은 의료 서비스를 받고 있다고 볼 수 있다. 이렇게 지불되는 돈이 개인 차원에서는 얼마 되지 않지만 국가 전체 규모로 따지면 건강보험급여와 맞물려서 상당히 큰 금액이 되며, 의료 산업을 살찌우는데에도 도움이 될 것이다. 급여 대상이 아니라 해도 실손 보험 등으로 인해 돈이 흘러가는 구조는 만들어진다.

그렇다 하더라도 반드시 필요한 것이 아니라면 불필요한 의료 비용을 줄이려는 노력을 하는 것이 옳지 않을까? 비록 그것이 개인의 차원이고, 건강보험재정의 지출과 관련이 없다고 해도 말이다. 흔히 미국의 경우 의료 시스템의 접근성은 낮지만, 전체적인 구조 때문에 결과만 놓고 본다면 오히려 과잉 진료는 잘 억제되고 있다고 생각한다. 

의료 서비스를 대하는 우리의 태도가 마치 식당에서 메뉴를 고르듯 해서는 안 된다고 생각한다. 의료를 소비자라는 입장에서만 대하면 지불 능력의 범위에 따라 폭넓게 선택하는 서비스 대상이 많다는 현실을 즐길 수도 있지만, 본인의 노력에 따라서 그 서비스 자체를 택하지 않고서도 더 건강한 삶을 누릴 수도 있기 때문이다. 

어쩌면 오늘 저녁에는 식당으로 가는 발길을 돌려서 차라리 집에서 있는 재료를 가지고 요리를 직접 해는 작은 실천을 하는 것이 더욱 바람직할 수도 있다. 의료를 대하는 우리의 태도 역시 이러했으면 한다. 지불 능력이 있으니 쇼핑하듯 서비스를 고르는 것에만 집중한다면, 정작 중요한 것과 필요한 것을 놓치는 일이 생길 수 있다. 편의성만을 좇는 바람에 세상이 이에 맞추어서 변하도록 놔두지 말고, 무엇이 바람직한지 먼저 생각하고 만약 이렇게 하는 것이 옳다면 약간은 불편하더라도 실천에 옮기는 자세가 중요할 것이다.


2025년 7월 18일 금요일

BioXeta라는 신조어를 만들고 블록체인에 남겼다

"블록체인의 첫 경험"

생명과학과 의료 분야의 데이터를 통합 활용할 수 있는 서비스를 위한 새로운 이름을 만들어 보고 싶었다. 새로 만든 낱말이 구글 검색을 통해 현재 쓰이지 않음을 확인한 뒤, 이것이 나에 의해서 바로 오늘 만들어졌음을 세상에 알리고 싶었다. 보다 기술적으로 설명하자면 이러한 신조어를 만든 취지를 설명하는 문서가 오늘 날짜 이전에 존재했음을 IT 기법으로 증명하면 되는 것이다. 

이 신조어 자체를 실제 어떤 서비스의 URL 일부로 세상에 공개하기 전까지 꽁꼼 숨겨두는 것도 전략이지만, 차라리 '출생 증명'에 해당하는 정보와 함께 세상에 펼쳐 보이는 것도 나쁘지 않다는 생각이 들었다. 여기에는 여러가지 방법이 있다. 예를 들어 법무부 전자공증시스템이나 공증사무소에서 전자공증을 받는 것도 가능한데, 어떤 창작물에 대한 제작 시점을 증명하는 방법으로는 별로 재미가 없어 보인다.

내가 만든 신조어는 BioXeta이다. 다음은 이를 설명하는 파일의 첫머리를 소개한 것이다.

디지털 생명주권을 지키는 한국형 바이오 통합 플랫폼, BioXeta

Xeta = Cross(X) + Meta

Xeta(제타) peta(페타, 1015), exa(엑사, 1018) 이어 동음어 zeta(제타, 1021) 뜻하는 중의적 표현

BioXeta 바이오 데이터를 이용하여 생명과학, 의료, 인공지능, 공공정책을 초월적(meta)으로 연결(cross)하여 사람과 사회를 통합하는 거대 플랫폼을 일컫는 신조어

정해영/2025 7 18 작성

신조어를 창작하자마자 취지문과 더불어 이를 공개하는 것은 문제가 없다. 공개를 해서 문제가 되는 민감한 데이터는 아니기 때문이다. 다른 사람이 이 단어를 낚아채서 자기가 만든 신조어라고 주장할 가능성이 아주 없지는 않다. 이를 방지하기 위해 내가 오늘 날짜인 2025년 7월 18일에 블로그에 기록을 남기는 것도 좋은 방법이다. 그러나 웹사이트는 해킹을 당할 가능성도 있고, 내가 나중에 편집을 할 수도 있기 때문에 바로 그 날짜에 만들어졌음을 증명하기에 완전히 알맞은 방법은 아니다.

최신 기술을 충분히 이용하되 나에게도 공부가 되는 방법은 바로 블록체인(한국정보통신기술협회, 즉 TTA의 용어 설명)을 이용한 타임스탬핑이다. 약간 조사를 해 보니 전체 과정은 그렇게 어렵지 않았다. 내가 BioXeta라는 신조어를 만든 취지를 설명하는 PDF 파일을 만든 뒤 ScoreDetect에 업로드하면 이 파일에 대한 해시값을 얻어서 블록체인에 기록하는 것까지 한번에 진행하게 된다. 원본 PDF와 인증서 파일은 별도의 위키 문서인 신조어 BioXeta에 업로드해 두었다. 이 블로그에는 파일을 첨부하기가 아주 번거롭기 때문이다. 

ScoreDetect는 7일 무료 체험 후 유료로 전환된다. 완전히 무료로 사용 가능한 블록체인 기반 타임스탬핑 서비스도 물론 존재하지만(예: OpenTimestamps), 파이썬 코드를 돌리다가 라이브러리 문제로 잘 되지 않아서 포기하였다. 

원본과 인증서를 함께 공개함으로써 제3자가 타임스탬프를 검증하는 것이 가능하다. 검증에 필요한 정보는 인증서에 전부 담겨 있다. 블록체인 플랫폼은 SKALE Network라는 퍼블릭 블록체인이다. 

만약 제3자가 PDF 파일을 입수했다고 가정하자. 이것이 정말 2025년 7월 18일에 존재했는지 어떻게 확인하면 될까? 다음의 순서를 따르면 된다.

  1. PDF 파일의 SHA-256을 계산한다. 온라인 도구나 Windows PowerShell에서 Get-FileHash를 사용하라.
  2. 그 값이 인증서에 있는 값과 일치하는지 확인한다.
  3. 다음으로는 인증서에 포함된 블록체인 트랜잭션 URL을 열어서 등록된 SHA-256 해시값과 방금 계산한 값이 같은지 확인한다.
  4. 같은 트랜잭션 페이지에서 등록시간을 확인하라. 이는 문서가 그 시점 이전에 존재했음을 의미한다.

블록체인 그 자체는 파일의 저장소가 아님을 잊지 않도록 하자.

여기에서 조금만 더 공부를 해 보자. 블록체인은 데이터를 분산 저장하고 위·변조를 막는 기술이고, 비트코인은 블록체인 기술을 활용해 만든 최초의 암호화폐이며, 이더리움은 블록체인을 기반으로 만든 스마트 계약 가능한 플랫폼이다.

심심풀이로 bioxeta를 포함하는 도메인을 등록한 뒤 AI 웹사이트 자동 생성기를 돌렸더니 세상에 존재하지 않는 바이오의료 정보기업을 만들어 버리는 것이 아닌가. 아직 있지도 않은 비즈니스에 대해 세상에 대놓고 거짓말을 할 수는 없어서 아직 자동 생성기는 쓰지 않기로 했다.



2025년 7월 17일 목요일

누가 자석을 흔드는가 - 바쁜 철가루, 올라가는 한심도(한심 지수)

요즘과 같이 큰 비가 내려서 집이 떠내려가는 모습을 보면 거역할 수 없는 자연의 힘에 대해서 누구나 무력감을 느낄 것이다. 이 모습을 보고 한심하다고 생각할 사람은 없다. 아, 상황에 따라서는 한심함을 느낄 수는 있겠다. 조금만 비가 와도 범람하기 쉬운 터에 집을 지었다거나, 충분히 예측 가능한 재난에 대비할 시간과 예산이 있었음에도 불구하고 이를 소홀히 하였다면 말이다. 

그러면 집이 떠내려가는 사고는 사회적 사건이 되고, 이에 대해서 비난할 대상이 생긴다. 또한 그 집이 내 집이냐 남의 집이냐에 따라서 이 사건을 대하는 태도는 하늘과 땅처럼 차이가 난다. 현대 사회에서 비난을 쏟을 대상을 만드는 것은 매우 중요하다. 관심을 한 곳으로 모으고-봐야 할 곳으로부터 시선을 딴 데로 돌리는 효과도 있다-때로는 새로운 일을 꾸미는 동력이 되기도 하니까. 이 문제에 대해서는 나중에 또 쓰기로 하자.

'한심하다[寒心-]'라는 낱말은 다음 국어사전의 뜻풀이에 의하면 정도에 알맞지 않아 마음이 가엽고 딱하거나 기막히다는 것을 의미한다. 한자로 '차가운 마음'이라는 뜻이 있는 줄은 몰랐다.

'도대체 왜 저럴까?' '저렇게까지 하고 살아야 하나?'라는 생각을 품게 만드는 대상은 '한심도' 또는 '한심 지수'가 높다고 볼 수 있겠다. 그런데 정작 본인까지도 한심한 일에 휩쓸려 동참하게 되면 심한 무력감과 더불어 피부에 와 닿는 한심도는 지수적으로 증가할 것이다.

전자석에 건전지를 연결하면 그 주변에 형성되는 자기력선을 따라 철가루가 질서정연하게 늘어서는 초등학교 수준의 과학 교과서에서 보았다. 자기력선의 근원이 되는 '자극(magnetic pole)'에는 도대체 무엇이 있기에 세상 모든 것이 그것을 중심으로 질서를 잡을까? 도저히 수용을 거부할 수 없는 새로운 기술이 위치할 수도 있고, 이따금 자리 바꿈을 하는 권력이 있을 수도 있다. 눈에 보이지 않는 자기력선을 스스로 감지하고 자극을 향해 줄을 서는 철가루, 그리고 그렇게 끌려가는 것을 자발적이고 능동적 행동으로 여기며 스스로에게 당위성과 추진력을 부여하는 철가루 정신

나 역시 그러한 철가루 중의 하나가 아닐까? 내가 느끼는 감정은 무기력감과 한심함이 적당히 뒤섞인 그런 것이다. 자기력선에 따라서 줄을 서면서 만약 도파민 분비를 느끼게 된다면, 그건 좀 심각하다. 복종에서 쾌감을 얻는다면, 이는 끝을 모르는 포지티브 피드백으로 폭주하여 더욱 강한 복종에 자기를 얽어매기 때문이다.

철가루 정신이 높으면 한심도 역시 올라간다.


자석의 양 극은 '대세'라는 이름으로 포장할 수도 있다. 예를 들어 인공지능(AI)을 생각해 보자. 마치 요즘 세상의 모든 지식과 기술은 대세가 된 AI로 인하여 통섭에 이르는 것 같은 느낌이 든다. 하지만 그것이 진정한 통섭이 과연 맞을까? 대세를 따르는 것이 과연 옳은 일인지 스스로를 돌아보는 자세가 필요하다. 가끔은 그 대세의 실체를 의심해 보기도 하고, 누가 누구를 위해 종사하는 도구인지 고민해야 한다. 

자기력선에 따라 매번 고쳐 앉으려 하지 말고, 도대체 누가 자석을 흔들면서 이득을 취하는지 고민해 보자. 


2025년 7월 15일 화요일

볼루미오(Volumio) 되살리기, 그리고 KBS Kong을 쓰지 않고 KBS 클래식 FM 듣기

라즈베리 파이 3B(2021년 6월 구입, 관련 글 링크)에 설치한 볼루미오는 Wi-Fi를 통한 시스템 업데이트 후 종종 휴대폰으로 제어가 되지 않을 때가 있다. 휴대폰 앱에서 갑자기 기기가 보이지 않게 되니 아무 것도 하지 못한다. 그러면 랜 케이블과 HDMI 모니터 및 키보드를 연결하여 직접 시스템으로 로그인하여 해결할 때도 있고, 마이크로SD카드에 이미지를 새로 구워서 재설치를 하는 일도 있었다. 대략 1년 반에서 2년 주기로 벌어지는 일이다. 가장 최근에 있었던 재설치는 2012년 12월 21일이다. 이에 대한 글을 소개해 둔다.

갑자기 작동 불능 상태가 된 볼루미오(Volumio) - 단순 재설치 또는 모니터 장착?

이때 구입했던 카드 리더기는 어디로 갔을까?

몇달 전에 볼루미오 업데이트를 했다가 또 쓰지 못하는 상태가 되었다. 그대로 방치해 두다가 오늘은 일단 랜 케이블을 꽂아 보기로 했다. 모니터나 키보드는 연결하지 않았다.




전원을 넣고 조금 기다리니 휴대폰 앱에서 내 볼루미오가 보이고 업데이트를 실시하라고 한다. 언어 설정, 오디오 출력기기 설정, Wi-Fi 설정 등을 마치고 USB 드라이브를 다시 꽂아서 라이브러리를 동기화하였다. 전원을 내리고 랜 케이블을 뽑은 뒤 오디오 앰프에 연결한 다음 다시 전원을 넣었다. 이제는 Wi-Fi를 통해 동작하게 된다.

시스템 버전 3.819.

Personal Radio 플러그인을 재설치하여 테스트를 해 보았다. 이번에도 목록에 버젓이 포함되어 있는 KBS 라디오는 재생이 되지 않는다. 대략 작년부터 그렇게 된 것 같다. Linn이나 MBC, SBS는 잘 되는데 왜 KBS만? 아마도 KBS는 KONG 서비스에 주력하면서 볼루미오에서 들을 수 있는 라디오 스트리밍 서비스를 제한한 것 같다. 


그런데 요즘은 인터넷을 뒤져도 이 문제나 해결책을 논하는 글이 없다. 다들 이 문제에 관심이 없는 것인지, 또는 나만 검색을 제대로 못 하고 있는 것인지? GitHub의 Volumio personal radio plugin는 최근 수 년 동안 별다른 업데이트가 없고, 볼루미오 커뮤니티에는 KBS 방송을 들을 수 없다는 도움 요청 글(링크)이 2024년 8월에 올라온 상태이나 아무런 반응이 없다.

다음의 방법을 응용하면 스마트폰에서 볼루미오로 KBS 클래식 FM을 재생하도록 보내는 것이 가능할 것 같다. 

  1. 오디오용 네트워크 플레이어에서 upnp dlna로 KBS 클래식 FM 듣기(2022년 8월 22일)
  2. (WiiM-mini를 쓰지도 않고) BubbleUPnP에 인터넷 라디오를 등록하여 streaming으로 듣는 방법(2022년 9월 13일)
  3. KBS 클래식 라디오를 콩(KONG) 없이 듣는 방법(2023년 1월 26일)

DLNA(Digital Living Network Alliance)란 무엇인가? 가정 내 다양한 디지털 기기(PC, 스마트폰, TV등)들이 서로 연결되어 멀티미디어 콘텐츠를 공유하고 재생할 수 있도록 하는 기술이다. 첫 번째 링크의 설명에 의하면, BubbleUPnP for DLAN/Chromacast라는 앱을 사용하면 KBS 클래식 FM을 볼루미오로 보낼 수 있다고 한다. 이때 볼루미오는 DLNA 렌더러의 역할을 한다. 즉, 다른 기기(예: 스마트폰)에서 BubbleUPnP의 재생 명령을 받아서 음악을 재생하는 것이다.  UPnP(Universal Plug and Play)는 또 무엇이며, pls(playlist?) 파일은 또 무엇이란 말인가? 그리고 두 번째 글에 의하면 며칠만 지나면 KBS FM의 스트리밍이 또 안된다고 하는데... 오늘은 일단 사무실 PC에서 3번까지는 성공하였다. 집에 와서 또 어떻게 하다보니 스마트폰에서 볼루미오로 KBS 클래식 FM 방송을 보내는데 성공하였다. kbs1fm.pls라는 파일을 여는 것이 핵심이고, 볼루미오는 기본적으로 DLNA 렌더러라서 틀별히 설정을 건드릴 필요가 없다고 한다. 며칠, 또는 몇달 뒤면 이 플레이리스트 파일은 또 비활성화될지도 모르는 일이다. 그리고 이렇게 하여 방송을 들을 수 있는 것 역시 누군가의 노력 때문일 것이다.

왼쪽은 BubbleUPnP, 오른쪽은 볼루미오 의 화면이다.


나는 온라인으로 음원을 사거나 구독하는 데에는 투자를 거의 하지 않는다. 아주 드물게 알라딘에서 중고 CD를 구입하는 정도이고 대부분의 음악 감상은 튜너(물론 안테나를 통해 수신함)와 별도로 비용을 지불하지 않고 유튜브를 사용하는 정도이다. 가끔은 월 일정액을 지급하고 보다 풍성한 음악을 즐기는 것을 상상해 보지만, 귀에다 이어폰을 꽂고 돌아다니지는 않는 성격이라서 아직 실행에는 옮기지 못하고 있다.

볼루미오에서 플러그인을 통해 유튜브를 사용하는 방법은 매번 새롭다. 다음의 세 가지 플러그인이 어떤 차이가 있는지 매번 어렴풋하게 이해하다가 또 잊어버리고 만다.

  • YouTube2
  • YouTube Cast Receiver
  • YouTube Music

이번에는 공부를 좀 해 두어야 되겠다. 볼루미오의 plugin collectionVolumio 3 plugin migration status 웹페이지를 종종 방문하는 것도 좋을 것이다. 볼루미오를 라즈베리 파이 본체에서 직접 제어할 수 있도록 터치 스크린을 다는 일에도 여전히 관심이 있다.

What is the best touchscreen disply for Volumio in 2025?를 챗GPT에게 알려주고 결론을 내리게 하였다.

✅ 결론

  • 가장 범용적인 선택: Raspberry Pi Touch Display 2 (7″)
    안정적인 해상도, 공식 지원, 멀티터치, GPIO 전원 공급 및 Volumio와의 완벽한 호환성을 갖춘 최적의 터치스크린.

  • 대형화면이 필요한 경우: SunFounder 10.1″ DIY LCD
    더 넓은 화면과 생생한 IPS 화질로 데스크탑 볼루미오용에 뛰어난 선택이지만, 설치 및 전원 관리가 조금 더 복잡함.

  • 올인원 오디오 환경 구축: Volumio Motivo
    고품질 오디오 기능과 터치 UI가 통합된 하이엔드 스트리머. DIY보다는 완제품 환경을 선호하는 경우 적합.

  • 미니/포터블 프로젝트용: 소형 TFT 디스플레이
    공간 제약이 있는 구축물이나 실험적인 프로젝트에 적합하지만, 설치 복잡도와 낮은 해상도를 고려해야 함.


💡 최적 선택 팁

  • 쉬운 설치와 안정성을 원한다면공식 7″ 터치 디스플레이

  • 보다 크고 선명한 화면을 원한다면SunFounder 10.1″

  • 완성형 오디오 스트리머를 원한다면Volumio Motivo

  • 작고 가벼운 DIY 프로젝트용이면소형 TFT 디스플레이


DIY에 적당한 사이즈인 3.5인치 TFT 터치 스크린 디스플레이를 볼루미오(라즈베리 파이)에 설치하는 것은 꽤 손이 많이 가는 일로 알려져 있다. 볼루미오 3이 보편화된 이 시대에도 과거의 성공 경험이 여전히 유효한지는 미지수. 

이렇게 좌우로 길쭉한 디스플레이(7.9인치 1280x400)도 있다. 출처: My first audio player @volumio Rpi 4 + LCD 7.9


필요에 맞춘 제품을 만들어 내는 능력도 대단하고, 이를 응용하는 사람들의 능력도 대단하다.



2025년 7월 14일 월요일

과연 달리기를 제대로 하고 있는 것일까?

작년 8월부터 시작한 달리기가 이번달로 꼭 12개월째에 접어들었다. 이틀에 한번 꼴로 달리기를 한다는 규칙은 장기간의 출장이나 아주 나쁜 날씨가 아니라면 늘 지키고 있다. 어젯밤에도 추적추적 내리는 비를 맞으며 7.21km를 달렸으니 말이다. 달린 시간은 48분이다.



기록은 도무지 나아지지 않는다. 몇 달 연습하면 6분 이내의 페이스를 쉽게 달성할 것이라 믿었었다. 그러나 지난 4월과 5월에 평균 페이스 6분 15초를 찍은 뒤 지금은 더 나빠져서 6분 40초대가 되었다. 30분을 지속적으로 뛸 수 있는 몸을 만들자는 결심으로 1년 전에 달리기를 시작할 때에는 페이스나 거리에는 일절 신경을 쓰지 않았었다. 그러다가 약간의 자신감이 생기면서 6분 미만 페이스라는 나름대로의 목표를 세워 보았지만 현재의 훈련 수준으로는 언제 달성하게 될지 알 수가 없다.

약간 느리게 달렸더니 숨이 덜 차고 더 먼 거리를 뛸 수는 있다. 그러나 '30분에 5km'라는 내 나름대로의 초보 기준을 넘어서는 데에는 아직 부족하다. 아마 이틀에 한번 뛰는 것 외에 별도의 근력운동, 특히 하체 운동을 하지 않기에 이런 상태로 머물고 있는 것 같다. 요즘은 심박수는 아예 신경을 쓰지 않는다. 블루투스 이어셋도 없이 그냥 휴대폰을 들고 뛴다. 

심리적 마지노선은 평균 페이스를 6분 30초 근처로 유지하지는 수준까지 후퇴한 것 같다. 7분을 넘어가면 '달리기'가 아니라 '조깅'이라는데... 

비록 기대치보다는 느리게 달린다 해도 운동을 전혀 하지 않던 삶과는 다른 건강 상태에 있을 것이고, 1년을 꼭 채운 지금 무릎에 별다른 고통이 느껴지지 않으니 나의 달리기가 결코 내 나이와 신체 상태를 감안하여 큰 무리를 주는 수준은 아니라는 확신이 든다. 현 상태로부터 탈출하겠다는 욕심을 내지 않고 앞으로 건강이 허락하는 한 몇년이고 꾸준히 이 운동을 지속할 수만 있어도 내 인생에서 결코 손해는 나지 않을 것이다.

그렇다 해도 과거보다 더 나아지고 싶은 생각이 전혀 들지 않을 수는 없다. 런데이 앱에서는 몇 개의 훈련 프로그램이 내 구미를 자극한다.

"10K 1시간 목표 플랜"(GONA의 10K 5959런, 유료)

"50분 달리기 도전"

도전을 할 것인가, 말 것인가? 그것이 문제로다. 지금도 밤이 되면 쏟아지는 졸음을 주체하기 어려운데 말이다.

2025년 7월 13일 일요일

문학의 미래를 걱정할 필요가 없다

이 글의 제목에서 '문학'을 '도서'나 '출판 산업'으로 바꾸어도 거의 마찬가지일 것이라고 생각한다. 문학의 자리를 대신할 문화적 대체제가 요즘은 많이 늘어났다. 음악이 그렇고, 영화가 그러하다. 휴대폰 속 세상에서 도파민을 뿜어내게 만드는 짧은 영상도 마찬가지이다.

앙투완 콩파뇽『문학의 쓸모』


대부분의 인간 활동은 서사적·시적 차원을 지닐 수 밖에 없다(212쪽)....서사적·시적 능력이 프로와 아마추어를 막론하고 모든 분야에서 수행 능력을 향상해준다는... 독서가 빗장이니 그들에게 책을 읽히고, 이야기 예술의 보편성을, 그 편재성을 깨우쳐주자. 셈만 알고 이야기를 할 줄 모른다면 아무것도 전달할 수 없고, 아무것도 설득할 수 없으니 말이다(213쪽).

유발 하라리가 말했듯이, 인간은 언어를 발명하면서 상상의 세계를 만들어내고 또 이것에 크게 의존하게 되었다. 그것이 종교나 이데올로기로 형상화되기도 했으나, 쉽게 표현하자면 핵심은 바로 '이야기'이다. 길게 이어지면 소설이 되고, 운율을 갖추면 시가 된다. 인간이 언어를 버리겠다고 다짐하지 않는 이상, 문학이 사라질 걱정은 할 필요가 없다.

아쉽지만 문학은 창작자에게 살아있는 동안 직접적인 경제적 풍요를 제공하지 못할 수도 있다. 사후에나 작품이 재평가가 되어 수십년, 아니 백년이 넘도록 지속해서 읽히고 팔릴 수도 있기 때문이다. 그러나 소비자 입장에서는 별로 아쉬울 것은 없다. 세상을 놀라게 할 작품이 매년 꾸준히 나오지는 않겠지만, 늘 즐겁게 읽을 거리를 찾을 수 있기 때문이다. 

문학은 사회 전체 모든 분야로 퍼져나가고 있는 것이다. 마치 통계학이 모든 학문에서 도구가 되고 있듯이. 문학으로 접근하는 첫 번째 진입 장벽은 끈기 있게 책을 읽기 어려운 환경이 되었다는 것이다. 휴대폰을 통해 소비되는 숏폼 영상이 독서에 대한 장벽을 쌓는다. 이것은 반드시 극복해야 한다. 

나는 어떠한가? 요즘 들어서 두 주마다 규칙적으로 도서관을 들락거리기는 하지만, 문학 서적은 거의 빌리지 않는다. 가급적 소설책 한 권을 꼭 끼워 넣으려고 애를 쓰지만 잘 되지 않는다. 특히 배경 지식이 많이 필요한 국외 소설은 더욱 그러하다. 고전 소설부터 도전해 봐야 할 것이다. 이는 청소년 시절에 책을 별로 읽지 않았다는 부끄러운 고백이다.

『문학의 쓸모』는 조치원1927아트센터(인스타그램)에 위치한 브런치 카페 <헤이다>에서 읽었다. 







2025년 7월 11일 금요일

설계가 다 끝난 줄 알았지? 그것도 완벽하게!

누구나 그럴싸한 계획을 갖고 있다. 현실의 쓴 맛을 보기 전까지는.

부끄러운 설계도라서 블러 처리를 하였다. Fritzing으로 그렸다. 


이만하면 잘 마무리가 되었다고 생각하고 마지막으로 필요한 부품 주문을 하였는데... 결제까지 다 마치고 났더니 불필요한 크림프 터미널을 주문한 것을 깨달았다. 한림 CT0640 터미널과 여기에 맞는 하우징 및 헤더를 쓰기로 결정했는데, 연호 YST025 터미널을 20개 따로 주문한 것이다. 단가는 10원에 불과하니 큰 부담이 되지는 않는다. 파워 서플라이로부터 나오는 전원선에 연호 8핀 커넥터가 딸려 있어서 보드쪽에 장착할 헤더(SMW250-08 Wafer)만 구입하면 되는데 착각을 하여 같은 회사의 크림프 터미널까지 주문하였다.



참고할 글: 세상의 모든 커넥터(6월 21일에 작성하였으나 마음에 들지 않아 계속 수정 중)

어차피 터미널 압착을 위한 공구를 구입해 놓았으니 연습은 필요하다. 여분의 터미널이 많으면 그만큼 익숙해질 것이다. 

일반적인 핀 헤더에 몰렉스 5051용 터미널을 꽂아도 상관은 없다. 단, 핀의 수가 많아지면 피치에 따른 오차가 점점 커지니 유의해야 할 것이다. 그렇다면 몰렉스 5051, 한림 CT0640, 연호 YST025 크림프 터미널은 서로 다른 하우징에 바꾸어서 끼워도 되나? 헤더(웨이퍼)쪽 체결에는 문제가 없을까?

몰렉스 5051과 한림 CT0640은 서로 바꾸어서 써도 무방하다. 모양이 매우 다른 연호 YST025는 다른 회사의 하우징에 맞을까? 전도체의 체결 부위는 다르지만 하우징에 들어가는 데에는 문제가 없을 것도 같다. 이번에 실수로 20개를 구매했으니 끼워 보면 정답을 알게 될 것이다. 

가장 왼쪽의 것은 5159 터미널이다. 중간쯤에 갈빗대처럼 돌출한 부위가 있다는 점이 기존의 5051용 터미널인 2759와 다른 점 같다. 그래서 하우징 내에서 견고하게 있을 수 있다고 한다.

Molex의 5051은 커넥터 하우징에만 쓰는 시리즈 번호인가, 또는 특정 커넥터 시스템을 일컫는 것인가? 정말이지 별별 것을 다 공부하고 있다.

2025년 7월 10일 목요일

Fritzing 가지고 놀기

(ChatGPT의 대답) Fritzing전자 회로 설계와 프로토타입 제작을 돕는 오픈 소스 소프트웨어입니다. 주로 전자 DIY, 아두이노 프로젝트, 메이커 교육 등에서 많이 활용됩니다.

아두이노 나노를 이용한 MIDI 컨트롤러를 만들기 위해 Fritzing을 다운로드하여 설치한 뒤 만능기판(perfboard)를 펼쳐놓고 연습을 하는 중이다. 흔히 무료라고 알려져 있으나 나는 최신 버전을 다운로드하기 위해 8 유로를 기부하였다. 

대충 만든 첫 작품. 아직 미완성이고 분기 처리도 엉망이다.

브레드보드를 기준으로 부품 배치 및 배선을 도와주는 프로그램으로 설계가 되어서 그런지 만능기판은 다루기가 제법 까다롭다. 부품 리드를 1:1로 잇는 것은 그런대로 잘 된다. 아니다, 그렇지만도 않다. 기판 위에 부품을 올린 뒤 마우스 포인터를 부품에 가져가면 닿는 위치에 따라서 부품이 하이라이트되는 방식이 몇 가지로 바뀐다. 부품 전체를 검정색 점선이 둘러싸기도 하고, 부품 전체가 어두워지기도 하며, 리드 끝점의 색깔이 최소한 두 가지로 바뀌기도 한다. 각 상태에 따라서 마우스 드래그의 동작이 달라지므로 아주 조심해야 한다. 위치 이동, 배선, 리드 길이 변경 등.

이것도 쉽지 않은데, 한 포인트에서 전기적 접속을 이루면서 여러 곳으로 분기하게 만드는 것이 어렵다. 원래 그렇다고 한다! 시각적으로 그렇게 보이도록 만들 수는 있지만, Frtizing 안에서는 실제 연결된 것으로 인식하지 않는다. 다음의 예를 보자. 

수직으로 뻗은 짧은 노란색 와이어의 위 아래 끝점이 주황색으로 표시되어 있다. 이는 실제 연결이 되지 않았음을 의미한다. 인쇄를 해서 회로를 실제로 꾸미는 데 가이드로 이용할 수는 있지만, 이런 상태로는 Fritzing 안에서 이를 회로도나 PCB로 전환하는 것은 곤란하다. ChatGPT에 의하면 부품('Core Parts') 중에서 solder point나 pad를 찾아서 이용하라고 한다. 말은 쉬운데 이런 부품이 목록에서 눈에 확 들어오는 것이 아니다. 약간 다른 모양의 것을 불러다 놓은 다음 핀 수를 줄인다든지 하는 방법을 택해야 하는 것 같다.

시작이 잘못되었다! 브레드보드에서 먼저 부품 배치와 와이어링을 마친 뒤, 회로도로 전환하여 점검한 다음에 만능기판으로 넘어가는 것이 더 합리적인 방법으로 보인다. Fritzing이 만들어진 근본 취지를 생각하면 이런 순서로 접근하는 것이 백번 옳다. 다음번 프로젝트에서는 이러한 권장 방법을 쓰도록 하고, 이번에는 만능기판으로 시작했으니 일단 끝을 보련다. 회로 점검은 오직 눈으로 하는 수밖에는...


2025년 7월 6일 일요일

[EZ Ardule MIDI controller] 마이크로SD카드에 담긴 MIDI 파일의 단순 재생부터 시작해 보다

시작은 무식(?)과의 싸움, 그리고 다음으로는 제한된 메모리와 싸움...

기본부터 공부하지 않은 상태로 챗GPT에게 물어 가면서 안일하게 자작을 해 나가려고 생각한 것이 잘못된 선택일지도 모른다. 알리익스프레스에서 주문한 OLEVO라는 브랜드의 32G 마이크로SD카드가 제대로 인식조차 되지 않으리라고 어떻게 생각할 수 있었겠는가. 

아두이노 우노에서 마이크로SD카드를 점검하고 있다.

무난한 SanDisk 제품을 사러 다이소에 다녀오는 길.

라이브러리에 딸린 유용한 예제는 무시한 채로 챗GPT에게 모든 것을 물어 보는 것도 옳지 않은 자세였다. 카드 인식이라든가 카드에 수록된 MIDI 파일을 재생하는 코드는 이미 라이브러리에 딸려 온 예제 코드로 충분하게 구현 가능하였다. 다음은 예제 코드를 이용하여 카드 인식을 테스트한 결과이다. 시리얼 모니터로 나온 출력을 복사하였다.

Initializing SD card...Wiring is correct and a card is present.

Card type:         SDHC
Clusters:          973584
Blocks x Cluster:  64
Total Blocks:      62309376

Volume type is:    FAT32
Volume size (KB):  31154688
Volume size (MB):  30424
Volume size (GB):  29.71

Initializing SD card...Wiring is correct and a card is present.

Card type:         SDHC
Clusters:          973584
Blocks x Cluster:  64
Total Blocks:      62309376

Volume type is:    FAT32
Volume size (KB):  31154688
Volume size (MB):  30424
Volume size (GB):  29.71
SYSTEM~1/     2025-07-06 12:23:42
  WPSETT~1.DAT  2025-07-06 12:23:42 12
  INDEXE~1      2025-07-06 12:23:44 76
PASSPORT.MID  2025-04-13 15:58:20 23165
CANYON.MID    2025-02-20 20:12:18 33876
FLOURI~1.MID  2025-07-05 19:08:44 24253
NORMAL~1.MID  2025-05-06 20:07:26 33282

프로토타입 구현 방법도 고민거리였다. 아두이노 나노를 브레드보드에 꽂은 뒤 모든 것을 점퍼선으로 연결하는 전형적인 방법을 쓰려 하다가 위 사진과 같은 기이한 형태를 취하기로 했다. 중간에 분기할 필요가 없다면, 아두이노 나노의 핀과 부품의 핀을 female-to-female 점퍼선으로 연결하는 것이 가장 확실한 접속을 보장할 것이기 때문이다. 버튼, 로터리 인코더 및 LED 등의 부품이 추가되면 연결 상태는 더욱 복잡해질 것이다.

컴퓨터에서 USB 케이블로 전원을 공급하면 SAM9703 출력으로 잡음이 들린다. 이것은 나중에 최종 작품을 만들 때에는 반주기의 SMPS에서 전원을 따로 연결하면 해결될 것이다.

아직도 연결할 부품이 하나 가득... 

긴 브레드보드 하나에 모든 부품을 꽂으려던 계획은 실현 불가능. 버튼 스위치의 GND 연결은 어떻게 하는게 좋을까? 차라리 만능기판에 납땜을 하는 것이 더 나을 수도 있다. 최종판에서는 패널에 구멍을 뚫고 고정하는 제법 큰 크기의 버튼 스위치를 쓰려고 구입해 놓은 상태이다. 

오늘은 마이크로SD카드에 저장한 type 0 MIDI 파일을 순차적으로 재생하는 아주 단순한 기능부터 구현하였다. 파일 목록과 순서는 코드 내에 지정해 두었고, 메모리 부족 때문에 LCD 표시도 16x2로 제한하였다. 버튼, LED, 로터리 인코더 등의 입출력 장치는 아직 하나도 연결하지 않은 단순한 상태이니, 기획했던 기능을 전부 구현하려면 2KB의 내장 메모리로는 턱도 없이 부족할 것이다.

7월 중에 프로토타입을 완성해 보리라.


2025년 7월 5일 토요일

METEX 함수발생기(function generator)의 폭발한 필름 커패시터를 교체하다

지난 5월 하순, 알리익스프레스에서 구입한 초저가 오실로스코프를 테스트하는 도중 낡은 함수발생기(MXG-9802) 내부의 커패시터가 폭발한 일이 있다. 흔히 겪는 전원부의 대용량 전해 커패시터가 아니라 X2 안전 커패시터가 터진 것이었다.

윗면에 0.1uF X2라고 인쇄된 것이 문제의 부품. 왼쪽에 두꺼운 리드가 삐져나온 것이 보인다. 

SCO2 오실로스코프를 테스트하다 함수발생기에서 폭발 사고를 겪다

이 작은 사건은 30년이 넘는 전자기기에 대한 나의 생각을 근본적으로 바꿀 수 있을 정도로 큰 충격을 주었다. 계속 유지 보수를 해 나가면서 낡은 기기를 소유하는 것이 과연 가능할까? 항상 새롭고 건강한 상태의 물건을 사들이고 낡은 것은 문제가 발생하기 전에 처분하는 것이 더 현명하지 않을까? 더군다나 올해 상반기는 낡은 신시사이저(KORG X2)를 잡음 문제를 해결한답시고 꽤 많은 자가 수리를 한 터라 마음이 계속 편하지 않았다. 안전 커패시터와 신시사이저 모두 X2라는 단어가 공통으로 들어간다. 묘한 우연의 일치이다.

알리익스프레스 주문한 X2 안전 커패시터 10개 들이 묶음을 다른 부품과 함께 받았다. 함수발생기를 분해하면서 오래 되어 탄성이 없어진 이동 손잡이 겸 스탠드는 부서져 버렸고, 다리 또한 다시 사용하기 곤란한 상태가 되었다. 다음 사진과 같은 다리를 구해다가 달아야 되겠다.



챗GPT에게 물어보니 폭발한 RIFA PME271M 커패시터의 내부 물질에는 특별히 해로운 것은 없다고 한다. 빈티지 부품의 경우 유해한 PCB(폴리염화비페닐)이 포함된 경우가 있어서 주의를 요한다.

오염된 주변부를 닦아내고 새 커패시터로 교체하였다. 같은 용도로 사용하는 동일 용량의 안전 커패시터인데 크기는 훨씬 작았다. X2 커패시터는 자기회복 기능이 있어서 내부에서 절연 파괴가 발생해도 손상된 부위를 스스로 절연 상태로 복구한다고 한다. 정말 놀라운 기능이다.

커넥터가 적재적소에 쓰여서 문제가 발생한 보드만 꺼내기가 매우 수월하였다. 



케이스를 닫기 전에 내부 전체를 사진으로 찍어 보았다.


과연 전원부의 안전 커패시터를 교체한 것만으로 함수 발생기가 제 기능을 되찾을 것인가? 


수리는 성공적이었다. 정상적인 파형이 발생하였으며, 조정에 따라서 잘 변화한다. 다만 10X 단위로 주파수를 바꾸는 누름 스위치의 걸림이 일부 스위치에서 원활하지 않아서 아주 기술적으로 눌러야만 고정이 된다. 이는 참을 수 있는 수준이다.

오늘의 수리를 통해서 낡은 전자제품을 '반려'용으로 계속 손보아 가면서 쓰는 일에 아주 조금의 자신감을 더하기로 하였다. 취미의 세계에서 쓸데없는 경험이란 없는 것이다. X2 안전 커패시터와 함께 구입한 자잘한 부품들은 MIDI 컨트롤러 자작에 들어가게 될 것이다. 

2025년 7월 3일 목요일

국가 바이오 데이터 스테이션(K-BDS)에 다소 엉뚱해 보이는 자료 등록하기

일을 하다 보면 데이터관리계획(Data Management Plan, DMP)의 사전 작성 여부와는 관계없이 데이터가 생기기도 한다. 국내 생명과학 연구 분야에서 과제 신청 시 DMP를 제출하고 이에 따라서 K-BDS에 연구 데이터를 등록하는 제도가 본격적으로 시행되기 전에 만들어진 데이터는 아마도 제도 시행 이후보다 더 많을 것이다.

코로나바이러스감염증-19가 여전히 맹위를 떨치던 2021년, 이를 진단하기 위한 작은 연구 프로젝트를 진행한 일이 있다. 되도록 다양한 변이체를 검출하기 위하여 알려진 SARS-CoV-2 유전체를 전부 받아서 다중서열정렬을 한 다음, 보존 서열(conserved sequence)의 영역을 추출하였다. 2021년 여름이에 데이터를 다운로드하여 분석 작업에 착수하였고, 논문으로 출판된 것은 이듬해였다. 나는 원본 염기서열 데이터와 중간 단계의 데이터(trimming & dereplication), 그리고 다중서열정렬(MSA) 결과 파일까지를 K-BDS의 기타('GeNA') 항목으로 등록해 보려고 한다.

NCBI의 SARS-CoV-2 Data Hub에는 오늘 기준으로 확인해 보니 9백만 건이 넘는 유전체 염기서열이 등록되어 있다. 내가 2021년에 데이터를 수집할 때에는 등록 기간(2021.12.31.~2021.07.01.), full length 여부 등의 필터를 적용하여 218,799건의 염기서열을 선택했었다. 더불어 GISAID(Global Initiative for Sharing All Influenza Data, 국제인플루엔자정보공유기구)에서는 한국에서 유래한 유전체 정보 4,931개를 다운로드하였다. 두 종류의 데이터 저장소는 무료로 접근하여 데이터를 내려받아 사용할 수 있지만 상당히 많은 차이가 있다. NCBI는 open access이고 GISAID는 free access로서 후자의 경우 사용에 대한 제한이 좀 더 많다. 다음 슬라이드를 보라.


자료 출처: 내가 직접 만든 발표용 슬라이드.


GISAID의 자료를 연구에 활용한 뒤 이를 논문에 발표할 때에는 정보 제공자에 대한 크레딧을 반드시 표시해야 한다. 환자가 아니라 이 유전체 정보를 등록한 연구자를 말한다. 따라서 약 5천 건의 유전체에 대한 감사의 글은 PDF 문서로 무려 8쪽에 이른다! 반면 NCBI의 자료는 특별히 그럴 필요가 없고, 내려받았던 원본 자료를 그대로 다른 곳에 올려도(물론 accession number는 표기해야 될 것이지만) 상관이 없다.

따라서 등록하고 싶은 자료에서 GISAID 유래 염기서열은 전부 빼야 한다. 사용했던 accession number라도 공개하고 싶었으나 ChatGPT에 물어보니 그것도 곤란하다고 한다. 대량(수천 건)의 accession number를 공개하는 것은 Terms of Use의 위배 사항이란다. 단, 데이터를 다운로드하면서 자동 생성되었던 감사의 글 형태로 공개하는 것은 괜찮은 것 같다.

어쨌든 데이터 뭉치에서 GISAID의 것을 제외하려니 이게 생각만큼 간단하지가 않다. 중간에 dereplication을 거치면서 어떤 서열들은 하나의 클러스터로 뭉쳤다. 예를 들어 NCBI의 서열 하나와 GISAID 서열 하나가 완전히 동일하여 하나의 클러스터가 되었다고 하자. 물론 host는 다를 것이다. 이러한 경우에는 특별히 손을 대지 않아도 된다. 그러나 GISAID의 것으로만 이루어진 cluster라면 재배포 금지 원칙에 따라 이를 제거해야 한다.

그런데 2021년 분석 당시에 UC file을 만들지 않은 것이 실수였다. Dereplicated sequence가 모인 FASTA 파일의 sequence description 항목에 cluster size를 기록하게는 만들었지만(dP: >MZ706206.1;size=10), 어떤 서열이 모였는지는 따로 파일로 기록하게 만들지 않았기 때문이다. 번거롭지만 데이터 정리 후 VSEARCH를 다시 돌려야 한다! 실은 22만개 가까운 바이러스 게놈 서열이라 해도 많은 시간이 걸리지는 않는다.

$ vsearch --derep_fulllength Korea_plus_Delta.trimmed --uc cluster --output derep.fa --sizeout
vsearch v2.21.1_linu  x_x86_64, 125.7GB RAM, 32 cores
https://github.com/tognes/vsearch

Dereplicating file Korea_plus_Delta.trimmed 100%  
339644176 nt in 11552 seqs, min 29097, max 29796, avg 29401
Sorting 100%
8530 unique sequences, avg cluster 1.4, median 1, max 205
Writing FASTA output file 100% 
Writing uc file, first part 100% 
Writing uc file, second part 100% 

K-BDS에 등록하기 위해 데이터를 재가공하는 것은 어제 오늘의 일이 아니다. GISAID의 것을 제외하여 데이터셋을 다시 만든 뒤, dereplication과 MSA를 다시 실행해서 올려야 되겠다. README 파일에 구구절절한 설명(변명?)을 올리는 수밖에는...