제공 :
한빛 네트워크
저자 : Gretchen Giles
역자 : 조성재
원문 :
Why embedded systems are "terrifyingly important"
엘리시아 화이트(경주용 자동차, 스마트 더스트* 임베디드 시스템 엔지니어로서 한꺼번에 공부중)
* 스마트 더스트는 여러 미세전자기계 시스템 중 하나로, 이론적인 시스템이다. 센서나 로봇들이 무선환경에서 동작하여, 여러곳에 흩어져 빛이나 진동, 온도, 자력, 화학적 반응을 감지할 수 있는 시스템들을 말한다.
임베디드 시스템 엔지니어링 분야는 점점 더 관심을 끌고있으며, 영역도 세분화하고 늘어나면서, 자전거에서부터 시작해서, 군사용 대공화기를 뛰어 넘는 범위의 대상을 설계하는 ---그러면서 이익도 되는--- 분야입니다.
이제 인터뷰에서, "
Making Embedded Systems"의 저자 엘리시아 화이트(@logicalelegance)가 어떻게 그러한 주제의 책을 쓰게 되었는지, 어떻게 이 분야에서 일을 하게 되었는지, 멀지않은 미래를 왜 구현하게 되었는지에 대해 설명합니다.
왜 임베디드 시스템이 중요합니까?
Elecia White: 임베디드 시스템은 소프트웨어가 실제 세계와 만나는 곳에 존재합니다. 우리의 삶이 현관문 도어락, 비행기, 심장박동기 등과 같은 일련의 시스템들 속에 있기 때문에, 소프트웨어를 어떻게 구현하는지가 정말 "무섭게" 중요합니다. 이런 시스템에 대한 소프트웨어를 작성하는 것은 제한된 리소스만을 가지고 있기 때문에, 일반적인 컴퓨터 소프트웨어 제작보다 더욱 어렵습니다. 요즘 트렌드는 더 나은 소프트웨어를 구축하는 것보다, 그냥 바로 하면 되는 카우보이 정신을 허용하고 있습니다. 우린 그것보단 더 잘할 수 있습니다. 그리고 그것보다 꼭 잘 해야만 합니다.
책을 쓰게된 동기는 무엇입니까?
Elecia White: 몇 년 전 컨퍼런스에서, 여러 대학 관계자들과 동석하였는데, 그들은 어떻게 하면 여성들이 컴퓨터 과학분야의 석박사 학위를 얻을 수 있을지에 대해 토론하였습니다. 저만 그 자리에서 석박사 학위를 가지고 있지 않았기 때문에, 그들의 생각을 저에게 적용해보려 시도했었습니다. 하지만, 제 경력 중 무엇 하나 교육(그리고 재미있는 것)과 관련한 것이 없었습니다. 착탄지점을 확정한다거나, DNA 스캐너를 만들거나, 표적물 선반 위에 둔 제 장난감을 보는 것이나, 경주용 자동차에서 일하는 것들 말입니다. 어떻게 프로젝트가 진행되는지, 얼마나 어려운 수학 문제를 풀어야 하는지, 몇몇 깔끔한 논문을 출판해야 하는지, 몇 개의 특허를 만들어야 하는지 이미 봐왔었습니다. 이 모든 얘기를 듣고, 한 대학 교수가 말하기를, 이미 저는 박사학위를 가지고 있고, 이미 학술 논문을 쓰기 위한 모든 것을 가지고 있는 것 같았답니다. 그래서, 제 책은 임베디드 시스템을 통해, 제가 걸어온 제 발자취에서 발견한 것들을 써두었습니다.
과거 당신의 프로젝트 중 일부를 설명해줄 수 있나요?
Elecia White: 사람들은 소프트웨어를 만드는 것이 하루종일 컴퓨터 스크린을 보는 것을 뜻한다고 생각합니다. 저는 임베디드 소프트웨어에서 그런 경우를 보는 것이 드물었습니다. 물론 저도 프로그램 코드를 작성합니다. 그러나 하드웨어도 있어서, 센서가 동작하거나 환경을 변경하도록, 보드 상의 소프트웨어가 동작하도록 하는데에 대부분의 시간을 할애합니다. 시스템은 대부분 어떤 다른 장치 안에 들어가 있습니다. (이를테면, 경주용 자동자 안에 관성 측정 장치등과 같이 말이지요.) 그래서 응용프로그램들이 어떻게 도로를 접하는지 자주 볼 수 있습니다.
임베디드 소프트웨어 엔지니어로서, 응용 소프트웨어와 하드웨어 엔지니어 사이에서 밀접하게 일하다보니, 자주 시스템의 중심에 있곤 합니다. 저는 전체 제품에 대한 특별한 관점을 갖고 있습니다. 시스템을 완성하기 위해서 전자분야, 기계분야, 응용 소프트웨어 엔지니어들과 같이 일합니다. 재미있고, 생동감 넘치는 직업이지요.
제가 좋아했던 작업 중 하나는
Leapfrog에서 교육용 장난감을 만드는 것이었습니다. "고양이의 고(원문에선 C is for Cat.)"라고 말하는 소프트웨어를 만드는 것보다 더욱 즐거웠지요. 소프트웨어는 게임을 진행하고, 버튼으로부터 입력을 받으면 적절한 소리를 재생하도록 제어합니다. 하지만 만약 매번 같은 입력에 같은 응답을 한다면, 상호작용이 덜 할 것입니다. 그래서 우리는 터치패드, 모터, 스크린, RFID 태그를 추가하여서, 각각의 장난감이 재미있고, 유일한 제품이 되도록 만들었습니다. 제품에 (그리고 책에도) 무엇인가를 얼마나 교육적이면서 즐겁게 만들지에 대해 즐겁게 고민했었던 흔적이 남아있습니다.
일을 시작할 때에도 임베디드 소프트웨어 엔지니어로서 시작하였습니까?
Elecia White: 제 학위는 컴퓨터 과학과 이론적 시스템 엔지니어링에 관한 복수 전공이었습니다. 저는 복수 전공을 했다는 것이 부끄럽습니다. 표면상으로는 별개의 분야에 관심을 두고 있다는 의미이니까요. 임베디드 시스템이라는 전공분야가 생기면서, 풍부한 소프트웨어 엔지니어링 경험과 일부 전자 엔지니어링 경험을 갖고 학업을 마칠 수 있었습니다.
저는 처음에 순수한 소프트웨어 개발로 시작하였습니다. 평범한 직장이었고, 벌이도 괜찮았습니다. 어떤 지루함을 느꼈지만, OS, 드라이버, 그리고 하드웨어에 대하여 점점 더 깊게 다가갔습니다. 그 후, 휴렛팩커드에서 DNA 스캐너에 관하여 일하도록 고용되었는데, 지금은 그 분야가 나뉘어져서 에질런트(Agilent)사의 일부가 되었습니다. 그 때 담당자가 그의 임베디드 소프트웨어 팀에 대해 자극적인 곳이라며, 저를 소개해주었는데, 그가 옳았습니다. 처음 제 소프트웨어로 모터가 움직였을 때, 저는 이미 코가 꽤어버렸죠. 저의 소프트웨어는 실세계를 접할 수 있었습니다.
하지만, 저는 전자공학에 대해선 무지했습니다. 하드웨어 보드에 관하여선 상식조차 갖고 있지 않았지요. 스키메틱 회로도를 그냥 볼 줄은 알았기 때문에, 아날로그 회로 부분에서는 (소프트웨어를 제작하는데에는 정말 필요 없었고) 학교에서도 사용해 본 적도 없었던, 방정식들을 힘들게 풀어야 했습니다. 숨겨진 정보들을 얻지 않고서 데이터 시트를 어떻게 읽어야 하는지 이해할 수 없었습니다. 제가 불꽃놀이를 즐기면서도, 가치있는 장치를 부수는 것에 관한 엄청 무서운 무언가도 있었지요.(항상 소화기가 어디에 있는지 알아야 했습니다!) 억수로 운이 좋았던 것이, 아이를 얻으려고 환자가 되려는 몇몇 하드웨어 엔지니어(여성 엔지니어를 뜻함)들을 만났던 것입니다. 그들의 지원과 우정이 아니었다면, 순수 소프트웨어로 회귀하기가 더 쉬었을 것이고, 예전에 일했었던 생의학 소프트트웨어에 더 많은 관심을 갖았을지도 모르겠습니다.
상품명을 거론할 수 없겠지만, 몇몇 나쁜 임베디드 시스템의 예를 들어줄 수 있겠습니까?
Elecia White: 임베디드 시스템 소프트웨어는 학문의 경계를 넘나듭니다. 하드웨어 엔지니어와 소프트웨어 엔지니어의 특성을 모두 가지고 있어야 하지요. 하지만, 대부분 우리는 컴퓨터 과학이나 전자공학만으로 시작하기 때문에, 동시에 다른 업무의 절반을 공부해야만 합니다. 그러한 점이 몇몇 흥미로운 교착점을 만들어내곤 합니다.
저는 자신들의 알고리즘으로 엄청나게 놀라운 것들을 할 수 있는, 정말 똑똑한 사람들과 회사에서 일해보았습니다. 그러나 그들은 버전 컨트롤 시스템을 어떻게 사용하는지, 매번 수정될 때마다 어떻게 새 디렉터리로 소스코드를 복사하는지, 다양한 클라이언트에 대한 다른 소스코드들을 어떻게 증식시키는지 몰랐습니다. 소프트웨어 엔지니어로서, 그러한 기억은 진절머리나지만, 적어도 한 번 이상은 봤었습니다.
한 번은 하드웨어쪽으로 작은 회사에 갔었는데, 그들은 제품이 왜 동작 안하는지 설명할 줄 몰랐습니다. 데이터 수집 시스템에는 노이즈(전기신호적 노이즈, 신호 왜곡)가 있었다고 기록되어 있었습니다. 그러나 소프트웨어(혹은 하드웨어)만으로는 그러한 데이터를 직접 볼 수 있게 만들 수 없었습니다. 문제점을 해결할 때, 알고리즘이 어떻게 깨졌는지 설명하기 위해 수주를 소비했습니다. 그건 정말 보드 상의 간단한 오류였을 뿐이었습니다. 약간 좋은 임베디드 소프트웨어는 보드에서 주변 장치를 검사할 수 있도록 만드는 것입니다. 더 나은 설계는 수집한 데이터를 기록하여 오류를 볼 수 있도록 만든 것입니다.
실세계는 가혹한 장소입니다. 연구실 안에서 시스템은 잘 동작하지만, 가혹한 환경에서는 오동작하는 것을 자주 볼 수 있습니다. 전자기계적 장치를 갉아먹는 소금기 머금은 안개와 부스러진 조개 껍데기만 있는 보스톤에서 작동해야 하는 시스템에 대해, 건조하고 햇빛 내리쬐는 로스엔젤레스에서 잘 돌아가는 소프트웨어가 동작하지 않는 것은 더 말할 나위도 없습니다.
임베디드 시스템에 대한 전망은 어떻습니까?
Elecia White: 생체신호를 측정하는 장신구, 지문인식으로 작동하는 크레딧 카드, 스마트 더스트와 나노봇, 개인 학습기, 자동운전 자동자. 공상과학 소설에서 나올법한 일들이 실제와 그리 멀지 않습니다.
20년 전인 1991년을 상상해보십시오. 아무도 핸드폰을 가지고 있지 않았으며, 음악을 듣기 위해 (카세트 테이프와) 워크맨을 사용했었고, 인터넷은 한정된 곳에만 있었으며, 그 마저도 텍스트 기반이었습니다. 몇몇 운이 좋은 사람들은 큰 부피의 데스크탑 컴퓨터, 콘솔 게임기, 전자식 타자기를 가지고 있었습니다.
아무도 컴퓨터와 인터넷이 세상을 변하게 했다는 데에 부정하지 않습니다. 그러나 우리가 갖지 못한 것들은 많습니다. 날아다니는 자동차, 로봇 집사, 초광속 여행, 순간 이동 장치, 달표면 도시... 제가 보증하는 미래와 같지는 않은 것 같습니다. 그러나 여러분은 1억명 이상의 스마트폰 사용자 중 한 사람이며, 1991년 대의 컴퓨터 보다 10분의 1의 가격으로 더욱 강력한 성능을 여러분의 주머니에 갖고 있습니다.
이렇게 계속 진행한다면, 2031년은 어떻겠습니까? 임베디드 시스템의 최대 목표는 중앙집중방식 컴퓨터에서 여러분의 집이나 인공위성, 자동차, 혹은 여러분의 주머니에서 작동하는 작은 도구로 지능을 분산하는 것입니다. 만약 2011년의 큰 데스크탑 컴퓨터가 2031년에는 우리의 주머니로 들어갈 정도의 성능이라면, 우리의 스마트폰은 귀걸이나, 일회용 마이크로도트(*마이크로도트: 점의 크기로 까지 축속한 사진) 정도에 들어갈 수 있다는 것을 의미하지 않을까요?
우린 아직 달 표면 도시를 갖고 있지는 않습니다만, 지금 우리가 갖고 있는 것들은 놀랍습니다. 그리고 점점 더 좋아지고 있고요. 이미 여러분은 바닥을 닦는 작업보다 더욱 유용한 것을 하는 무엇을 살 수 있는데, 누가 커피를 만들어 주는 로봇 집사를 필요로 하겠습니까?