2025년 5월 3일 토요일

2025 전주국제영화제의 개막작 『콘티넨탈 '25 』를 관람하다

제26회 전주국제영화제(JIFF)가 4월 30일부터 5월 9일까지 열리고 있다. 대전에서 가까운 곳이라서 수도권 파견 근무를 하던 약 3년 반 동안의 기간을 제외하면 거의 매년 이 영화제를 찾고는 하였다. 영화제가 아니더라도 주말에 특별한 계획이 없으면 국밥을 먹으러 '힁허케' 다녀오기도 하니까 말이다. '힁허케'는 매우 낯선 낱말처럼 보이지만, 지체하지 않고 빠르게 가는 모양을 나타내는 표준어로서 사전에 등재되어 있다고 한다(관련 글 - ‘휑하니’ 갔다 오지 말고, ‘힁허케’ 갔다 오세요). 

전주국제영화제의 모토는 동시대 영화 예술의 대안적 흐름과 독립·실험영화의 최전선에 놓인 작품들을 소개하는 것이다. 출처: 위키백과

 

공식 '포스터'는 극장에서 영상으로 보아야 한다. 촤르르... 영사기 돌아가는 소리와 함께 왼쪽의 꽃무늬는 J자처럼 펼쳐진다. 이미지 원본은 공식 웹사이트에서 가져왔다.


전북대학교에서.

꼼꼼하게 사전에 작품을 고르는 성격은 아니라서 아무런 준비 없이 전주에 갔다가 표가 남아 있는 것을 겨우 골라서 관람하는 일도 종종 있었다. 심지어 방문한 날에 구입할 수 있는 표가 거의 남아있지 않아서 영화제 상영관이 아닌 <조이앤시네마>에서 일반 영화를 본 일도 있었다.

기왕이면 전주 영화의거리에서 상영하는 영화를 관람하는 것이 좋다. 거리를 가득 채운 포스터와 젊은이들 사이에서 영화제의 분위기를 한껏 즐기다 보면 나도 덩달아 젊어지는 것 같다. 그러나 영화의거리 이외의 장소에서도 상영이 이루어진다. 작년에도 잔여석이 남은 상영관을 찾다가 전북대학교 삼성문화회관까지 가서 미셀 고메즈 감독의 2022년작 <콘도르 작전>을 보았었다(관련 글 링크). 올해에는 5월 1일 휴무일을 이용하여 개막작인 라두 주데 감독의 <콘티넨탈 '25>를 보기로 하였다. 상영관은 이번에도 전북대학교.




라두 주데 감독은 이 영화를 전부 아이폰으로 찍었다고 한다. 배경은 루마니아 트란실바니아 지방의 도시. 헝가리 출신의 법정 집행관인 오르솔랴는 건물 지하 보일러실에서 사는 노숙자를 강제로 퇴거시키고자 헌병과 같이 현장을 찾는다. 이 건물은 곧 헐려서 고급 호텔이 세워질 예정이다. 오르솔랴는 이 노숙인이 겨울에 쫓겨나지 않도록 집행을 최대한 미루었던 것이다. 노숙자는 짐을 정리할 테니 잠시만 기다려 달라고 하였다. 바깥에서 커피를 마시고 20분 뒤에 보일러실을 찾았던 헌병과 오르솔랴는 충격적인 모습을 접한다...

더 이상 상세한 이야기를 쓰면 이른바 스포일러가 될 수 있으니 여기까지만 하겠다. 영화의 배경은 현대이지만, 트란실바니아를 둘러싼 두 나라의 갈등을 미리 이해하고 있으면 도움이 될 것이다. 영화를 보았던 이틀 전까지 나는 루마니아라는 나라 이름은 '로마인의 후예가 사는 땅'을 의미한다는 것을 전혀 몰랐다. 세계사와 지리학에 문외한인 나는 '로마인'이라고 하면 고대 로마제국에 살았던 사람의 후예, 즉 현재의 이탈리아에 사는 사람을 뜻한다고만 생각했었다. 영화를 보면서 한글 자막에서도 '로마인'이라는 표현이 자주 나와서 당시에는 이를 잘 이해하지 못했는데, 실은 '루마니아 국적을 가진 사람'을 뜻하는 것었다.

ChatGPT에게 물어보니 영어권에서 Romanian이라고 말하면 현재 존재하는 나라인 루마니아 사람이라는 의미가 잘 전달된다고 한다. 고대 로마 제국의 사람은 Roman이라고 부른다. 즉, 아마도 영어로 제공된 대본에서는 분명히 Romanian이라고 되어 있었을 것이다. 이는 현대 루마니아 공화국의 국민 또는 출신자를 의미한다. '로마인'이라고 번역을 해 놓으면 나처럼 혼동을 하게 될 것이다.

오르솔랴가 충격을 벗어나는 과정이 영화의 중반부터 끝까지 이어진다. 친구와 만나 쉴 새 없이 이야기하고, 모친과 만나서 다투기도 하고, 음주 및 뒤이은 약간의 일탈... 다행스럽게도 영화는 아주 심각하게 끝나지는 않고 차츰 일상을 되찾는 모습을 기대하게 만든다. 민족간 갈등을 해결한다거나, 국가 권력 또는 자본에 맞서서 소외된 자의 권리를 위해 싸우게 된다거나 하는 끄런 뻔한 결말로 이어지지는 않는다. 그래서 코메디 영화로 분류되었는지도 모른다. 영화 장르에서 삶이 지속되는 이야기는 모두 코메디로 분류되는 관습이 있다고 하니 말이다.

다음 주에는 출장을 위해 전주를 또 방문해야 된다. 그러면 올해 네번째 방문이 된다.


2025년 4월 30일 수요일

한국에서 인체유래물은행을 통해서만 유전체 데이터를 분양해야 한다는 주장은 부분적으로만 사실이다

챗GPT 4o에게 질문하였다.  

한국은 인체유래물은행을 통해서만 유전체 데이터를 분양할 수 있는 것으로 알려져 있습니다. 혹시 관련 법령을 잘못 해석한 것은 아닌가요?

다음은 답변 그대로를 가져다가 붙여넣은 것이다. 와, 이렇게 내용을 쉽게 작성할 수 있다니... 이런 방식이라면 하루에 수천 포스팅도 가능하겠다.

여기부터 =================================================

✅ 관련 법령 및 근거 체계

1. 🔹 「생명윤리 및 안전에 관한 법률」 (생명윤리법)

  • 제2조 제13호: "인체유래물은행"이란 연구를 위하여 인체유래물을 수집·보관·관리·제공하는 기관

  • 제42조 및 제43조: 인체유래물은행은 인체유래물을 보관하고 다른 연구자에게 제공할 수 있음

  • 제48조: 인체유래물 연구는 반드시 IRB 승인을 받아야 함

👉 **즉, 인체유래물(예: 혈액, 조직 등)**의 제공은 인체유래물은행을 통해 이루어져야 한다고 명시되어 있습니다.


2. 🔹 유전체 데이터에 관한 직접적인 명문 규정은 없음

  • “유전체 데이터(염기서열 정보)”는 인체유래물 자체가 아니며, 그로부터 도출된 이차적 정보

  • 생명윤리법은 유전체 정보 자체의 공유를 반드시 인체유래물은행을 통해서만 하라고 규정하고 있지 않음

  • 그러나 유전체 데이터가 민감정보이고, 해당 정보를 공유하려면 당초 동의 내용 및 보안조치가 중요함


⚠️ 오해의 원인: 행정 지침이나 해석의 엄격 적용

  • 실제 기관(특히 국가연구기관, 대학병원)은 보수적으로 해석하여,
    ▶ 유전체 데이터도 인체유래물과 동일하게 보고
    “인체유래물은행을 통해서만 제공해야 한다”고 내부 기준화한 경우가 많습니다.

  • 예: 일부 기관은 KBN(Korea Biobank Network)을 통해서만 유전체 데이터 분양 가능하다고 내부 지침화


📌 핵심 정리

구분내용
법령상의 의무인체유래물(생체샘플)은 인체유래물은행을 통해 분양해야 함
유전체 데이터이차 정보로서 별도 관리 대상이며, 법적으로 인체유래물은행을 통한 분양 "의무"는 없음
그러나유전체 데이터가 민감정보이므로, IRB 승인, 동의서 범위, 개인정보 보호조치가 필수
기관 내부 규정일부는 보수적으로 유전체 정보도 은행 통해서만 가능하다고 내부 지침화함

✏️ 결론

"유전체 데이터는 반드시 인체유래물은행을 통해서만 분양해야 한다"는 해석은 생명윤리법상 명문 규정은 아니며, 행정적·기관 내부 기준에 기반한 해석입니다.
법적으로는 데이터의 민감성에 따라 별도의 IRB 승인과 보호조치를 거쳐 직접 분양도 가능합니다.

여기까지 =================================================

우리나라에서 인체유래물 연구(유전체 정보 생산 연구도 여기에 포함된다)를 하려면 (1)인체 유래물 연구 동의서를 받아야 한다. 그리고 그 결과물(유전체 정보 등)을 제3자에게 제공하려면 별도의 (2)인체 유래물등 기증 동의서를 받아서 인체유래물은행에 기증해야 한다. 사실 (1)의 양식-생명윤리 및 안전에 관한 법률 시행규칙 별지 제34호 서식-을 잘 살펴보면, 이 동의서를 적극적으로 잘 해석하거나 체크 표시를 주의 깊게 하는 것만으로도 유전체 정보 등을 제3자에게 확정되지 않은 목적으로 제공할 수 있을 것 같다. 인체유래물은행에 기증하지 않고서도 말이다. 이러한 문제는 이미 몇 년 전에 내 블로그를 통해 몇 번이고 말했었다. 물론 개인 연구자가 이렇게 수집한 정보를 검색 및 활용이 쉽게 잘 정리하여 제공할 능력을 갖기란 쉬운 노릇이 아니다.


사실 이 동의서(1번)는 실물 자원에 적용하기 알맞다는 지적은 나만 하는 것이 아닐 것이다. 보존기간을 '영구'로 하고(실물 샘플이 아니니 하드디스크만 있으면 된다), 보존 기간 내 2차적 사용을 위한 제공 여부에서 '2. 포괄적 연구 목적으로 제공하는 것에 동의합니다'에 체크한다면, 연구 종료 후 언제든지 결과물을 안전한 접근이 이루어질 수 있는 장소에 기탁하여 제3자에게 제공할 수 있어야 한다고 본다. 반드시 인체유래물은행일 필요가 없다는 것이 오늘 챗GPT와 대화에서 내린 결론이다.

유럽의 EGA(European Genome-Phenome Archive)나 미국의 dbGap(Database of Genotypes and Phenotypes)는 인간 유래 유전체와 표현형 데이터를 보관하고 공유하는 국제적인 리포지토리이다. 미국의 유전체 데이터의 경우 SRA(Sequence Read Archive) 자체로는 통제 접근이 없지만 dbGap을 통해 제어된다.

일단 유의해 볼 것은, 국가마다 단일한 리포지토리를 요구하지는 않는다. 그러나 인체로부터 유래한 민감한 데이터는 통제된 접근이 필요하며, 그것이 반드시 물리적인 폐쇄망을 의미하지도 않는다. 그러나 데이터 제공자, 즉 연구 참여자의 명시적 동의가 필요하다.

자, 그러면 산업계의 희망을 안고 2020년 9월 처음 태어난 보건의료데이터 활용 가이드라인은 우리에게 어떤 자유를 주는가? 이 가이드라인은 생명윤리법의 영향을 받고는 있지만, 근본적인 제정 목적은 보건의료데이터의 안전한 가명정보 처리·활용·결합 방안을 제시하여 보건의료분야에서 가명정보 활용의 활성화를 촉진하기 위함이었다. 다시 말하자면 데이터 활용의 핵심인 가명정보 활용에 대한 법적근거가 개인정보보호법에 제3조 특례조항으로 신설됨으로써 보건의료 분야에서 그 이행을 위해 제정된 것이다.

따라서 이 가이드라인은 인체유래데이터 정보를 보유하고 있는 리포지토리(KOBIC과 같이 의료기관이 아닌 경우)의 활용 활성화에는 별로 도움이 되지 않는다. '가이드라인'은 의료기관이 보유한 민감한 정보 또는 개인생성건강데이터(Personal Generated Health Data, PGHD)에만 한정되어 적용된다고 밝히고 있기 때문이다. 따라서 제3자에게 포괄적인 용도로 사용할 수 있게 동의서에 표시하지 않고 리포지토리에 기탁한 정보는 가명처리 후 제공하는 것이 곤란하다.

데이터 리포지토리 또는 인체유래물은행이 이 가이드라인에 따라서 데이터를 가명처리하여 제공할 수 있을까? 동의서가 없는 상황에서? 그 데이터가 병원 데이터라면 가이드라인을 적용하여 그렇게 하면 된다. 그러나 가이드라인은 연구 목적으로 수집한 이런 데이터에 대해서는 적용하지 않는다고 밝히고 있다. 왜 그럴까? 가이드라인은 개인정보보호법의 특례 조항을 보건의료데이터에 적용하기 위해 만든 것이다. 연구 목적으로 수집한 인체유래물에 관해서는 생명윤리법 소관이기 때문에 이를 직접적으로 건드리지 않으려는 것으로 해석할 수 있다.

※ 본 가이드라인에서 안내하고 있는 방법은 인체유래물 연구 동의 또는 기증 동의를 받아 수집, 처리하고 있는 ‘인체유래물 등’은 해당하지 않음(26쪽, 2024년 12월 개정판)

결국 같은 종류의 데이터라 하더라도 병원에서 진단 및 치료 목적으로 만든 것이냐, 또는 '연구'를 위해 생명윤리법을 준수하여 동의와 IRB 심의를 거쳐 만든 것이냐에 따라 이 가이드라인의 적용이 되기도 하고 안 되기도 하는 것이다. 최소한 나의 상식으로는 그렇다. 

예를 들어 어느 병원에 희귀질환 클리닉이 있다고 하자. 만약 환자가 비급여로 모든 비용을 지불하고 유전자 검사를 받았다고 가정하자. 이 결과물은 보건의료데이터 활용 가이드라인의 적용 대상이 될 것이다. 따라서 외부에서 신약 개발 또는 연구를 위해 이 데이터를 쓰겠다고 요청하면, 가명처리를 하여 제공하면 된다. 그러나 환자를 조금이라도 경제적으로 도와주기 위해서 담당 의사가 정부 연구비를 신청하여 받은 뒤 이를 이용하여 데이터를 생산했다고 가정하자. 그러면 똑같은 유전체 해독 데이터임에도 불구하고 보건의료데이터 활용 가이드라인의 적용 범위가 아니다. 따라서 외부에서 연구 목적으로 이를 가명처리하여 분양해달라고 할 수 없다. 이러한 결과물은 인체유래물은행에 기증부터 한 뒤에 비로소 분양이 가능하다.

물론 이는 나의 상상 속 시나리오이므로 한국 현실은 이보다 더 유연할 수도 있고, 혹은 더 엄격할 수도 있다. 과거보다는 점점 나아지고 있다고 믿고 싶다.

2025년 4월 28일 월요일

RECOMB 2025가 남긴 것

숙소에서 일회용 면도기의 보호용 캡을 열다가 손가락을 꽤 심하게 베었다. 한참을 압박해도 지혈이 잘 되지 않았다. 손가락을 심장보다 높게 들어 올리고 헤어 드라이어로 뜨거운 바람을 불어서 억지로 딱지를 만들듯이 하여 가까스로 피가 멎게 한 뒤 일회용 반창고를 붙였다. 이대로 두기는 곤란하여 숙소 근처에서 아침 9시에 여는 외과를 찾아가서 처치를 하였다. 살점이 깊지 않게 패이듯 떨어져 나간 정도의 상처라서 봉합이 필요한 상태는 아니다. 



예전에도 비슷한 경험을 한 두 차례 했던 것 같다. 왜 이렇게 커버를 분리하게 어렵게 만든 것인지... 스승의날을 맞아서 작은 공연을 부탁받았는데 아무래도 참여가 어려울 것 같다. 왼손 엄지손가락 끝이라서 베이스 운지가 아주 불가능한 정도는 아니지만, 연주를 하다 보면 앞으로 일주일 정도는 피가 줄줄 날 것이기 때문에... 2023년 연말에는 공연을 앞두고 위팔뼈가 부러지질 않나... 

학회 참가자를 위한 앱 Whova는 거의 스팸 메일 수준의 메시지를 쏟아낸다. 앱 내에서만 메시지를 보내면 좋겠지만, 참가자의 메일함에도 수북한 안내 메일이 쌓였다. 내일 모든 이벤트가 다 끝나면 정리될 것이다. 덩달아 LinkedIn의 내 프로필(링크)을 최소한으로 업데이트하고 휴대폰에도 앱을 깔았는데, 이것 역시 너무나 수다스러운 앱이다. 프로필을 더 돋보이게 하려면 유료 서비스로 전환하라는 뜻이렸다.

AI로 합성한 내 목소리를 이용하여 발표 비디오도 미리 만들어 유튜브에 올려 보고... 간혹 기사가 나간 뒤 부처나 공동연구기관의 확인을 받지 않았다는 이유로 문제가 생기고는 한다. 내가 지금 올린 자료는 아무리 검토해 봐도 그런 문제가 생길 것 같지는 않다. 아! 슬라이드를 만들어 준 내부 직원들에게 감사의 뜻을 전한다.



세상은 수다스럽고 야망을 가진 사람들이 이끌고 가는 것 같다. 나는 별로 그런 부류에 속하지 않는 사람인데, 나의 직무에 맡겨진 사회적 성격과 나의 성향이 일치하지 않으니 늘 갈등에 휩싸인다. 특히 낯선 이들의 모임 + 영어 소통 + 자신 또는 소속 기관을 알려야 하는 의무 등과 관련한 일은 더욱 쉽지 않다. 직무 때문에 씌워진 페르소나가 나와 잘 맞지 않는다고 느낄 때, 마음이 참 불편하다. 소극적으로 대처하자면 시간이 빨리 지나가가를 바라면 되는 일이다. 혹은 다른 선택할 것이 없다고 빨리 포기를 하고 나 자신을 바꾸어 나갈 수도 있다. 후자의 경우는 결과가 잘 나온다는 가정 하에 매우 긍정적인 돌파 방법이지만, 늘 남이 세팅해 놓은 환경에서 나를 맞추어 나가는 것 같아 이것 역시 불편하다. 다음은 이 한 단락의 글을 영문으로 옮긴 것. 당연히 챗GPT 활용!

It often feels like the world is led by outspoken and ambitious people. I don’t really see myself as part of that group. There’s a constant inner conflict because the social expectations attached to my role don’t align with my natural disposition. It becomes especially difficult when I have to attend unfamiliar gatherings, communicate in English, and promote myself or the organization I represent.

I feel uncomfortable when the persona required by my position doesn’t fit who I truly am. One passive way to cope is to simply hope that time passes quickly. Another option is to stop resisting and try to change myself to adapt — a more active approach that can lead to positive outcomes, assuming it works. But even then, it often feels like I’m constantly reshaping myself to fit into environments set by others, and that too is unsettling.

예전에 잠깐 들었던 English as a second language podcast는 현재 유료로 전환되었는데, 여기에서 공개한 무료 샘플인 Episode 998 - Meeting a new neighbor에서 등장하는 새 이웃이 마치 나를 보는 것 같다.

요즘은 열 댓명 정도만 모이면 그 안에 마라톤 풀코스를 소화하는 사람이 반드시 한 명은 있다. 이틀에 한 번, 6km를 6분대 페이스로 뛰는 나 같은 사람은 명함도 못 내밀겠다.


2025년 4월 30일 업데이트

챗GPT에게 몇 가지 핵심 문장을 제시하고 글짓기를 시켜 보았다. 그럴싸한데? 책 한 권 내는 것은 더 이상 일도 아니겠다.

Leaders Are Made, Not Born

A person doesn't become a leader because they are fully prepared. One becomes a true leader through trial and error after stepping into the role. But that trial and error can come at a cost to the organization. Mistakes made during a leader’s growth can have real consequences—missed opportunities, reduced morale, or strategic missteps. Still, the path to effective leadership almost always involves learning by doing. The key is to create an environment where emerging leaders are supported, not punished, for imperfection. Leadership is not about being flawless; it’s about being willing to grow.

'전략적 솔직함'은 영어로 strategic honesty, tactical candor, measured transparency, selective openness 등으로 표현할 수 있다. 리더에게 필요한 솔직함은 '적절함'의 수준을 벗어나지 말아야 한다.

2025년 4월 25일 금요일

드디어 5km를 29분 29초에 달렸다

달리기 입문 9개월, 드디어 5분대의 평균 페이스로 진입하였다. 6.04km를 달리는 동안 달성한 평균 페이스는 5분 56초였다. 평균 케이던스는 185. 초보 러너에게 5km/30분의 기록은 매우 중요한 의미를 갖는다. 실은 6km 목표를 지나면서 평균 페이스 5분 53초를 달성했다는 런데이 멘트를 들은 뒤 달리기를 멈추고 슬슬 걷기 시작하였는데, 기록 측정은 계속 진행되고 있었다. 그래서 최종 평균 페이스가 5분 56초로 늘어난 것이다. 자유 달리기 모드에서 '거리 기준 달리기'를 선택했어야 하는데, 아마 실수로 '자율 달리기'를 터치했던 것 같다. '거리 기준 달리기'를 선택하면 설정한 목표에 도달한 뒤 자동으로 측정이 멈춘다. 

29:29라... 재미있는 숫자다.


케이던스를 조금 높게 유지하고, 약간 힘이 들어도 빨리 뛰어 보자는 생각으로 달린 것이 기록 단축의 주요 요인이었다고 생각한다. 사실 오늘은 서울 출장을 다녀온데다가 스트레스 상황도 많았다. 짜증을 풀기 위해 무념무상으로 달리는 날, 기대하지 않게 기록이 좋게 나온다.

페이스 또한 매우 고르게 유지하였다.

이틀 뒤 다시 뛰었을 때 오늘 수준의 기록이 나오리라는 보장은 없다. 그러나 한 달에 약 13~15회를 달리면서 5분대 페이스를 달성하는 날이 앞으로 점점 더 많아질 것이라고 확신할 수 있다. 4월이 끝나기 전에 전부 합해서 두 번은 이러한 기록을 달성할 것 같고(오늘은 25일), 5월에는 최소 5~6회는 되지 않겠는가? 

스트레스가 적은 평범한 삶을 살고 있었다면 아마 달리기를 시작할 생각을 하지 않았을 것이다. 음악과 같은 취미에 더 몰두하지도 않았을 것 같다. 그렇다면 나에게 주어진 시련을 감사히 여겨야 하는 것일까? 그건 아닐 것이다. 시련을 극복하기 위한 나의 선택이 현명하였다고, 애써 긍정적인 평가를 내려 두는 정도로 오늘은 만족하고 싶다. 생산적이거나 건전하지 못한 방법으로 스트레스를 푸는 사람도 얼마든지 있을 것이기 때문이다. 

 

2025년 4월 24일 목요일

2025년 들어 처음으로 반바지를 입고 뛰다 - 달리기, 인공지능, 그리고 아두이노

달리기

밤 10시, 달리기를 마치고 나서 휴대폰으로 확인한 기온은 18도였다. 반바지를 입으니 무릎이 자유로워서 좋다. 그렇다고 해서 기록이 나아진 것은 아니지만. 오늘의 페이스는 6분 19초로서 별로 좋지는 않다. 5.5km를 6분 2초 페이스로 달린 날도 있었는데(4월 15일)!


거리를 5.5km에서 6km로 슬쩍 늘렸다. 런데이 앱에서는 1시간에 10km를 달리는 오구오구(59:59) 운동 플랜이 나를 유혹하지만, 이를 달성하려면 6분 페이스를 1시간 내내 유지해야 한다. 아직 이런 목표를 논할 수준이 아니다.


인공지능을 이용한 음성 합성

다음 주에 있을 국제학회(실은 서울에서 열림)에서 영어로 발표를 할 일이 있어서 스크립트를 써서 연습을 하다가 AI를 이용한 text-to-speech 서비스를 써 보았다. 내가 사용한 유료 서비스는 Text To Speech OpenAI이다. 다른 TTS에 비해서 저렴하고, 상업적으로 이용해도 제한이 없다는 점이 유리하다. 매달 정기결제를 하지 않고 필요할 때마다 크레딧($8 = 20만 크레딧)을 구매하면 된다. 실제 활용해 보니 정말 외국인 성우가 읽는 것처럼 매우 자연스러운 결과를 얻었다.

My Voices라는 메뉴에서는 내 목소리를 녹음한 오디오 파일을 업로드하여 음성 학습에 쓸 수 있다. 5천 크레딧을 써서 5분 이상의 녹음 파일을 넣은 뒤 영문을 읽게 하였다. 적용한 액센트는 'Korean (Seoul)'이었다. 



아두이노 나노

MIDI controller를 만들기 위한 단계별 작업을 진행하고 있다. 이것 역시 AI, 즉 ChatGTP와 상의해 가면서 기초부터 최종 목표까지를 차근차근 익혀 나가는 중이다. 아직 필요한 부품을 다 갖추어 놓지는 않았기 때문에 갖고 있는 부품 위주로 기본 기능부터 단계적으로 만들어 나가는 방식으로 진행한다. 예를 들어 시리얼 1602 LCD에 메시지 표시하기를 시작으로 가변저항을 이용한 프로그램 변경값(0~127) 설정, 버튼을 이용한 채널 복제 등의 순서를 따른다.

가변저항의 wiper로부터 읽은 값, 즉 analogRead() 함수값을 0~127로 전환하는 일은 이론적으로는 단순하다. 그러나 최소 또는 최대값에서 정확한 0과 127이 나오지 않는다. 따라서 실제 얼마가 나오는지 LCD에 나타나게 한 뒤 이를 참조하여 프로그램 번호로 전환하는 아이디어를 내고, 이를 ChatGPT에게 물어서 코드와 배선 방법을 알아낸 뒤 실제 실험을 통해 확인하는 방법을 거치고 있다.

가변저항의 1회전으로 0~127의 값을 안정적으로 설정하기는 쉽지 않다. 1 단위로 미세하게 바꾸려면 아주 조심스럽게 노브를 돌려야 하기 때문이다. 그래서 최종적으로 택한 방법은 가변저항과 누름버튼 스위치를 같이 쓰는 것. 가변저항은 10 단위의 값을, 스위치는 1단위의 값을 바꾼다. 단, 사용하는 버튼의 수를 줄이기 위해 한 번 누르면 +1, 연속해서 두 번 누르면 -1씩 변하게 하였다. 이런 방법은 아마 다른 여러 기기에서 쓰고 있을 것이다. 

ChatGPT가 처음부터 이런 솔루션을 제시한 것은 아니었다. 일단 제시한 방법으로 실험을 한 뒤 부족한 부분을 찾아내고, 나름대로 아이디어를 내서 ChatGPT에게 타당성을 물어본 뒤(대개 좋은 아이디어이고 이미 많이 쓰이는 방법이라면서 칭찬을 함) 코드와 배선 방법을 제시해 달라고 해서 그대로 실험을 진행한다.

손으로 직접 코드를 하나씩 타이핑하는 것이 교육 목적으로는 좋을 것이다. 하지만 ChatGPT 창으로부터 마우스로 긁어서 Arduino IDE에 붙여넣는 꼴이라니...  효율만 생각한다면 이런 '개발' 방법도 나쁘지는 않다.



브레드보드에 점퍼선을 꽂아서 프로토타입까지 만드는 것은 어떻게든 될 것이지만, 실사용을 위해서는 만능기판에 납땜을 해야 된다. 납땜을 위한 부품 배치와 배선을 하려면 프로토타이핑과는 또 다른 차원의 설계가 필요하다. 케이스 가공은? 어휴...

2025년 4월 22일 화요일

AI 에이전트에게 어디까지 허용할 것인가

아두이노를 활용한 DIY MIDI controller 설계와 영문 발표자료 작성에 챗GPT를 아주 편리하게 활용하면서 과연 내가 어디까지를 AI게 맡길 것인지를 고민하기 시작하였다. 내가 던진 질문에 대한 답을 제시하기 위해 AI가 인터넷에 접속하여 정보를 캐는 것은 별다른 문제가 없다. 그런데 바로 어제, 업로드한 파일을 다시 외부로 보내어 추가적인 일을 시키려 하니 '인터넷 접속이 차단되어 있어서 하지 못한다'는 엉뚱한 변명을 하였다. 내가 시키려는 일은 영문 텍스트 파일을 음성으로 전환하는 것이었다.

어제 겪었던 일에 대하여 다시 물어 보았다.

영문 텍스트를 여기에 업로드한 뒤 음성으로 전환을 부탁했더니, 인터넷 연결이 안 되어 있어서 못한다고 하네요. 정말 인터넷이 막혀서 그런가요?

이에 대한 조리 있는 답변은 다음과 같다.

네, 맞습니다. 사용자의 컴퓨터나 네트워크가 아니라, ChatGPT의 실행 환경(코드 인터프리터/코드 실행기) 자체가 보안상의 이유로 외부 인터넷에 연결되어 있지 않습니다.

즉:

✅ 여러분은 인터넷을 사용하고 계시지만
❌ 제가 음성 파일을 만들기 위해 사용하는 환경은 인터넷 연결이 차단되어 있습니다.


🔍 왜 그런가요?

  • 보안을 위해 외부 API나 서버(gTTS, Google Cloud, Amazon Polly 등)에 직접 연결할 수 없습니다.

  • 예: gTTS로 음성 파일을 만들려면 translate.google.com에 접속해야 하는데, 그게 차단되어 있는 상태입니다.

  • 그래서 제가 대신 TTS용 텍스트 파일을 만들어 드리거나, 사용자가 직접 변환할 수 있는 방법을 안내해드리는 것이 최선입니다.


✅ 할 수 있는 일:

  • 슬라이드 노트를 정리해 .txt 파일로 제공

  • Python 코드 예시(gTTS 등)를 드려서 직접 mp3 파일로 만들 수 있게 도와드림

  • ElevenLabs, VoiceMaker 등 온라인 TTS 사이트 안내


원하시면, 제가 도와드릴 수 있는 가장 효율적인 방법을 함께 골라드릴게요.
예: mp3 변환용 Python 코드, 무료 TTS 웹사이트 추천, 슬라이드 노트 나누기 등. 어떤 방식이 편하신가요?
  <= 답변은 여기까지.

무척 합리적인 접근 방식이다. 사용자 입장에서는 '뭘, 그냥 해 주지..'라고 불평을 토로할 수 있으나, AI가 모든 것을 하도록 내버려 둘 수는 없다. AI에게 영화표를 예매해 달라고 요구하거나, 메일 서비스에 접속하여 답장을 쓰는 일을 전적으로 맡긴다면? 볼 만한 영화를 추천해 달라거나 메일함에서 스팸을 제외하고 업무상 꼭 필요한 것만 추린 다음 내가 불러주는 대로 답장을 쓰는 정도는 AI에게 맡길 수 있을 것이다. 하지만 비밀번호를 직접 다룬다든지 하는 일까지 다 맡기는 것은 곤란하다. 물론 구글 크롬에는 비밀번호 관리자라는 것이 있지만...

AI 에이전트는 데이터에 기반하여 의사결정을 가속화한다고 말한다. 챗봇은 아직 AI 에이전트라고 말하기는 곤란하다. 아직은 개인 수준에서 구매(구독?) 가능한 AI 에이전트는 많지 않은 것으로 안다(아니다 - Slack을 보라!). 그리고 대부분 그 활동은 컴퓨터 안의 세상에 머물러 있을 것이다. 그러나 이 기능이 실제로 '센서'와 '액튜에이터'를 달고 물리적 세상을 돌아다니기 시작한다면? 이미 휴머노이드 로봇 기술이 많은 진보를 이루었으니 진정 기계와 AI가 인간을 대체하는 세상을 느끼게 될 것이다. 주요 IT 기업이 마련한 AI 에이전트에 관한 설명문을 살펴보면 도움이 될 것이다.

중국 기업 유니트리가 자사 로봇을 내세워서 다음 달 휴머노이드 격투기 시합을 개최한다고 알렸다(경향신문 4월 20일 뉴스). 키는 130cm, 무게는 35kg이라고 한다. 아마 머지 않아서 로봇 대 사람의 격투기 시합이 벌어질 지도 모르는 일이다. 사람의 부상을 방지하기 위해 로봇의 성능을 일정 이하로 유지하는 것을 규칙으로 해야 될 것이다.

나는 AI를 이용하여 업무 효율화를 이루고 싶고, 하지만 누가 나에게 해 주는 결과물은 '사람의 손길'을 통해 만들어진 것이었으면 좋겠고... 이건 사실상 내로남불이다. 그리고 AI 에이전트 역시 만능은 하니다. 생성형 AI 에이전트가 속아서 정보를 빼내는 이른바 '하이재킹'이 얼마든지 가능하기 때문이다. 관련된 기사를 하나 소개하는 것으로 글을 맺고자 한다.

AI가 만들어낸 탈취 도구, 구글 크롬에서 개인정보 빼내는데 성공

2025년 4월 20일 일요일

SAM9703 도터보드 활용을 위한 반주기 개조 작업

2020년에 이미 완료해 둔 작업에서 크게 달라진 것은 없다. 단지 섀시 내에 공간이 부족하여 메인보드의 커넥터 부분만을 남기고 나머지를 잘라내었는데, 에폭시 재질이라 상당히 어려웠다. SMD 부품이 한쪽면에 잔뜩 붙여 있어서 칼금을 바닥면에서만 반복하여 넣은 뒤 구부려 자르느라 무척 힘들었다. 항공가위까지 동원하였으나 한쪽 끝에서 5cm 정도를 자른 뒤 더 이상 진전하기가 어려웠다. 가위날이 전진하면서 PCB가 위 아래로 벌어져야 하지만, 에폭시 PCB는 탄성이 거의 없어서 구부러지지 않는다. 튼튼한 바이스라도 있었다면 칼금을 넣은 뒤 기판을 물려 놓고 힘을 가해서 부러뜨렸을 것이다.

자르기 전의 모습.

작업 후. 다음에는 브레드보드를 만능기판으로 바꿔야 한다.

내부의 SMPS에서 헤드폰 앰프 보드(MAX4410칩 사용)로 5V 전원을 공급할 수 있게 커넥터 처리도 하였다. 본체에 DC 어댑터 잭이 붙어 있어서 이를 활용하였다. 이는 외부 기기에 전원을 공급하기 위해 마련된 것이지, 전기가 흘러나오는 어댑터를 여기에 꽂기 위함이 아니다. 이 반주기는 이미 AC 220V를 전원으로서 이용하기 때문이다. 

헤드폰 앰프 보드를 섀시 내에 넣어 버리는 것도 가능하다.

SAM9703 도터보드를 GM sound module로 쓰기 위한 연결법. 2025년 4월 20일 편집.


Motherboard/daughterboard는 아직까지 널리 쓰이는 용어이지만, 이를 중립적인 용어로 바꾸려는 움직임이 있다고 한다. '뭘 그렇게까지?'라고 생각할 수도 있겠다. 대안이 무엇인지 알아보자.

기존 용어중립적 대체어 예시
Motherboard-> Mainboard, System board
Daughterboard-> Expansion board, Add-on board, Mezzanine board

'Mezzanine'은 호텔이나 미술관 등에서 본 기억이 있는 단이이다. 원래 1층과 2층 사이에 위치하여 개방된 형태를 갖는 라운지 공간을 뜻하는 이탈리어어라고 한다. 이런 토막 상식을 또 알게 되다니...