2026년 4월 23일 목요일

우주는 누구의 것인가? 유네스코 보고서가 던진 질문



KISTEP(한국과학기술기획평가원)에서 개최한 2026 기술영향평가 대상기술 추천회의에 작년에 이어 올해에도 참석하였다.  이는 과학기술기본법 제14조에 의한 것으로, 사회구성원이 참여한 기술영향평가(TA, Technology Assessment)를 통해 미래 신기술이 초래할 결과를 예측하여 사전 대응 방안을 마련하고자 함이다.

2003년부터 작년까지 총 26개 기술에 대한 기술영향평가가 진행되었다. 평가 주기가 매년으로 바뀐 것은 2010년이다. KISTEP이 자체 연구를 통해 도출한 평가 대상 기술 중 최종 3개 정도의 후보 기술을 선정하는 것이 이 위원회의 임무이다. 만약 내가 속한 분야의 기술이 후보에 올라가면, 평가회의 이후에도 후속 작업에 참여할 수도 있다고 한다. 최종 후보 기술의 확정은 과기정통부가 담당한다. 하반기에는 이에 대해서 전문가 분석과 시민 포럼, 정책협의체 등을 거쳐 최종 결과를 마련한 뒤 12월에 국가과학기술자문회의에 보고하는 것으로 그 해의 임무가 끝난다.

최초의 '재료'는 50대 국가전략기술이다. 사전 분석 과정에서는 한국언론진흥재단의 빅카인즈(BIGKinds) 뉴스 빅데이터 시스템에서 이에 대한 관련 기사의 전처리된 키워드를 수집하여 활용하였다고 한다. 기술 준비도 추정이나 우려(4개 유형 불확실성, 즉 무지, 모호함(갈등), 불확실성, 위험) 관련 키워드를 수집하여 분석하는 과정은 '아, 그러한 것도 있구나'하고 설명을 듣고 겨우 이해할 정도였다. 전문가적 식견이 필요한 일 같았다.

지난 2년 동안 선정된 대상 기술은 안전·신뢰AI(2024), 그리고 AI 에이전트(2025)였다. 올해는 또 다른 종류의 'AI'가 사람들의 입에 오르내리고 있으며, 당연히 11개 후보 기술 중 이름을 달리하여 몇 가지로 올라와 있었다. 

이런 회의에 참석하여 얻는 유익함이란 바로 과학과 기술, 그리고 인문을 망라하는 다양한 분야의 전문가들과 아무런 사심 없이 이야기를 할 수 있다는 것이다. 

오늘 쓰고자 하는 글은 11개 후보 기술 중 포함되어 있었던 우주와 관련한 것이다. 발사체 기술이 계속 발전하면서 과거에는 상상도 할 수 없는 싼 가격에, 그리고 전 세계에서 수시로 쏘아 올리는 로켓 덕분에 우주(space)로 무엇인가를 내 보낼 수 있게 되자 인간이 하는 모든 활동을 우주에서 해 보려는 시도가 이어지고 있다고 한다. 이는 항공우주연구원 정대원 박사님의 의견이었다.

여기에서 잠깐, 우리가 '우주'라고 하나의 낱말로 사용하는 그 개념을 보다 정확하게 세분해 보자. 최근에 읽었던 책에서도 이러한 개념 쪼개기가 있었다. 다음의 설명은 과기정통부 블로그(링크)에서 가지고 왔다.

  • Space: 지구 대기권 밖의 물리적 빈 공간(탐사 대상)
  • Universe: 별, 은하, 물질을 포함한 과학적 의미의 전체 우주
  • Cosmos: 질서와 조화를 갖춘 철학적·인문학적 우주 

단순한 과학적 탐사를 넘어서 통신, 국방, 지구 관측(감시?) 등 space에서 할 수 있는 활동의 분야는 점점 넓어지고 있다. 아주 최근 사람을 싣고 달 비행을 마치고 지구로 귀환한 아르테미스 2호 역시 장기적으로 달을 탐사 대상이 아니라 잠재적 자원 활용의 대상으로 바라보는 흐름과 무관하지 않아 보인다.

한양대학교 철학과 이상욱 교수님은 유네스코 세계과학기술윤리위원회(COMEST, World Commission on the Ethics of Scientific Knowledge and Technology) 위원으로 활동한 바 있는데, 작년 말에 이 위원회에서 우주 탐사(space exploration)에 대한 윤리적 쟁점에 관한 보고서를 발간하였다고 한다. 

UNESCO라니? 최근 읽은 책《생각의 진화》에서 소개한 줄리언 헉슬리가 바로 UNESCO의 초대 사무총장이었다(독서 기록 링크). 이 책에서는 그가 1946년 유네스코의 초대 사무총장으로 지명된 후, 조직과 비전을 구상하고 실제로 2년에 불과한 임기 동안 무척 많은 고뇌를 겪은 것으로 알려져 있다. 갑작스런 사무총장으로 임명되고 나서 그는 약 2주간 휴가를 내고 틀어박혀서 <유네스코: 그 목적과 철학>을 썼는데, 그 과정이 바로《생각의 진화》에 잘 표현되어 있다. 하지만 이 문서는 결국 공식 문서로는 채택되지 않았다고 한다.

흥미로운 일이다. 나하고는 아무런 인연이 없을 것 같았던 유네스코, 그것도 독서를 통해서 겨우 알게 된 이 국제기구의 설립 스토리에 이제 막 흥미를 갖게 된 시점에 실제 그 위원회서 활동했던  전 보고관(Former Rapporteur)을 바로 곁에서 만나게 되다니.

몹시 궁금하여 원문을 찾아서 이 교수님에게 이 자료가 맞는지 확인받은 뒤, ChatGPT를 이용하여 요약을 해 보았다. 잠깐 조사를 해 보았으나 이 보고서는 국내 언론을 통해 거의 소개되지 않은 것 같았다. 이러한 담론 속에서 '우주 윤리'는 거의 논의되지. 흔히 우주라고 하면 일론 머스크의 다소 기행에 가까운 행보, 그가 주도하는 스페이스X나 스타링크, 그리고 주가에 미치는 기대감 정도가 커뮤니티나 언론을 통해 소비되고 있지 않은가?

우주를 '개발'하는데 윤리라니? 그러나 우주에 대하여 개발이나 활용이라는 낱말을 함부로 쓰는 것은 인간의 기술력을 너무 높게 평가하는 것이다. 아직까지는 보다 겸손하고 조심스럽게 '탐사'라는 말을 쓰는 것이 더 낫다고 생각한다. 유네스코 보고서의 제목에서 드러나듯이.

제목: Report of the World Commission on the Ethics of Scientific Knowledge and Technology (COMEST) on the ethics of space exploration and utilisation (유네스코 세계과학기술윤리위원회의 우주 탐사 및 활용의 윤리에 관한 보고서), 2025년 9월 18일. 원문 링크.

유네스코 산하 세계과학기술윤리위원회(COMEST)가 2025년에 발표한 이 보고서는 우주 탐사와 활용이 본격적인 상업화 및 국제 경쟁 단계로 진입한 상황에서, 이를 둘러싼 윤리적 쟁점을 종합적으로 분석하고 향후 글로벌 거버넌스 방향을 제시하는 데 목적을 둔다.

보고서는 먼저 인류가 오랜 역사 속에서 우주를 관찰하고 이해해 온 문화적·과학적 맥락을 강조한다. 별과 행성에 대한 관측은 단순한 과학적 활동을 넘어 문화와 세계관 형성에 깊이 관여해 왔으며, 현대의 우주 탐사 역시 이러한 인간 경험의 연장선에 있다. 그러나 오늘날 우주는 더 이상 순수한 탐사의 대상이 아니라, 자원 개발, 군사적 활용, 상업적 경쟁이 결합된 복합적 공간으로 변화하고 있다.

특히 보고서는 “트랜스헤미스페릭(transhemispheric)” 관점을 제안한다. 이는 서구 중심의 과학적 시각뿐 아니라 다양한 문화권과 원주민 지식 체계를 포괄하여 우주를 이해해야 한다는 주장이다. 우주를 단순히 ‘정복’의 대상으로 보는 것이 아니라, 공동의 유산으로 인식하고 존중해야 한다는 윤리적 전환이 요구된다는 것이다.

현재 우주 활동은 달, 화성, 소행성, 우주관광 등 다양한 영역으로 확대되고 있다. 달은 자원 활용과 기지 건설의 핵심 거점으로 주목받고 있으며, 화성은 장기적 거주 가능성 연구의 중심이다. 또한 근지구천체(NEO)는 행성 방어와 자원 채굴 측면에서 중요한 대상이며, 민간 기업 중심의 우주 관광 산업도 빠르게 성장하고 있다. 이러한 발전은 기술 혁신과 경제적 기회를 제공하지만, 동시에 환경 파괴, 우주 쓰레기 증가, 생물학적 오염, 군사적 긴장 등 다양한 위험을 동반한다.

윤리적 쟁점은 크게 몇 가지로 정리된다. 첫째, 형평성과 접근성 문제이다. 현재 우주 활동은 일부 국가와 기업에 의해 주도되고 있으며, 개발도상국이나 비우주 국가의 참여 기회는 제한적이다. 둘째, 환경 보호 문제이다. 우주는 더 이상 무한한 공간이 아니며, 인공위성 증가와 우주 쓰레기 문제는 장기적 지속가능성을 위협한다. 셋째, 군사화와 이중용도 기술 문제이다. 우주 기술은 민간과 군사 목적이 혼재되어 있으며, 이는 국제적 긴장을 심화시킬 수 있다. 넷째, 세대 간 책임 문제이다. 현재의 우주 개발이 미래 세대의 권리를 침해하지 않도록 신중한 접근이 필요하다.

보고서는 우주를 “글로벌 커먼즈(global commons)”로 볼 것인지, 아니면 국가 또는 민간의 소유 대상으로 볼 것인지에 대한 논쟁도 다룬다. 일부 국가는 우주 자원의 소유권을 인정하는 법을 제정하고 있으나, 이는 국제 협력과 형평성 측면에서 갈등을 야기할 수 있다. 따라서 공동 관리와 공정한 이익 분배를 위한 국제 규범이 필요하다고 강조한다.

현행 국제법 체계, 특히 1967년 우주조약(Outer Space Treaty)은 기본적인 원칙을 제공하지만, 상업화와 기술 발전 속도를 따라가지 못하는 한계가 있다. 이에 따라 보고서는 보다 포괄적이고 강제력 있는 글로벌 거버넌스 체계 구축을 제안한다. 유엔 및 관련 국제기구의 역할을 강화하고, 다자 협력을 통해 규범을 발전시켜야 한다는 것이다.

또한 보고서는 “우주 윤리 스케일(space ethics scale)”이라는 개념을 제안하여, 다양한 우주 활동의 윤리적 영향과 위험을 평가할 수 있는 기준을 마련하려 한다. 이는 정책 결정자와 과학자, 산업계가 공통의 기준 아래에서 의사결정을 할 수 있도록 돕는 도구로 활용될 수 있다.

최종적으로 보고서는 다음과 같은 방향을 제시한다. 첫째, 국제 협력과 투명성을 강화하여 신뢰를 구축할 것. 둘째, 우주 활동의 환경적·사회적 영향을 체계적으로 평가할 것. 셋째, 공정한 자원 분배와 참여 기회를 보장할 것. 넷째, AI 및 자율 시스템 등 신기술의 윤리적 기준을 마련할 것. 다섯째, 장기적으로 지속가능한 우주 이용을 위한 단계적 로드맵을 수립할 것.

결론적으로 이 보고서는 우주 탐사가 단순한 기술적 도전이 아니라, 인류 전체의 가치와 미래를 좌우하는 윤리적 과제임을 강조한다. 우주를 공동의 유산으로 인식하고 책임 있는 방식으로 활용할 때, 비로소 우주 시대의 발전이 인류 전체의 이익으로 이어질 수 있음을 역설한다.

우주 활동이 정말 가시적인 성과로 나타나는 지금, 올바른 접근에 대한 윤리적 기준 수립과 더불어 인류 공동체의 공정하고 지속 가능한 참여가 지금부터 이루어져야 한다고 본다.

지난주에 읽었던 지웅배 교수의《천문학자의 쓸모없음에 관하여》도 생각이 난다. NASA의 자료에서 '창백한 푸른 점'에 관한 사진과 태양계 가족 사진을 찾아 보자(링크). 이보다 더 비장한 컴퓨터의 셧다운이 또 있었을까. 이렇게 작은 세계에서 우리는 자원과 해협을 둘러싸고, 실익도 명분도 없는 치열한 겨루기를 하고 있으니 말이다. 누가 죽어나가든, 내 주식만 오르면 그만인가.

월 페이지뷰 10만을 넘어서던 날

내 블로그는 팔로워가 몇 명 되지도 않고 열심히 홍보를 하지도 않는다. 당연히 수익 같은 것은 바라지도 않아 애드센스도 연결해 두지 않았다.  잡스럽게 취미 수준에서 하는 일을 기록으로 남기다 보니, 이 구글 블로그 외에도 별도의 위키 사이트를 운영하면서 이를 공식 대문으로 삼고 있다. 유튜브 채널에 새로운 것을 올리면 설명이나 취지를 곁들여서 여기에 소개하기도 한다.

몇 달 전에 구글 서치 콘솔(Google Search Console)에 내 도메인인 GenoGlobe.com을 등록하고 서치엔진 최적화를 위한 몇 가지 작업을 해 두었다. 그 영향 때문인지 페이지뷰 수가 늘기 시작하더니 오늘(4/23) 확인한 결과 드디어 10만회를 넘었다. 작년까지만 해도 월 1만~2만회 수준에서 근근이 버텨왔기 때문에 매우 놀라운 일이 아닐 수 없다.

페이지뷰는 봇이 무차별로 접속하거나 한 사람이 여러 차례 보는 것까지 다 집계하는 것이라서 이것이 많다고 좋은 것은 아니다. 그보다 의미 있는 수치는 방문자 수에 해당한다. 이와 같은 웹 트래픽 지표(web analytics metrics)에는 다음과 같은 것이 있으며, 특히 중요한 것은 분홍색으로 표시하였다.

  • Pageviews (Views): 페이지가 열린 총 횟수 (중복 포함)
  • Users: 방문자 수 (실제 사람 수에 가까움)
  • Sessions: 방문 횟수 (한 사람이 여러 번 방문하면 각각 카운트)
  • Engagement Time: 실제로 머무르며 읽은 시간
  • Engagement Rate: 의미 있는 활동(읽기, 스크롤 등)을 한 방문 비율
  • Returning Users: 재방문한 사용자 수/비율
  • Pages per Session: 한 번 방문에 몇 페이지를 보는지
  • 현 설정으로는 방문자수까지는 알 수가 없어서 구글 애널리틱스에 등록을 마쳤다. 일단 구글 블로그만 측정을 개시하게 만들었다. 

    이 수치의 증감에 일희일비할 필요는 없을 것이다. 그러나 몇 가지 지표를 통해 이 공간이 어떻게 쓰이고 있는지를 조금 더 알아보는 계기가 될 것 같다. 구글 블로그는 성장 중이지만, GitHub의 내 리포지토리는 아직 걸음마 수준이다. 과한 욕심을 내지 않으면서 트래픽 지표를 참조하면서 세상에 선한 영향력을 '보다 효율적으로' 미치는 방법을 고민해 보고 싶다.


    2026년 4월 20일 월요일

    GitHub의 개인 프로젝트 리포지토리가 4개로 늘어나다

    Fluid Ardule의 개발 문서와 코드를 GitHub에 올리기 시작하였다(링크). 최종 목표까지는 아직 갈 길이 멀지만, '전원을 넣고 건반을 연결하면 소리를 낼 수 있다'라는 기본 목표에는 충분히 도달하였기 때문이다. 요즘 며칠 동안은 USB 플래시 드라이브에 담아 둔 MP3와 WMA 파일을 재생하는 기능까지 넣느라 약간 고생을 하였다. 매체를 자동으로 인식하게 만드는 것과 한글 정보가 제대로 표시되지 않는 문제까지 해결해야 했기 때문이다. 오디오 CD를 Windows Media Player에서 리핑해 둔 뒤 리눅스와 윈도우를 오가면서 복사를 했더니 뭔가 좀 이상해진 것 같았다. 2008년 무렵이었나, 멜론에서 구입해 둔 가요 MP3를 다시 듣는 기분이 정말 새롭다.

    4개로 늘어난 GitHub의 프로젝트 리포지토리. 전부 업무와 관계는 없다.

    오디오 파일 재생 기능을 만들어 놓으니 상당히 쓸모가 많다. 인터넷 라디오 재생 기능까지 넣을 궁리를 하고 있다. 나무판 위에 주요 부품을 글루건으로 대충 붙인 모습이 우스꽝스럽지만, 점점 완성도가 높아진다.


    TFT-LCD를 포기하지 않았던 것도 지금 생각하니 활용성을 높이는 탁월한 선택이었던 것 같다. 두 줄, 또는 네 줄짜리 LCD 모듈을 유일한 디스플레이로 사용했더라면 얼마나 답답했을까? 그리고 우연히 아날로그 핀 하나로 5개 버튼의 입력을 감지할 수 있는 키패드를 발견했던 것도 행운이었다. 

    어제까지의 개발 현황을 유튜브 쇼츠 영상으로 담았다. 휴대폰을 한 손으로 들고 다른 손으로 버튼을 누르며 촬영을 했더니 흔들림이 너무 심하다. 오디오 상태도 매우 좋지 못하다.


    취미에 불과한 일에 왜 이렇게 몰두하느냐고 누가 묻는다면? 나도 잘 모르겠다. 솔직히 말하자면 이럴 시간에 논문 한 편을 더 봐야 하는 것이 아닌가 부끄럽게 생각하고 있다. (무식해서) 대화가 안된다는 말까지 듣는 처지에... 물론 나를 특정해서 한 말은 아니었지만.

    일주일에 두어 차례 새까만 밤에 밖에 나가서 달리기를 하듯, 그저 '시름을 잊고 머리를 맑게 하기 위해서'라고 해 두자.

    2026년 4월 16일 목요일

    [Fluid Ardule의 곁가지 프로젝트] MIDI Bridge 또는 MIDI Router

    지난 1월에 만들었던 USB MIDI host to DIN MIDI converter(일명 'UNO-2')의 기능을 확장해 나가기 시작하였다. 화려한(?) 2004 LCD 모듈이 달려 있지만 반응이 즉각적이지 않기 때문이다. 아두이노 우노의 A0 핀에 LED를 달고, 민웰 SMPS(5V 10A급)로부터 5V를 공급받을 수 있는 USB-C 커넥터를 달아 주었다. 처음에는 A3 핀에 LED를 달았으나 무슨 이유인지 HIGH를 출력하지 못하였다. 바로 아래에  스태킹한 USB MIDI host shield에서 이 핀을 사용하는 것도 아닌데 왜 그럴까? 아두이노 우노에서 직접 선을 딴 것이 아니라 stacking pin header를 거치는 바람에 접촉에 문제가 생겼는지도 모른다. 하지만 같은 계층의 보드에서 따낸 A4/A5에 연결된 I2C 2004 LCD 모듈도 정상 작동하고, A0에서도 HIGH 전압이 잘 나오며, 전원 공급도 원활하다. 결국 A3 사용은 포기하고 A0에 LED를 연결하기로 하였다.




    이 장치를 만든 처음의 목적은 USB MIDI keyboard controller의 출력 신호를 DIN MIDI 단자만 있는 구형 사운드 모듈에 전달하기 위함이었다. 이미 기본 기능 펌웨어는 개발을 하였기 때문에 어제의 작업에서는 약간의 납땜을 한 뒤 LED가 MIDI 신호 입력에 따라서 깜빡거리게 만든 것이 전부이다.

    다음으로는 구형 키보드의 DIN MIDI 출력을 받아서 아두이노 우노의 USB-serial interface로 출력하게 만들고자 한다. 사실 케이블 형태의 MIDI USB interface로 충분한 일이지만, 기왕 만든 DIY 기기에 새로운 기능을 부여하고 싶었다. 

    아두이노 우노는 RX(D0)와 TX(D1) 핀을 USB-serial 통신에 사용한다. 그런데 이 두 개의 핀은 MIDI shied에서도 MIDI 신호 입출력에 사용한다. 만약 RX 핀이 MIDI IN에 영구적으로 연결되어 있다면, 펌웨어 업로드를 할 수가 없다. 따라서 MIDI shield에는 이를 끊어주는 슬라이드 스위치가  존재한다. 이를 정확히 알고 사용해야 한다.

    구상하고 있는 Fluid Ardule 곁가지 프로젝트의 모습은 다음과 같다. 이름은 확장된 기능을 포용할 수 있는 새로운 MIDI Bridge 또는 MIDI Router 정도가 될 것이다. 그저 간단하게 UNO-2라고 불러도 좋다.


    DIN MIDI IN으로 들어오는 신호를 처리하는 기능은 아직 구현하기 전이다. TX 핀이 하나 뿐이므로 출력은 항상 MIDI OUT과 USB-serial interface로 동시에 나간다. 굳이 이벤트를 필터링하거 재매핑하는 등 아두이노를 힘들게 할 작업을 덧붙일 생각은 없다.

    그러나 라즈베리파이가 시리얼 스트림 형태로 들어오는 MIDI 데이터를 처리하려면 약간의 추가 작업을 해야 한다. 이는 ALSA 입장에서는 MIDI 장치가 전혀 아니다. 따라서 다음과 같은 방법 중 하나를 택해야 한다.

    1. Python을 이용한 브리지(pyserial로 읽고, mido + python-rtmidi로 ALSA에 전달)
    2. C 기반 브리지(구현 난이도 높음)

    아두이노 우노가 아니라 Leonardo/Micro/Pro Micro, 또는 Teensy를 사용한다면 아두이노 자체가 USB MIDi device가 되므로 이런 일을 할 필요가 없다. 

    USB host shield는 아두이노 우노를 USB device로 만들어 주지는 못한다. 우노는 USB device로 동작할 수는 있지만, 기본적으로는 USB-serial(CDC) 인터페이스만 제공할 뿐 USB MIDI class를 지원하지 않는다.

    전통 기술(MIDI)을 이 시대에도 즐기기 위해 새로운 시도를 아끼지 않고 있다. 이 과정에서 ChatGPT가 정말 크게 기여하고 있음을 오늘도 실감한다.

    2026년 4월 17일 업데이트

    DIN MIDI IN으로 연결한 건반의 연주 신호를 그대로 출력하도록 펌웨어를 수정하였다. 해당 신호는 Arduino UNO의 USB-serial을 통해 라즈베리파이로 전달되며, 이를 ALSA sequencer 기반의 MIDI 스트림으로 변환하여 가상 MIDI 포트로 출력하는 브리지 프로그램을 구현하였다. 이후 aconnect 명령을 통해 FluidSynth와 연결하여 사용할 수 있다. 

    파이썬과 C 두 가지를 만들었는데, C로 짜여진 것이 매우 안정적으로 잘 실행되었다. UNO-2의 리셋이나 케이블 재연결 시에도 연결 상태가 유지됨을 확인하였다. 결과물은 GitHub에 새로운 리포지토리(uno-midi-bridge)로 등록하였다. Fluid Ardule도 아주 간단한 소개의 글과 함께 리포지토리를 새로 만들었다.



    국회 입법 공청회에 진술인으로 출석하다

    '진술'이라는 낱말은 너무나 엄숙하기 때문에 법정에서나 쓰여야 할 말처럼 여겨진다. 국회 과학기술정보방송통신위원회에서 출석해 달라는 전화를 받는 모습을 보고 곁에 있던 동료가 보이스피싱 전화 아니냐고 물었을 정도니 말이다.

    진술(陳述)은 자신의 생각, 사실, 경험 등을 말이나 글로 표현하여 알리는 것을 뜻합니다. 주로 법률적 맥락에서 피의자, 피고인, 증인 등이 사건에 대해 구술 또는 서면으로 설명하는 행위를 지칭합니다. (구글 AI 개요)

    어쨌든 이틀 전인 4월 14일 오후, 제434회 국회(임시회) 과학기술정보방송통신위원회('과방위') 과학기술원자력법안심사소위원회에서 열린 국가연구데이터법 관련 입법 공청회에 의견 진술인으로 출석을 하게 되었다. '혹시 국회방송으로 생중계되는 것 아닌가' 하는 적지 않은 부담감과 함께 국회로 향했다.


    4월 중순임에도 불구하고 한낮의 기온은 27도나 되어 무척 더웠다. 정문으로 들어와서 본관 뒷편의 출입구까지 돌아가는 길이 왜 이렇게 먼 것인지. 이번 법안은 인공지능과 디지털 전환의 확산으로 연구데이터를 국가적 차원에서 체계적으로 관리하기 위한 것으로, 복기왕·박충권·황정아 의원이 각각 별도의 법안으로 대표발의하였다가 (내가 이해한 바가 맞다면) 하나로 합쳐져서 공청회를 거친 후 법안소위와 전체회의까지 통과하였다. 이날의 결과는 소관 상임위 최종 안건으로 의결한 것이다.

    행정부가 제출하는 정부입법은 국회 제출 전의 사전 조율 및 심사 기간이 매우 길다. 반면에 의원입법은 국회의원 10인 이상의 찬성만 있으면 되므로 시급한 현안에 대응하기 쉽다. 그래서 정부부처가 국회의원을 섭외하여 정부가 입법한 법안을 의원 발의 형식으로 제출하는 일이 많다. 이를 청부입법이나 우회입법이라고도 하는데, 상당한 비아냥거림이 느껴지는 낱말 선택이 아닐 수 없다.

    모든 공청회는 공식 기록으로 남겨지지만, 다행스럽게도 전부 국회방송을 통해 나가는 것은 아니었다. 진술인은 각자 순서대로 돌아가면서 7분 정도 발표를 하고, 의원들의 질의응답에 응한 뒤 628호 소회의장을 빠져나왔다. 각 의원들은 저마다의 색채를 가지고 이날 있었던 일을 뉴스화하고 있었다. 기왕이면 같은 지역구(유성구 을)의 현역 의원인 황정아 의원의 발언이 포함된 뉴스를 인용해 보기로 하자.

    황정아 의원 "데이터 등록과 공유에 힘쓴 주체에 대한 보상책 필요"
    nate 뉴스 2026년 4월 15일

    사진 출처: 황정아 의원 페이스북. 왼쪽 줄 어딘가에 내가 앉아 있다.

    각 의원들이 처음으로 법안을 발의한 것이 벌써 2024년의 일이었다. 생각보다 많은 시간이 걸렸다. 작년 3월에 국회에서 열렸던 국가연구데이터 관리·활용 촉진 법제화 추진을 위한 토론회(KISTI 웹사이트 링크)에 패널로 초청되어 참석했던 것이 인연이 되었던 것 같다.

    어차피 공개가 될 것이기 때문에 여기에 나의 진술서 내용을 그대로 올려도 되지만, 약간의 고민이 필요하다. 진술인 모두가 충분한 시간이 주어지지 않은 상태에서 진술서를 작성하였으나 나의 것과 비교하면 분량이나 구성, 포함된 표 등 완성도가 월등히 높아 보이기에 내 것을 공개하기는 좀 부끄럽다는 생각이 들었다. 생각이 바뀌어서 몇 시간 뒤에 위키 페이지에 공개할지도 모른다.

    그리고 또 다른 이유도 있지만, 여기에 쓰고 싶지는 않다. 지금보다는 언젠가 자유로운 날이 올 터이고, 그때가 되면 하고 싶은 말을 속 시원하게 털어놓을 수 있을 것이다.

    기회가 되면 본회의장에서 실제 국회가 열리는 모습을 보게 되었으면 한다. 흥미로운 경험이었다.

    2026년 4월 14일 화요일

    [Fluid Ardule] 이제는 안정화의 길로 접어드는가?

    고질적인 note off 누락 문제, 즉 피아노를 연주하고 있는데 일부 키가 마치 서스테인 페달을 밟기라도 한 듯 음이 끊이지 않고 지속되는 문제는 FluidSynth를 실행할 때 '-m alsa_raw'를 사용함으로써 대폭 줄어들었다. '-m' 또는 '--midi-driver=[lable]'은 oss, alsa, alas_seq 등 MIDI driver를 고르는 옵션이다(모든 옵션 설명 링크). '-m alsa_raw'는 raw MIDI 장치를 직접 열어서 입력을 받음을 의미한다. 기본은 alsa_seq이다.

    이를 통해 안정성을 확보하는 대신 키보드 연결을 해제하였다가 다시 꽂았을 때 자동으로 인식되는 편리함은 포기해야 했다. 그러나 이러한 작은 불편함은 다른 방법을 통해서 해결 가능하다. 키패드의 버튼 하나를 길게 누르면 MIDI panic에 해당한다. 이를 작동시키면 FluidSynth를 다시 띄우면서 결과적으로 복구가 되는 것처럼 보인다.

    구글 AI모드의 'fluidsynth -m alsa_raw 설명'.


    라즈베리파이 3B라는 이전 세대의 SBC(Single Board Computer)에서 안정성과 속도, 이 두 마리의 토끼를 잡는 것이 가능할까? 최소한 4세대 것을 쓰면 나을 것도 같은데, 추가적인 지출이 필요하다. 제한적인 하드웨어를 이용하여 어떻게 해서든 최적의 해법을 찾는 연구는 앞으로도 계속될 것이다. 

    오늘은 주로 파일 재생 기능의 완성도를 높이는데 주안점을 두었다. 예전에 Volumio를 쓰던 시절에 CD를 리핑한 음원 파일(.wma) 담아서 감상용으로 쓰던 USB 드라이브를 여기에 꽂아서 사용하려는 속셈도 갖고 있다.

    TFT-LCD에 보이는 버튼을 누르고 싶지만 아직 터치 기능은 구현하지 않았으며, 급하게 이를 가능하게 만들 생각도 없다. 화면에 보인 버튼 그림은 5버튼 키패드의 기능을 설명하기 위한 것이다.

    TFT-LCD의 표시도 개선해 나가면서 이제는 제법 악기의 면모를 갖추게 되었다. 볼륨 조절은 아두이노 우노의 A0 핀에 연결된 가변저항이 맡는다. 아직 로터리 인코더는 하는 일이 없다. 조만간 사운드폰트 파일에 내장된 프리셋을 바꾸는 기능을 더하게 되면 인코더도 본격적인 업무를 떠안게 될 것이다.

    라즈베리파이에서 돌아가는 파이썬 스크립트는 이제 1700줄에 이를 정도로 규모가 커졌다. 놀라운 바이브 코딩의 힘이여! 

    2026년 4월 13일 월요일

    [Fluid Ardule] MIDI 파일 재생에서는 5개의 버튼으로 "Transport" 기능을 구현하기가 까다롭다

    Audacity나 Tracktion과 같은 DAW(Digital Audio Workstation) 소프트웨어를 열면, 과거의 테이프레코더나 MP3 재생기에서 흔히 보던 버튼 모임이 눈에 띈다. 이것을 transport(또는 transport control)라고 부른다.

    요즘처럼 디지털 매체의 재생이 일상이 된 시대에는 무엇을 전송(transport)한다는 것인지 다소 낯설게 느껴질 수도 있다. 그러나 과거에 널리 쓰이던 테이프 매체를 떠올리면 이런 용어가 남아 있는 이유를 쉽게 이해할 수 있다. 파워포인트에서 여전히 ‘슬라이드’라는 표현을 쓰는 것과 비슷한 일이다.

    글루건은 DIY에서 정말 좋은 도구이다. 라즈베리파이와 키패드를 제외한 모든 부품의 배치가 다 바뀌었다.

    Fluid Ardule의 다섯 개 버튼 키패드.

    요즘 개인 차원에서 개발을 이어가고 있는 라즈베리파이 + 아두이노 우노 기반의 SoundFont synthesizer인 Fluid Ardule에는 총 다섯 개의 버튼이 있다. 네 방향의 화살표와 맨 오른쪽의 선택(Select) 키이다. 키를 누르는 신호는 아두이노 우노의 A0 아날로그 핀으로 입력되어 라즈베리파이로 전달된다. TFT-LCD 화면에 펼쳐진 여러 항목을 이동한 뒤 원하는 곳으로 진입하는 데에는 이러한 키패드가 매우 적합하다. 그러나 재생을 조절하는 이른바 transport 기능에는 이를 어떻게 대응시켜야 할까? 사실 사족일지도 모르겠으나, 나는 Fluid Ardule에 MIDI 및 오디오 파일(ogg, wav, mp3 등)의 재생 기능을 넣어 놓았기 때문이다.

    그렇다면 iPod의 버튼 배치와 기능을 흉내내어 볼 수 있지 않을까?

    애플 iPod 셔플 4세대(그림 출처: 애플).


    화살표 키는 원 둘레의 네 개 버튼에 그대로 대응시키고, 선택 키는 가운데의 재생/일시정지 버튼에 대응하도록 만들면 된다. 그러나 MIDI 파일 재생에서는 몇 가지 주의할 점이 있다.

    MIDI 재생은 오디오 파형 재생이 아니라 이벤트 스트림 처리에 가깝기 때문에, 일시정지를 완전하게 구현하기가 쉽지 않다. 전혀 불가능한 것은 아니지만, 이를 제대로 처리하려 들면 사실상 MIDI 파서를 직접 구현하는 수준으로 일이 커질 수 있다. 따라서 MIDI 파일에 대해서는 재생/일시정지보다는 Stop(+Panic) 중심으로 단순화하는 것이 현실적이다.

    같은 이유로 빨리 보내기나 되감기도 어렵다. 일반 오디오 파일처럼 임의의 위치로 자연스럽게 이동시키기보다는, 다른 곡으로 넘기거나 현재 곡의 처음으로 돌아가 다시 시작하는 정도로 제한하는 편이 적절하다. 진행 상태를 초 단위로 화면에 표시하는 일도 일반 오디오에 비해 훨씬 까다롭다.

    결국 버튼의 의미는 MIDI 파일과 일반 오디오 파일에 대해 동일하게 둘 수 없다. 오디오 파일에서는 재생/일시정지, 빨리 보내기, 되감기, 시간 표시 같은 일반적인 트랜스포트 기능을 비교적 자연스럽게 제공할 수 있지만, MIDI 파일에서는 Stop(+Panic), 이전/다음 곡, 처음부터 다시 시작하기처럼 더 단순하고 안정적인 동작 위주로 설계하는 것이 바람직하다.

    생각보다 까다롭다!

    곡 목록으로 되돌아가는 기능은 특정 키를 길게 누르는 방식으로 구현하면 될 것이다.

    민웰(Mean Well) 5V 10A SMPS는 저전압 문제를 완전히 해결하지 못하였다

    SMPS의 출력 터미널, 내가 만들어 넣은 중간 단계의 스크류 터미널, 그리고 I2S DAC 핀 헤더(즉 GPIO를 통해 흘러 나오는 전원 전압)에서 측정한 전압이 생각보다 큰 차이를 보였다. 전원 케이블과 커넥터를 거치면서 이렇게 많은 전압 강하가 일어날 줄은 미처 예상하지 못했다. 

    유전원 USB 허브를 사용했음에더 불구하고 Mackie Onyx 2-2 Producer 오디오 인터페이스를 연결하는 순간 라즈베리파이는 저전압 경고를 내다가 정상 상태가 된다. 그냥 라즈베리파이 전용 3.5A 전원 어댑터를 쓰고 구태여 고용량의 SMPS를 구입할 필요가 없었던 것은 아닐까? 무엇 하나 생각하는대도 되는 것이 없다.

    아직 불완전한 트랜스포트 기능을 완결한 뒤에는 아두이노 우노에서 불필요한 기능을 걷어낼 계획이다. 라즈베리파이의 TFT-LCD가 주 디스플레이 기능을 충실히 수행하고 있기 때문에 아두이노 우노의 1602 LCD는 사실상 필요하지 않다. 당초 계획에서는 시리얼 통신을 통해 두 기기 사이에서 강한 handshaking을 하고 라즈베리파이 -> 아두이노 우노 방향의 신호 전송이 필요했었다. 그러나 이제는 반대 방향으로 버튼/인코더/pot 신호를 일방향 전송만 하면 되므로 펌웨어 개발에 대한 부담이 훨씬 줄어들었다. MIDI activity를 LED로 표시하는 문제는 아직 고민 중이다. 이는 아두이노 우노가 라즈베리파이의 신호를 받아야 할 이유를 남겨놓기 때문이다.

    '전원을 켜고 키보드를 연결하면 피아노 소리가 난다'라는 기본 목표는 이미 충분히 달성하였다. 버튼을 조작하여 사운드폰트를 바꾸면 키보드 컨트롤러의 패드를 터치하여 드럼 소리도 낼 수 있다. 프로그램 변경, CC 조절 등 추가적인 기능을 담아 가는 것이 앞으로의 숙제이다.