메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

장미빛 환상!? 험난한 역경.. 임베디드

한빛미디어

|

2004-02-18

|

by HANBIT

10,920

IT 산업을 다시 한번 비상토록 할 새로운 패러다임들이 속속 등장하고 있다. 그중 임베디드 분야만큼 높은 가능성을 갖고 있는 분야도 없다. 이런 가능성을 반영하듯 다양한 기술과 제품들이 속속 등장하고 있다.

임베디드! 분명 도전해볼만 하다

"2007년까지 세계 2대 임베디드소프트웨어 강국으로 도약한다."

지난, 2월 25일 임베디드SW산업협의회(KESIC) 창립 1주년 기념 세미나에 참석한 정보통신부의 김태근 PM(신성장동력 과제 책임자)은 임베디드SW 산업에 대한 정부 비전과 관련, "오는 2007년까지 1만2천명의 전문 인력을 양성하고 5조4천억원 규모의 신규 시장을 창출하겠다"며 이같이 밝혔다. 김태근 PM은 "개발된 임베디드SW 핵심 기술을 각 정부 부처의 정보화 사업에 적용하고 한중일 3국간 표준 플랫폼 제정을 통해 향후 중국 시장 공략에도 적극 나설 것"이라고 말했다. 그는 또 "임베디드SW산업은 향후 10년간 12만명의 고용을 창출하게 될 것"이라며 "핵심 임베디드 기술과 상용 제품간 연계를 위한 엔지니어링하우스를 설립하겠다"고 밝혔다.
 
이것만으로 충분하지 않은가? 장기 침체와 불확실성의 시대! IT 분야로 진출하고자 하는 이, IT 분야에 종사하고 있지만 자신의 미래를 위해 분야를 바꾸고자 하는 이 모두에게 충분한 동기는 있다고 생각된다. 단순히 정부의 장미빛 발표가 아니더라도, 수치상으로 나타난 인력 부족 현황을 나타내는 데이터가 아니더라도, 내가 프로그래밍을 하고 있다면 한번쯤 도전해 볼만한 분야가 임베디드가 아닐까?

포스트 PC 시대? 임베디드 시대!

사람들 대부분은 임베디드 시스템 또는 임베디드 기기의 예를 들라 하면 주로 산업용 기기, 가전기기, 의료기기, 우주 탐사선에 실려 있는 장비들, 장난감 로봇 등을 떠올릴 것이다. 또한, 임베디드 시스템을 구성하는 소프트웨어에 대해 생각나는 바를 얘기 해보라고 하면 주로 실시간 운영체제(RTOS)나 펌웨어 등을 거론한다. 과연 이런 것만이 임베디드 시스템의 전부일까. 본론으로 들어가기 앞서 우선 임베디드 시스템의 의미를 한번 살펴보자.

통상적으로 임베디드 시스템이란 "마이크로프로세서를 탑재한 제어 시스템"을 의미하는 용어로 이용된다. 즉, 무엇인가를 제어하기 위해 프로세서를 탑재한 시스템을 임베디드 시스템이라 일컫는다. 소프트웨어 공학적인 입장에서는 "컴퓨팅을 목적으로 하지 않는 프로세서가 탑재되어 있는 기기"라는 표현을 종종 쓴다. 이는 프로세서가 탑재된 기기의 목적이 연산이 아닌 시스템, 달리 말하면 프로세서의 수행 결과가 무엇인가를 제어하기 위한 형태로 나타나는 시스템을 말한다.

아무튼 산업용 장비(FA) 분야와 정보가전기기의 개발에 참여하고 있으면서 어떤 기술들이 필요했는지에 대해 경험을 바탕으로 이 글을 쓰고자 한다. 이 글에는 프로그래밍에 대한 내용 이외에도 임베디드 시스템 엔지니어로서 경험한 하드웨어와 시스템에 대한 내용들이 나온다.

임베디드 개발자가 갖춰야 하는 것은?

컴퓨터와 관련된 분야 중에 임베디드 분야 개발자는 시스템 전반과 하드웨어에 대한 이해를 동시에 필요로 한다. 하드웨어 스펙을 읽고 소프트웨어 코드의 문제를 해결하는 일은 일부에 불과하다. 오히려 몇 가지 부분을 간과함으로써 개발 기간의 삼분의 일을 허송 세월로 보내기 일쑤인 경우가 다반사다. 알고 보면 사소한 실수, 하드웨어 칩 버그, 테스트 보드의 땜질 불량 등 말도 안 되는 버그에 시달리다가 개발 기간을 소진하게 되는 것이다. 리눅스나 윈도우 프로그래밍을 하는 PC 환경처럼 코딩과 디버깅을 생각한다면, 지금 포기하는 것이 좋을지도 모르겠다.

이는 많은 학습량을 요구하고, 단기간에 습득하기 어렵다는 말과 일맥 상통한다. 그만큼 어렵다는 얘기다. 그러나 새로운 기술을 배우기 좋아하고 이를 제품에 적용하길 즐기는 엔지니어가 될 사람이라면 자신이 개발에 참여했던 제품이 판매될 때의 기쁨을 만끽하며 고생을 사서 할 수 있지는 않을까?

첫 발을 내딛기 전…

단시간에 끝장을 보겠다는 마음부터 버리자. 그리고 처음부터 차근차근 끈기를 갖고 즐겨야 한다. 여기서 잠깐, 프로그래밍에 대한 경험이 전혀 없는 분이라면 일단 돌아서야 한다. 먼저 알아야 할 내용이 너무 많다.

임베디드 분야 특히, 임베디드 리눅스는 거의 C로 시작해서 C로 끝난다. 가끔 C++도 있지만… 어셈블러? 임베디드 리눅스 개발에 있어 어셈블러를 몰라도 가능한 영역은 있다. 그러나 많은 부분에서 부딪히게 된다. 어셈블러는 많은 종류가 있다. 모두 다 익히기는 어렵지만 자신이 사용하려는 MCU의 어셈블러는 익혀야 한다. 자유 자재로 구사할 정도로 익힐 필요는 없다. 다른 소스의 명령을 이해하고 자신이 필요로 하는 기능을 추가하거나 수정할 수 있을 정도면 된다.

더 자세한 내용은 리눅스 분야에 국한되어 있지만 오래 전 유영창님께서 제시한 "초보자를 위한 임베디드 리눅스 학습 가이드" 를 한번 찾아 읽어보기 바란다.

임베디드 개발자로 가는 길: 학습 도우미
다행히 관련 서적들이 쏟아져 나오고 있다. 여기 많은 분들께 호평을 받고 추천을 받은 서적을 소개할까 한다. 앞서 얘기했지만 임베디드 시스템 개발자는 하드웨어와 소프트웨어 모두를 알면 좋다고 했다. 실무에 가면 둘 중 한 분야에서 개발하게 되겠지만 처음 배우는 입장에서는… 그리고 고급 임베디드 개발자로 가려 한다면 둘 모두 섭렵해야 하는 것은 당연한 일일 것이다.

한빛미디어를 통해 출간된 3종의 임베디드 관련서와 곧 출간될 2종의 서적 그리고 ehanbit.net을 통해 제공되는 세미나, 워크샵을 통해 임베디드 개발자로 나아가기 위한 초석을 다지기 바란다.

C·C++로 작성하는 임베디드 시스템 프로그래밍

이 책은 임베디드 시스템 프로그래밍에서 공통적으로 많이 사용하는 C와 C++ 언어를 사용하여 임베디드 소프트웨어를 개발하려는 사람과 처음 임베디드 시스템 프로그래밍을 시작하는 프로그래머를 위해 쓰여졌다. 이 책은 임베디드 시스템 개발 과정에 필요한 모든 중요한 주제들을 다루고 있으며, 제공하고 있는 테크닉과 예제들은 실제 모든 종류의 임베디드 소프트웨어 개발에 직접 이용할 수 있는 것들이다.



임베디드 하드웨어 이해와 설계

이 책은 기본적인 임베디드 시스템을 설계하는 데 필요한 기본 지식, 임베디드 시스템을 위한 CPU, 주변기기와 인터페이스라는 3대 부문을 빠짐없이 다루고 있다. 실제 동작이 가능한 임베디드 시스템을 최단 기간에 만들 수 있도록 현장에서 많이 사용하는 하드웨어와 주변기기/인터페이스에 대한 핵심을 다루며, 너무 이론적이거나 개괄적인 측면에만 치우치지 않도록 중간중간 저자 경험담을 통해 실제 설계 과정에서 주의할 사항을 짚어준다.



IT EXPERT, 임베디드 리눅스

실전 경험이 풍부한 저자가 어드밴텍, 아이트로닉스 정보통신, 제이닷디엔티 등 국내 유수 보드 공급 업체의 보드를 사용해 개발 전단계를 각 플랫폼에서 직접 테스트하면서 집필해 각종 know-how와 know-where가 그대로 녹아 있다.




임베디드 리눅스 시스템 구축 올가이드(근간)
(원제: Building Embedded Linux Systems, O’Reilly)

리눅스 기초부터 개발 환경 구축, 커널 컴파일, 루트 파일 시스템 구축, 패키징, 부트 스트랩 로더 설정, 네트워크 설정, 디버깅 방법에 이르기까지 임베디드 리눅스 시스템 관련 길잡이 구실을 하는 책이다.

리눅스 디바이스 드라이버(근간)

가장 쉽게 접할 수 있는 PC의 프린터 포트를 이용하여 리눅스 디바이스 드라이버의 기본적인 내용을 습득한, 가장 일반적이고 활용도가 높은 디바이스 드라이버를 작성하는 방법을 사례별로 기술함으로써 초보자도 쉽게 이해할 수 있고 현장에서도 바로 응용할 수 있게 도와준다.

온라인 세미나로 제공되는 아래 세미나도 임베디드 분야에 입문하는 이에게는 현장 분위기를, 임베디드 실무자에게는 좀더 심화된 내용을 익힐 수 있는 기회가 될 것이다.
끝까지… 장미빛 미래를 위해…

위에서 장미빛 환상과 험난한 역경이란 타이틀로 본 글을 시작했다. 분명 장미빛과 험난함이라는 야누스적인 면을 모두 갖고 있지만, 분명 도전해 볼만한 분야임이 확실한 곳이 임베디드 시스템이다. 위에서 소개한 몇 권의 책과 세미나는 새로운 분야, 새로운 일을 시작하기 위한 확실한 시발점이 될 수 있을 것이다.
TAG :
댓글 입력
자료실