-
-
피지컬 컴퓨팅
Tom Igoe 지음, 서동수 옮김 / 지구문화사 / 2008년 3월
평점 :
<피지컬 컴퓨팅>은 이론서가 아니다. 그렇다고 사용에 관한 책도 아니며 전문지식을 쉽게 풀어쓴 교양서적도 아니다. 그 보다 본 서는 제작 및 실습에 관한 책이다. 무언가를 만드는데 흥미가 없는 사람들은 이 책을 읽어야 할 이유가 없다. 이 책은 어떤 움직이는 기계들을 궁리하고, 자작(DIY)하고, 기존 기계들의 기능을 수정(Modify)하거나 해킹(Hacking)하는 것에 재미 들린 전자공작 매니아들, 혹은 최소한 그러한 분야에 전문적인 지식이 필요한 사람들이 읽어야 한다. 그래서 내용의 8할은 전자공작에 전적으로 할애되어 있다. 기계가 재미있게 반응하고 움직일 수 있도록 하기 위해 전자공작 기술이 필요한 것이다. 이 책은 회로구성과 납땜하는 방법과 저항을 연결하는 방법을 가르쳐준다. 마이컴으로 모터를 어떻게 제어하는지를 가르쳐준다. 각종 센서류에는 무엇이 있는지, 각 센서의 특성은 어떠한지를 가르쳐준다. 센서와 모터를 어떻게 연결하면 더 재미있는 반응을 만들어낼 수 있는지를 가르쳐준다.
완전 초짜들을 대상으로 전자공작을 설명하고 있기 때문에 알아야 할 수학이라고는 달랑 V=IR 이라는 간단한 수식 하나뿐이다. 그래서 "난 전자회로를 한번도 구경해 본적이 없는데..." 하는 사람도 전혀 겁먹을 필요가 없다.(단, 뭔가를 만들어 보려는 동기는 있어야 한다.) 책 제목이 풍기는 근엄함! 과는 달리, 저자는 어려운 내용도 아주아주 쉽게 잘 풀어서 설명해주고 있기 때문이다. 그나마 어려운 내용이 잘 나오지도 않는다.
그러나 <피지컬 컴퓨팅>은 온전히 전자공작만을 다루지는 않는다. 이 책은 일반인들의 컴퓨터에 대한 개념틀을 깨는 뭔가를 담고 있다. 누구나 집에 한대 이상씩은 갖고 있는 PC의 강력함과 그것을 대할 때의 익숙함에 맛들인 사람이라면, 저자가 소개하는 컴퓨터에 대한 새 개념틀은 다소 낯설게 느껴질 수 있다. 하지만 이것이 실제로 그렇게 낯선 개념은 아니다. 이미 우리에게 익숙해져 버린 스마트폰은 <피지컬 컴퓨팅>이 담고 있는 이런 생소한 정신을 잘 구현해주고 있는 기계이기 때문이다. 우리에겐 스마트폰의 인터페이스와 사용자 경험(UX)이 그리 낯설지가 않다.
여기서 질문하나. 스마트폰엔 있는데, 일반 PC엔 없는 게 뭘까? 이 차이가 어느 정도 이 책에 대한 힌트를 주기에, 이는 꽤 유효한 질문이 된다. 이에 대한 답은 여러 가지가 제시될 수 있겠지만, 여기엔 손가락 터치와 중력 같은 것에 응용 프로그램들이 반응한다는 점이 꼭 포함되어야 하지 않을까 싶다. 그 외에 기동성이 뛰어나다는 점을 제외하면, 스마트폰은 애초에 PC와 대적 상대가 못 된다. PC에 비해 화면도 작고 성능도 떨어지며 응용 프로그램들의 양과 질적 수준을 따지자면 PC가 스마트폰 보다 몇 백배는 더 나을 것이기 때문이다. 그러나 <피지컬 컴퓨팅>은 스마트폰이 지닌 이 작은 장점에 주목한다.(비록 스마트폰에 대한 언급은 없지만)
저자는 전통적인 컴퓨터를 바보상자가 아니라 현재의 스마폰처럼 유용하고 재미있게 만들 수 있도록 하는 내용을 다루고자 한다. 컴퓨터를 유용하고 재미있는 물건으로 만들기 위해 주변에 여러 종류의 센서들을 부착하고, 모터까지 달아서 풍부한 사용자 경험(UX)을 이끌어낼 수 있도록 하는 게 저자의 목표라 할 수 있겠다. 쉽게 말해서, 전통적인 컴퓨터에 눈과 귀 같은 감각기관을 달아주고 여기에 손, 발까지 달아서 실제 살아 숨쉬는 사람과 풍부한 상호작용을 할 수 있도록 하자는 것이다.(그렇다고 어떤 정형화된 로봇을 만들고자 하는 건 아니다.) 눈, 귀에 해당하는 것이 각종 센서류이고 손, 발에 해당하는 것이 모터와 솔레노이드(모터가 원운동을 만들어내는데 비해 솔레노이드는 직선 운동을 만들어낸다.)같은 것임은 책을 읽어나가며 어렵지 않게 알아낼 수 있을 터이다.(편의상 이 단락을 #1로 표시한다.)
물론 여기서 언급하는 컴퓨터는 일반 PC만을 지칭 하는 게 아니라 각종 마이컴들을 모두 포괄한다는 점에 주의해야 한다. 무거운 PC뿐 아니라, 임베디드 장비에 주로 쓰이는, 극히 단순화된 회로로 구성된 마이크로컨트롤러류를 모두 컴퓨터로 본다. 그리고 이 책이 담고 있는 대부분의 설명은 PC가 아닌, 이 극히 작고 단순화된 마이컴을 기준으로 하고 있다.(그래서 이 책에선 마이컴과 구별하기 위해 PC를 '멀티미디어 컴퓨터'라는 별도의 용어로 규정하고 있다.)
꽤 길게 설명했지만 내용을 요약하면, <피지컬 컴퓨팅>은 이 분야 초심자들을 대상으로 회로나 전자장비에 대한 디지털 기준의 거의 완전한 전자공작 실습 교재로서, 기존의 컴퓨터가 가진 인터페이스(키보드/마우스/모니터)의 한계를 확장하는 것을 목표로 한다. 전자공작(그리고 이를 제어하기 위한 컴퓨터 프로그래밍)이 책 내용의 8할을 차지하고, 나머지는 인터페이스 확장에 대한 개념 설명으로 채워져 있다고 보면 된다. 그러나 이 지점에서 독자들이 염두에 두어야 할 내용은, 전자공작을 전자공학이나 회로해석 이론과 혼동하면 안 된다는 것이다. 세 분야 모두 하나로 엮일 수 있긴 하더라도, 이들은 엄연히 달리 봐야 하는 독립적인 분야다. 여기서 상세한 내용을 다 설명할 수는 없지만, 전자공학이나 회로해석은 전자공학을 전공하는 사람들이 전문적으로 공부하는 내용임에 반해 전자공작은 아마추어들도 쉽게 접근할 수 있다는 점이 공부하는 입장에선 꽤 중요하다. 이 책은 또한 디지털 논리회로를 다루는 전공서적, 혹은 그런 전공서를 더 쉽게 풀어 쓴 교양서도 아니다. 전술한대로 본서는 단지 디지털 기준의 전자공작만을 다룬다. 이 책 구입 전에 이 점은 꼭 명심해야 할 것이다.(물론 아날로그 입/출력도 다룬다. 그러나 모든 설명은 디지털 기준이다. 그래서 아날로그를 디지털로 변환하는 컨버터와 신호 변환기법 같은 것을 같이 다룬다. 이것이 보기만큼 그렇게 어렵지는 않다.)
이 같은 이유 때문에, <피지컬 컴퓨팅>은 "예술가와 디자이너를 위한 전자공학" 이란 부제가 무색하게도(물론 이들에게도 적합한 교재다.) 시중에서 판매중인 로봇제작에 대한 그 어떠한 책들보다도 설명이 잘 되어있는 명실상부한 로봇 제작 실습용 교재라고 본다. 개인적인 욕심 때문에 로봇 제작을 위해 서점, 도서관을 전전하며 로봇과 관련된 거의 모든 책들을 훑어봤는데, 로봇 제작에 막 입문하려는 사람에게 이만한 책이 없다는 결론을 내렸다. 이 책이 로봇 제작과 내용적으로 겹칠 수 밖에 없는 건 기계를 살아 움직이게 해서 사람과 풍성하게 상호작용 하게 만드는 것(<피지컬 컴퓨팅>이 지향하는 바) 자체가 기술적으로 로봇에 사용되는 모든 요소기술들을 필요로 하기 때문이다. 비록 로봇제작이 저자가 원래 의도했던 바는 아니었겠지만, 이 책을 로봇 제작 입문서로 보는 것도 전혀 어색함이 없는데다가 나는 <피지컬 컴퓨팅>이 그러한 종류의 책 중에서도 으뜸이라는 점을 강력하게 주장하고 싶다. 왜냐하면 현실적으로 움직이는 기계를 다루는 예술가와 디자이너보다는 로봇 제작에 관심을 가진 일반인들, 개발자들, 전자공작 애호가들이 훨씬 더 많을 것인데, 이런 현실에 비해 시중에 로봇제작 초심자들에게 맞는 쓸만한 책들을 (이 책외엔) 발견하지 못했기 때문이다.
기존의 로봇 제작에 관련된 실습용 책들은 그 내용이 부실하거나 체계가 많이 부족했다. 가령, 어떤 책은 모터에 대해서 지나치게 자세하게 나와있지만 마이컴을 다루는 법은 거의 나와있지 않다. 어떤 책은 로봇 움직임의 수학적 해석에만 매달린다. 또 다른 책은 이미 전자공학에 어느 정도의 사전지식을 전제한 채로 전자공학 용어만 나열하다가 만다. 또 다른 책은 마이컴에만 치중해서 로봇 제작을 위한 전체적인 회로를 어떻게 구성하는지에 대한 지식이 거의 나와있지 않다. 초심자 입장에서 실질적으로 가장 절실한 것은, 회로구성을 하는 방법(또 회로도를 보는 방법)과 납땜하는 방법부터 익히는 건데 대개의 로봇 제작과 관련된 실습용 책들은 이를 건너뛰거나 다루더라도 무질서하게 내용을 나열할 뿐이다. HW에 치중한 책은 SW를 건너뛰거나 혹은 그 반대인 경우도 많았으며, 마이컴을 다루는 책의 경우 8051이니 하는 특정 프로세서만을 위주로 해서 책이 구성된 경우가 많았다. (그 책은 제목에 정확히 '로봇'이란 단어가 들어가 있었다.) 그러나 무엇보다도 로봇 제작의 처음부터 끝까지를 수미-일관하게 설명해주는 내용으로는 이 책을 제외하고 단 하나도 발견하지 못했다는 점이 가장 실망스러웠다. 초심자 입장에서 로봇 제작을 위해 다른 참고자료들을 참고하지 않고도 그 책 한 권 만으로 모든걸 구성할 수 있는 그러한 종류의 자료, 책이 전무했다는 것이다.(하다못해 브레드 보드와 PCB 기판의 차이를 가르쳐주는 책조차 본적이 없다.)
물론 시중에도 전자공작에 대한 책은 꽤 있다. 그러나 로봇제작과 연계한 전자공작 책은 발견할 수 없었다. 사실 본 서를 접하기 전엔 입문용으로 모 출판사의 전자공작 시리즈(몇권에 걸쳐 연재되는 형태)를 염두에 두고 있었다. 그나마 그 중에서 내용이 잘 꾸며져 있었기 때문이다. 하지만 그 책은 마이컴과 회로가 어떻게 연결되는지, 프로그래밍을 어떻게 해야 하는지(SW의 측면)에 대해선 나와있지 않아 이에 대한 별도의 공부를 요구했고, 더군다나 꽤 오래된 책이라 최신의 내용이 반영되어 있지 않았다.
이런 와중에 <피지컬 컴퓨팅>을 접하게 되면서, 이 책이 로봇 제작 실습용으로는 시중에 나와있는 것들 중에 가장 훌륭하다는 생각을 하게 됐는데, 한편으로는 다행이란 생각과 함께 또 다른 한편으로는 씁쓸한 마음 감출 길이 없다. 이런 류의 책조차 한국인 저자들을 믿을 수가 없는 현실을 개탄스러워 할 상황이기 때문이다. 해서 나는 이 책을 로봇 제작에 막 입문하려는 사람들에게 강력 추천하고 싶다. 다른 책들을 보며 괜한 삽질 할 필요가 없다. 로봇 제작을 시작하려는 사람들은 이 책부터 읽어라. 두드려라 그럼 문이 열릴 것이다!
<피지컬 컴퓨팅>은 전체적으로 1, 2부로 나눠지는데 1부만으로도 기본적인 내용은 익힐 수 있다. 2부는 1부의 응용이다. 응용력이 뛰어난 사람이라면, 2부는 안 읽어도 내용을 스스로 구성해낼 수 있을 것으로 본다. 그러나 초심자라면 2부까지 읽을 것을 권한다. 기초적인 내용들을 어떻게 응용할 수 있는지에 대해 많은 것을 배울 수 있을 것이다.
이제 솔직하게 말할 때가 됐다. #1은 저자의 의도를 내가 다소간 주관적으로 해석한 경우라는 것을 말이다. 오히려 #1의 내용을 반대로 돌려야 저자의 의도에 더 잘 부합하는 것이리라. 여기까지 읽어온 독자라면 한번 다음의 시나리오를 생각 해 보자.
눈과 귀 그리고 전구가 달린 Y라는 기계에 사람이 가까이 다가가 박수를 치면 불이 켜지는 그러한 단순한 회로를 제작해야 한다고 생각 해 보자. 사람이 가까이 다가가는 것을 감지하기 위해 눈(빛 감지 센서)이 필요하고 박수 치는 것을 감지하기 위해 귀가 필요하며 이 두 사건이 동시에 일어나게 될 때 불이 켜져야 하므로 전구가 필요하다. 사실 이런 회로는 그저 컴퓨터 없이 전기회로 자체(몇 개의 스위치와 저항, 센서, 전구, 전선 등)만으로도 기동할 수 있다. 그러나 이렇게 하는 건 너무 재미가 없으므로, 사람이 가까이 다가가 박수와 함께 발을 구르면 불이 켜지도록 회로구성을 바꾸고 싶다고 하자.(이 역시 그리 흥미롭지는 않은것 같다.) 어떻게 해야 하는가? 이것도 간단하다. Y에 진동센서를 달아주고 세 사건이 동시에 일어날 때 불이 켜지도록 기존의 회로를 수정하면 된다.(비록 여러 배선을 일일이 바꿔주는 수고를 해야겠지만)
그러나 상황을 좀 더 복잡하게 꾸미면 어떻게 될까? 예를 들어 사람이 Y 가까이 가서 손뼉을 두 번 연달아 치고, 두 번째 손뼉 직후 발을 한번만 굴렀을 때 불이 켜지도록 만들려면 어떻게 해야 하는가? 이때는 손뼉 사이의 시간간격을 측정해야 하고 두 번째 손뼉 이후에 발을 한번만 굴렀는지 연달아 굴렀는지를 분별해내야 하며 이 모든 사건이 적절한 시간 간격 안에 수행되었다는 것을 보장할 수 있어야 한다. 손뼉을 두 번 친 다음 10초가 지나서야 발을 굴렀을 때는 전구에 불이 들어오면 안 된다는 것이다. 여기엔 꽤 정교한 논리연산이 개입되며, 바로 이때가 컴퓨터가 개입하는 시기가 된다. 즉, 이제는 Y에 작은 컴퓨터를 달아주어야 한다.(작은 마이컴으로 충분하다.) Y는 사용자로부터 적절한 입력이 주어지면 그 작은 컴퓨터로 어떤 논리연산을 하게 될 것이고 이를 통해 전구를 언제 켜야 할지를 판단할 수 있게 된다. Y는 이 시점에 최초로 (초보적인 수준의) '뇌'를 갖게 된 셈이다. 물론 배선을 바꾸는 것은 이제 이 작은 뇌에 코드를 프로그래밍해 넣는 것으로 바뀌게 된다.(이 시나리오 전체를 #2라고 하자.)
독자들은 #1과 이를 역으로 바꾼 #2를 진지하게 비교해 봄직하다. 어떤 부분에서 차이가 나는지를 제대로 감 잡을 수 있으면, 생명체 진화와 시스템 제어의 꽤 심오한 측면까지 엿 보는 것도 가능하다. 그러나 이에 대한 자세한 내용은 생략하겠다. 다만 저자는 #2의 접근으로 뭔가를 설명하고 있는데, 이를 #1의 방식으로 바라 보는 것도 가능하다는 것 정도는 알고 넘어가도록 하자. 사실 저자의 거의 모든 의도는 몇 페이지 안 되는 서론에 거의 다 피력되어 있다. 그래서 책의 요점만을 알고자 하는 사람은 서론부만 읽어봐도 무방하겠는데, 이때는 책 내용의 대부분을 차지하는 전자공작에 대한 지식은 그냥 버리는 셈이 될 것이다.
한편, 저자가 의도하고 있는 컴퓨팅에 대한 개념틀은 정보처리 및 전달이라는 컴퓨팅을 바라보는 전통적인 관점을 물리적 입력(센서)-처리(마이컴)-물리적 출력(모터) 이라는 에너지 변환 개념으로 치환한다. <피지컬 컴퓨팅>을 제대로 읽었다면 이 점을 분명히 이해해야 할 것으로 본다. 에너지 변환과 정보처리는 상호 겹쳐지지만 서로 다른 개념이며 각자의 기능에 미묘한 차이가 있다.(사실 제어이론으로 넘어가면 에너지 변환 개념이 정보처리보다 더 역사가 오래되고 학술적인 가치가 높은 내용이 된다.) 역시 깊은 내용은 생략하겠다.
책의 특성상 다양한 독자층이 예상된다. 그 중에 컴퓨터 프로그래머와 전자공학 전공자들도 포함될 것이다. 특히 이 두 계층의 사람들은 이 책을 보며 느끼는 바가 서로 다를 것이다. 아마 프로그래머들에겐 전자공작 내용이 유용하게 느껴질 것이고, 전자공학을 한 사람에겐 프로그래밍 내용이 유용하게 느껴질 법하다. 그러나 둘 다에 충분히 익숙해지면, 어느 쪽에 더 강조점을 두게 될지에 대해 고민하면서 어떤 종류의 양가감정을 느끼게 될 수도 있을 것 같다. 그리고 아마 그 시점이 어떤 무형의 가치를 결정하는 때로서, 본인이 초심자에서 중급 이상으로 뛰어오르는 때가 될 것이다. 본인이 그러한 고민을 하고 있다면, 미리 축하한다. 초급자에서 중급자로 올라서게 된 것을 말이다!
%아래 박스 친 글은 현재의 로봇 제작업체, 판매업체들과 로봇 제작을 위한 책을 집필하려는 사람들에게 하고 싶은 말이다. 관련이 없는 사람은 읽지 않으셔도 된다.%
장차 로봇 제작을 위한 교재, 책을 쓰려는 분들은 이 글을 참고해 초심자가 무엇을 원하는지를 분명히 알고 넘어가길 바란다. 국내에서 로봇을 제작하는 업체나 그것을 다룬다고 하는 권위있는 책조차 로봇 사용자(주로 제작자)의 니즈(needs)와 이들의 현황파악을 전혀 못하고 있다고 생각한다. 이 때문에 대개의 로봇 제작 아마추어들은 인터넷 까페나 동호회 형식을 빌어 사람-to-사람으로 로봇 제작에 대한 노하우를 직접 '전수'받는형태로 로봇 제작을 익히고 있다. 로봇이 전통 옹기 제작과정 처럼 '전수'되고 있다는게 자랑스러워할 일인지는 잘 모르겠지만, 산업적인 측면에서는 분명히 지양되어야 할 내용이라고 본다. 뉘앙스가 좋지 않은 표현을 빌어 표현한다면, 이 같은 로봇 제작 분야는 아직 산업화 이전의 "전 근대적인"(근대를 어떻게 규정하느냐에 따라 달라질 일이겠지만) 상태에 머물러 있다고 비판할 수 있기 때문이다.
내가 어떤 로봇 제작업체에 특정 부품에 대한 주문을 넣었더니, 달랑 그 제품 하나만 오고 매뉴얼이나 설명서는 인터넷 검색과 동영상을 참고하라는 말을 들었다. 다른곳에도 주문을 해봤지만, 이들 역시 크게 다르지 않았다. 서비스가 완전 개판이라는 것이다. 아직 국내 로봇 산업은 전자 땜질하는 사람들의 공돌이 마인드가 대부분을 차지하는것 같다. 이 사람들은 고객을 위한 마케팅을 어떻게 해야 하는지, 매뉴얼을 어떻게 친절하게 만들어야 하는지, 로봇 제작을 시작하려는 사람에게 정말로 필요한것이 무엇인지에 대한 감조차 없는것 같다. 공돌이 마인드로 접근하니까 사용자 요구분석이 안되고, 서비스도 개판이 되는거다.(본인들은 나름 고객에게 친절하게 대한다고 생각하겠지만, 여기선 친절함이 문제가 아니라 진짜 사용자 요구사항을 파악했느냐라는게 문제가 된다.)
나의 이런 비판은 로봇 제작을 위한 교재나 책을 집필했거나 또는 하려고 계획하는 사람들에게 그대로 적용된다. 제발 로봇 사용자 입장에서 한번 더 생각해보기 바란다.