2025년 8월 5일 화요일

1602 LCD 모듈에 I2C 통신모듈 납땜하기

EZ Ardule MIDI Controller의 초기 설계에서는 2004 LCD 모듈을 디스플레이로서 사용하려고 했었다. 제어용 핀 수를 절약하기 위해 I2C 통신모듈이 붙은 형태의 부품을 구입해 놓고 한참을 방치하다가, 보다 단순한 형태를 추구하는 것이 제작의 부담을 줄일 수 있을 것 같아서 아두이노 스타터 키트 구입 당시에 들어 있던 1602 LCD 모듈을 쓰는 것으로 방향을 바꾸었다. 다루는 MIDI 채널의 수도 당초 4개에서 2개로 줄였다. 그래서 명칭은 Nano Ardule MIDI Controller로 바꾸었다. Nano는 작다는 뜻도 있지만 아두이노 나노를 쓰고 있음을 밝히는 뜻도 있다. 설계 요약 문서는 내 위키에 정리해 나가고 있다(링크).

처음부터 갖고 있던 1602 LCD에는 I2C 통신모듈은 붙어있지 않다. 그래서 쿠팡에서 당일 배송 가능한 I2C 통신모듈을 따로 구입하여 납땜을 하기로 마음을 먹었다. 핀 헤더를 떼어내는 것이 약간 까다로워 보였다.


유튜브에서 납땜 실력자의 동영상을 보면서 핀 헤더를 떼는 요령을 참조한 뒤 실제 작업에 들어갔다. 생각만큼 쉽지는 않았다. 설상가상으로 구멍 하나의 패드가 떨어져 나갔다. 인두의 용량이 높은 편이고(40와트), 핀을 너무 강하게 잡아당긴 것도 원인이었을 것이다. 핀을 뽑은 뒤 남은 납을 처리하다가 문제가 생겼는지도 모른다. 흡입기, 솔더윅... 오늘따라 어느 하나 마음에 들게 작동하는 것이 없다. 차라리 I2C 1602 LCD 모듈을 새 것으로 구입했더라면 이렇게 고생을 하지 않았을 것이다. 일체형 부품을 추가로 구입하지 않아서 절약한 비용보다 내가 들인 노력(납땜에 따른 실내 공기 오염 효과까지)이 더 큰 것 같다. ICBANQ에서는 배송비는 별도지만 부가세 포함 2,585원이면 구입 가능하고, 알리익스프레스에서는 더 저렴할 것이다.

초록색 솔더 마스크를 칼로 살살 긁어서 망가진 패드로 연결되는 머리카락만큼 가느다란 패턴의 동박을 드러나게 한 뒤, 전선 조각을 덧대어서 핀 홀 주변에 남은 패턴과 납땜을 하였다. 하지만 I2C 모듈의 핀은 보드 반대편 패드와 납땜을 해야 한다. 전선 조각을 조금 길게 남겨 자른 뒤 반대편 패드에 확실하게 붙여버렸다.

이게 뭐란 말인가.

어설프게 수선을 했지만 16개나 되는 모든 접점이 제대로 납땜으로 이어졌는지 확신을 하기가 어려웠다. I2C로 LCD를 제어하는 간단한 코드를 만들어 테스트해 보았다.



다행히 LCD는 잘 작동하였다. 이런 일이 있을 때마다 온도 조절이 되고 지금 사용하는 것보다 더 가느다란 팁을 꽂을 수 있는 고주파 인두를 갖고 싶어진다. 또는 USB-C 전원으로 작동하는 충전식 인두가 요즘의 대세인지도 모른다. GVDA GD300이라는 제품의 평이 좋은 것 같다.

줘버린 AI, 소버린 AI

인공지능(AI) 기술에 대한 관심과 기대감이 정말 뜨겁다. 중장기 계획도 아닌, 연구소의 단기 계획을 수립하는 데에도 인공지능이라는 표현을 쓰지 않으면 마치 역적이 된 것과 같은 느낌이랄까. 

'소버린(sovereign, 주권 또는 자주적인) AI'라는 신조어도 그런 인기 있는 용어 중 하나이다. 챗GPT에 물어보니 이 용어는 2024년 NVIDIA 블로그를 통해 처음 등장했다고 한다.  

What is sovereign AI?

이후 NVIDIA 젠슨 황이 이 개념을 적극 퍼뜨리면서 홍보를 하기 시작했는데... 결국 자사 제품을 많이 사 주어야 소버린 AI를 갖게 된다는 것 아닌가. 기가 막힌 마케팅 전략이다.

NVIDIA CEO: Every country needs sovereign AI

각 나라가 글로벌 테크 기업에 종속되지 않고 자신의 문화와 언어, 데이터를 중심으로 독자적인 AI(~'지능')을 가져야 한다는 것은 인정한다. 그러나 이를 실현하려면 NVIDIA의 제품을 더 많이 사 주어야 한다.

자, 그러면 국가 차원에서 이를테면 GPGPU farm을 구성해서 연구자나 기업이 쓸 수 있게 하는 것이 옳은가, 또는 수요자가 알아서 하도록 놔 두는 것이 좋은가? OpenAI는 현재 미국 정부와 많은 계약을 체결했지만, 창립 초기에는 직접적인 정부 보조금 없이 발전해 왔다고 한다. 다만 Open Philanthropy Project에서 3년에 걸쳐 3천만 달러라는 막대한 지원금을 받았다. 이것은 바로 'grant'이다. Grant는 투자도 아니고 주식도 요구하지 않는다.

우리나라에서 이런 수준의 자금이 나올 곳은 별로 없다. 

분위기를 바꾸어서 이야기를 이어 나가 보자. AI는 민간(기업을 포함하여)이 잘 한다는 말을 많이들 한다. 미국처럼 민간 재단-결국은 페이스북 공동 창업자가 그동안 번 돈을 이용하여 설립한 자선 재단-에서 지원금을 준다면 얼마나 좋을까? 그걸 한국에서 기대하기는 아직은 어려운 것 같다. 정부의 지원이 어느 정도는 필요하고, 새 정부가 들어선지 얼마 되지 않았으니 정부 주도의 좋은 밑그림을 그릴 수 있게 아이디어를 제공하는 것도 필요하다.

이와 관련한 회의를 하다가 갑자기 '줘버린 AI'라는 말이 떠올랐다. 민간(기업)이 잘 한다고 하니, 꽉 막힌 규제만 잘 풀어주고 그들이 창의력을 발휘해서 알아서 할 수 있게 놔두면 어떨까? 그래도 GPGPU farm은 일종의 공공재이니 정부에서 조성하는 것이 옳은가?

질문 답변
정부가 GPGPU farm을 조성해서 기업이 쓰게 하는 것, 옳은가? ✅ 가능하나 조건부로만 정당화
핵심 쟁점 공공성과 시장 공정성의 균형
권장 모델 공공 인프라 + 민간 접근 허용, 단 투명하고 공정한 규칙 필수

보통 '○나 △나 줘버려!'는 책임 회피나 관심 없음을 표현할 때 많이 쓰인다. '개나 소나 줘버려!'는 너무 거칠고 냉소적인 표현이라 조금 점잖게 써 보았다. 줘버린 AI란 신조어는 지나친 간섭 없이 민간이 창의성을 발휘해 각자의 방식으로 소버린 AI를 만들기를 기대하고 만든 신조어이니 오해가 없기를 바란다. 정부가 너무 나서거나 뒤처지지도 않으면서 AI 시대의 자연스러운 마중물 역할을 하기를 기대해 본다.


2025년 8월 4일 월요일

EZ Ardule MIDI Controller 프로젝트는 용두사미로 끝나다

아두이노를 사용하여 볼륨 외에는 별다른 조작장치가 없는 SAM9703 모듈을 제어하는 장치인 가칭 EZ Ardule MIDI Controller를 만들려고 야심찬 계획을 세웠었다(링크). 기부금을 내고 Fritzng 소프트웨어까지 다운로드하여 아두이노 나노 기반 장치의 회로도까지 다 그리고 필요한 부품을 다 사서 모았으나...

결국 게으름으로 인하여 중도 포기에 이르렀다. 계속 주말에 다른 스케쥴이 생기면서 본격 제작에 착수할 시간을 내기 어려웠고, 케이스 가공만 생각하면 머리가 아팠다. 그래서 브레드보드에 대충 부품을 꽂아 만들어 두었던 MIDI IN 신호 처리 및 SAM9703 초기화 회로를 만능기판으로 옮기고, 본체 안에 MAX4410 헤드폰 앰프 보드를 넣는 것으로 계획을 대폭 수정하였다.

이번 작업의 의미는 크림핑 툴을 사용하여 커넥터를 직접 만들어 달았다는 것에 있다. 밑그림을 그리지 않고 페놀 기판에 되는대로 부품을 붙여 나갔는데, 배선 실수 없이 잘 끝났다. 그러나 뒷면에는 점퍼선이 어지럽게 돌아다닌다...





만능기판 뒷면의 배선용으로 예전에 사다 둔 다음 사진의 단색전선을 쓰고자 하였다. 

사진 출처: IC114


그런데 도대체 무슨 일이 벌어진 것인지 납이 도무지 붙지를 않았다. 정말 어이가 없을 지경으로! 어쩔 도리 없이 적당한 연선의 피복을 벗겨서 배선재로 사용하였다. 납땜 작업은 일주일만 쉬어도 실력이 현저히 떨어지는 것 같다. 40와트짜리 납땜인두가 너무 뜨거워서 그럴 수도 있을 것이다. 큰 소켓이나 트랜스포머에 납땜을 하기에는 좋지만, 페놀 만능기판에서 이 인두를 가지고 작업을 하다 보면 과열로 인해 패드가 꼭 한두개씩 떨어지는 일이 생기니까 말이다.

너무 흉하게 작업을 마쳐서 다시는 뚜껑을 열기가 싫을 정도이다. 추가 작업을 한다면 기기 전면부에 MIDI activity를 보이는 LED를 달고 MIDI THRU 회로를 넣는 것 정도가 될 것이다.

Ardule 컨트롤러 프로젝트는 이와 같이 무산될 위기에 처했지만, 차라리 라즈베리 파이를 이용하여 이를 구현하는 것이 더 나을지도 모르겠다. 세상에는 워낙 천재들이 많아서 Zynthian이라는 라즈베리 파이 기반의 오픈소스 디지털 신디사이저 프로젝트가 있다. 무대에서 사용해도 손색이 없을 정도라고 한다. 

출처: https://zynthian.org/


라즈베리 파이와 아두이노를 조합하면 훨씬 다채로운 기능의 물건을 만들 수도 있다. 그런데 아두이노 하나를 써서 만드는 것도 귀찮아서 이렇게 주저앉았는데, 과연 그런 '거대' 프로젝트를 감당할 수 있을까? 시간을 오래 두고 추진한다면 전혀 불가능한 일은 아니다.

Fluidsynth, Yoshimi, Pure Data를 이용한 SF2 연주 및 감산합성용 통합 기기라면 중장기 프로젝트로서 상당히 매력이 있다. 고려해 보자.

2025년 7월 29일 화요일

달리기 입문 1년차를 마무리하며

뛰고 난 다음날 아침은... 늘 졸음이 쏟아진다.

작년 8월 5일부터 런데이 앱을 이용하여 달리기를 시작하여 이제 12개월에 걸친 '입문'과정을 마무리하는 시점이 되었다. 처음에는 전혀 운동을 하지 않던 나의 체력으로 1km를 쉬지 않고 달리는 것이 과연 가능할지 반신반의하였으나 지금은 이틀에 한 번 꼴로 8km를 뛰어도 될 수준에 이르렀다. 다만 인터벌 달리기와 하체 근력 운동을 병행하지 않아서인지 페이스는 지난 4-5월에 정점을 찍고 지금은 약간 나빠졌다. 7월에 들어서 거리를 8km로 늘이면서 페이스 향상에는 별로 신경을 쓰지 않기로 한 때문일 것이다.

7월 중 8km를 달린 날은 어제(28일) 기준 총 닷새였다.

어제까지 달린 누적 거리는 886.85km이다. 약간 무리를 하면 7월 중에 900km를 채우는 것도 가능할 것이다. 7월 중순에 집중적으로 내린 비로 인하여 연이어서 4일 동안 달리지 못한 것이 아쉽다.

중도에 포기하지 않고 여기까지 온 것만으로도 정말 잘 한 일이라고 스스로에게 칭찬을 하고 싶다. 중년에 시작한 달리기 2년차의 아주 현실적인, 그러나 결코 쉽지 않은 목표는 1시간/10km를 이따금 달성하는 것이다. 지금 수준에서 6분 페이스를 몇 km나 지속하여 달릴 수 있을지 자신하기 어렵다. 또 다른 목표는 운동을 아주 싫어하는 아내를 끌고 바깥으로 나오기!

3년차에는 아마 하프 마라톤에 해당하는 거리를 뛸 수 있지 않을까? 3년째에 풀코스를 뛰는 사람들을 보면 부럽기만 하다.

2025년 7월 24일 목요일

"남의 데이터로 학습한 AI 모델은 쓰고 싶지만 이를 개선하는데 내 데이터는 내놓고 싶지 않아."

만약 취미 프로젝트를 구체화하기 위해 챗GPT와 대화하고 있다면, 나는 대화 기록이 OpenAI로 넘어가는 데에 불만이 없다. 챗GPT가 등장하기 전에도 인터넷을 통해 새로운 지식을 얻었고, 이를 바탕으로 내 경험을 더하여 다시 공개하는 것에도 주저함이 없었다. 누구든지 이를 이용하여 시행착오를 줄일 수 있다면 좋은 일 아니겠는가? 자유로운 지식 공유와 활용 및 확산의 선순환 구조에 기여한다는 생각과 함께.

내 취미 프로젝트가 비즈니스로 확장될 가능성이 있다면? 즉, 뭔가를 DIY로 만들어서 개념 검증(PoC, Proof of Concept)까지 끝나서 어쩌면 제품화까지 가능할 것 같은 생각이 든다면, 이와 관련한 정보를 더 이상 세상에 알리고 싶지 않을 것이다. 물론 남이 내 데이터로 학습한 AI모델과 대화하면서 구체적인 내 아이디어를 '도용'할 가능성은 매우 적지만 말이다. 어쩌면 PoC까지 가기 전 단계에서 이렇게 차단에 대한 결정을 내리게 될 수도 있다.

업무용 목적으로 챗GPT를 쓰는 경우에 비슷한 고민을 하게 될 것이다. 아직 세상에 알리고 싶지 않은 설익은 아이디어가 챗GPT를 학습하는 용도로 흘러들어가 쓰이게 되면, 그 아이디어를 빼앗기는 것과 다름없으므로.  그래서 많은 기업에서는 사내에서 챗GPT를 쓰지 못하게 하는 것으로 알려져 있다.

삼성전자, 챗GPT 사용 금지...보안상 별도 생성형 AI 개발(경향신문 2023년 5월 2일)

정부출연연구소는 민간 기업만큼 심각하지는 않다 하더라도 어느 정도 주의를 할 필요는 있다. 위 기사와 같은 해에 국가정보원의 국가사이버안보센터는 챗GPT 등 생성형 AI활용 보안 가이드라인(2023.6.)을 배포한 바 있다. 이게 벌써 2년 전의 일이고, 그 사이에 생성형 AI의 발전은 정말 괄목할 수준이었다.

이러한 우려에 발맞추어 OpenAI에서도 사용자의 콘텐츠를 훈련에 사용하지 않도록 설정할 수 있다. 그러나 기본 설정은 이를 사용하게 허용하는 것이고, 거부하려면 옵트아웃(opt-out)을 해야 된다.

여러분이 우리와 콘텐츠를 공유하면, 이는 모델이 여러분의 구체적인 문제를 더 정확하게 해결하도록 돕고, 동시에 일반적인 능력과 안전성 역시 향상시키는데 기여합니다. 우리는 여러분의 콘텐츠를 우리의 서비스를 마케팅하거나 여러분에 대한 광고 프로필을 만드는 데 사용하지 않습니다 — 우리는 그것을 모델을 더 유용하게 만들기 위해서만 사용합니다. 예컨대 ChatGPT는, 여러분이 옵트아웃(거부)하지 않는 한 사람들이 나누는 대화에 대해 추가 훈련을 거치며 개선됩니다. [출처: OpenAI Help Center - How your data is used to improve model performance]

참고로 OpenAI Help Center의 글은 정책이 바뀜에 따라서 수정될 수 있다. 대화 데이터를 학습용으로 사용할 수 있는 기본 설정을 그대로 유지한다 하여도 이 데이터는 익명화된다.

나도 오늘부터 기본 설정을 바꾸어 "옵트아웃"하기로 결정하였다. 웹브라우저로 접속한 뒤 왼쪽 아래의 설정으로 들어가서 다음과 같이 [데이터 제어] -> [모델 개선]을 끄면 된다. '모두를 위한' 모델 개선이라고 해 놓은 것을 보면 이 스위치를 켜진 상태로 두는 것이 바람직하다는 느낌을 주려고 무척 애를 쓴 것 같다.




이 스위치를 켜면 파랗게 표시된다.


바로 이것이 제목으로 나타낸 바와 같이 요즘 우리의 솔직한 입장이다. "남의 데이터로 학습한 AI 모델은 내 업무에 철저하게 쓰고 싶지만, 내 데이터는 모델 학습에 쓰지 마라!" 나도 어쩔 수 없이 약간의 불안감에 이 스위치를 끄고 말았지만, 이는 매우 이중적인 태도이다. 상호주의 없이 얻기만 원하면서 동시에 관련 생태계의 지속가능성을 해치는 일이 될 수 있다.

저 파란색 스위치는 어쩌면 모두의 이익이라는 수사를 쓰고 있지만 OpenAI의 수익 증대를 에둘러 표현한 것일지도 모른다. 그러나 이러한 열망이 조금씩 버무려져서 균형을 맞추며 세상이 굴러간다고 봐야 하지 않을까. 어쨌든 나는 그 '균형'의 바큇살에서 일단 빠져 나오기로 하였다. 유료 플랜을 구독하고 있는 것으로 내 역할을 다 하고 있다고 생각하면서. 생각해보니 이 또한 맞는 말이다.

우선 일상적으로 수사학은 경멸적인 의미로 사용된다 - 박성창 <수사학>


라즈베리 파이 3B(볼루미오)에 3.5인치 TFT LCD 터치 스크린을 설치하기가 이렇게 어렵다

휴대폰 볼루미오 앱으로 라즈베리 파이 3B(V1.2, 2015)를 제어하다가 가끔 연결이 잘 되지 않을 때가 있다. 만약 라즈베리 파이에 터치 스크린을 달면 매우 편리하게 사용할 수 있을 것이라 생각을 하고, 알리 익스프레스에서 잠깐 검색을 한 뒤 주문하였다. 이것이 고통의 시작이 되리라고는 상상도 하지 못했다.

디스플레이에 따라서 그냥 꽂으면 작동하는 것도 있지만, GIPO로 연결하는 3.5인치 저항식 터치스크린(480 x 320 해상도, ADS7846 컨트롤러 사용)은 명령행 인터페이스에 직접 설정을 건드릴 것이 많다고 하였다. 화면을 나오게 하는 것은 그렇게 어렵지 않았다. 참조한 것은 다음의 두 웹사이트.

볼루미오 3.819에서 테스트하다.

그러나 화면이 나온 뒤 터치 동작이 말썽이다. 스타일러스로 화면을 눌러서 움직이는 방향과 정반대로 포인터가 움직이는 것이 아닌가. 이는 볼루미오에서 잘 알려진 문제이기 때문에 이에 대한 해결책이 꽤 많이 공개되어 있다. 그러나 몇 시간을 따라서 해도 잘 되지 않는다.

차라리 Raspberry Pi OS를 깔아보면 터치 디스플레이가 제대로 작동하는 것을 보게 되지 않을까 싶어서 마이크로SD카드에 새로 이미지를 구워서 시도해 보았다. 이렇게 하는 것이 가장 기본이라고 생각했기 때문이다.

설치 직후 HDMI 케이블로 연결한 일반 모니터에서는 시원한 GUI 화면이 잘 나온다.


asda3.5인치 터치 스크린을 구동하기 위하여 LCD wiki의 3.5inch RPi Display의 설명대로 다음의 명령을 실행하였다. LCD-show는 라즈베리 파이용 LCD 드라이버인데, 볼루미오에서는 LCD35-show 스크립트를 실행해서 쉽게 설치하지 못한다.

sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show

LCD-show 드라이버 설치 뒤 재부팅을 기다린다.

잔뜩 기대를 갖고 재부팅을 하였는데, 화면에서는 아무것도 나오지 않고 텍스트 모드의 커서만 번쩍번쩍. SSH로 접속을 해 보면 작동은 하고 있다.

관련 글을 찾아보면 제발 로그 파일을 확인해 보라고 하는데, 리눅스 계열의 OS를 대략 30년 가까이 써 왔지만 X.Org와 관련한 비정상적 작동 상황을 로그 파일에서 확인하는 것은 익숙하지 않다. 괜히 이 뜨거운 여름날에 새로운 '스불재'(스스로 불러온 재앙)를 맞게 된 것은 아닌지.

아주 기초적인 문서에 해당하는 Setting Up a 3.5-inch LCD Touch Display with Raspberry Pi: A Step-by-Step Guide(2024년 7월 10일)과 실제 과정을 설명한 다음의 유튜브 영상과 내가 한 것 사이에 별 차이가 없는데 도대체 왜 화면조차 나오질 않는지 알 수가 없다.



부품을 몇 주에 걸쳐서 다 준비한 뒤 본격적인 아두이노 나노 응용 DIY 프로젝트를 착수하려고 했는데 라즈베이 파이(볼루미오)가 발목을 잡을 줄이야...    


2025년 7월 28일 업데이트

Raspberry Pi OS(32비트 버전)에 LCD-show 드라이버를 설치한 뒤 아무리 노력해 보아도 터치 포인터는 이상한 방향으로 움직인다. USB 마우스를 꽂아서 움직여 보면 동작이 매우 부드럽지 못해서 사용이 불편하다.

Volumio는 최신판을 설치하고 다시 터치스크린을 띄우기 위해 노력 중인데 이제는 화면이 아예 나오지 않는다. 왜 일관성이 없나? 더 이상은 모르겠다. 지난 일주일 동안 마이크로SD카드에 두 종류의 OS 이미지를 몇 번이나 구워서 테스트했었는지...

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 웹사이트 자동 생성기를 돌렸더니 세상에 존재하지 않는 바이오의료 정보기업을 만들어 버리는 것이 아닌가. 아직 있지도 않은 비즈니스에 대해 세상에 대놓고 거짓말을 할 수는 없어서 아직 자동 생성기는 쓰지 않기로 했다.

다음의 동영상은 7월 23일에 시설 견학을 온 방문자들을 위한 프레젠테이션 자료에 장난삼아 만들어 넣은 것의 일부를 발췌한 것이다. 내 목소리를 합성하여 읽게 하였다.




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 파일에 구구절절한 설명(변명?)을 올리는 수밖에는...

2025년 6월 30일 월요일

2004 I2C LCD에 처음으로 글씨를 표시하다

오늘 한 것이라고는 점퍼선 네 개 연결하고 실습용 코드를 돌린 것이 전부이다.  아두이노 나노에 인쇄된 핀 번호 글씨가 너무 작아서 휴대폰 카메라를 작동시고 화면을 확대해 가면서 점퍼선을 꽂았다.

몇 차례에 걸쳐서 필요한 부품을 알리익스프레스에서 주문하였는데, 또 실수로 로터리 엔코더를 빼먹었다. 본격적으로 MIDI controller의 제작에 착수하게 되면 납땜과 케이스 가공으로 한바탕 생쇼를 치르게 될 것이다. 차라리 브레드보드에 점퍼를 꽂을 때가 편하면 편했지...

LCD의 한 줄을 이용하여 LED 표시를 대신하고자 하였으나, 응답속도가 느려서 보기에 불편하다. 74HC595 시프트 레지스터를 이용해야 될 것이다. 아무리 철저히 계획을 해도 그보다 몇 배는 더 예기치 못한 고생을 하게 될 것이다. 감수하자!