회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
나신입씨는 올해 가을 코로나19 확산에도 불구하고 국내 굴지의 기업인 S전자에 합격했습니다. 컴퓨터과학과를 우수한 성적으로 졸업한 게 도움이 됐습니다. 약 3개월의 교육 후 나씨는 드디어 첫 부서에 배치받았습니다. 회사 내에서도 전도유망한 반도체사업부에 가고 싶었지만, 결과는 '생활가전사업부'였습니다. 냉장고와 에어컨, 세탁기를 만드는 부서라는 것만 알았지 본인이 정확히 무엇을 해야하는지 감이 오질 않았습니다. 나씨가 부서에 출근한 첫날 나씨의 사수 김 대리는 나씨에게 책 한 권을 건넸습니다. '임베디드 시스템의 첫걸음'이라는 책이었습니다. 나씨는 직감했습니다. 임베디드로부터 고통을 받을 앞날을 말입니다.
임베디드 시스템과 펌웨어. 대학에서 컴퓨터 관련 학과를 나왔다면 한 번쯤은 들어봤을 겁니다. 그러나 그 개념을 명확하게 아는 사람은 많지 않습니다. 적어도 나씨처럼 임베디드 시스템이 자신의 일이 되기 전에는 말이지요. 이번 글에서는 나씨를 괴롭힐 임베디드 시스템은 무엇이고, 펌웨어는 무엇인지 전체적인 설명을 드리겠습니다.
그러나 임베디드 시스템은 하나의 목적을 가지고 설계됩니다. 나씨가 개발해야 할 세탁기를 생각해 봅시다. 세탁기는 옷을 세척하는 게 목적입니다. 일반 세탁을 할 건지, 손빨래를 할 건지, 이불 빨래를 할 건지, 헹굼을 몇 번 할 건지, 물의 온도는 어떻게 할 건지 등은 세탁이라는 목적 아래 구현될 기능입니다. 사용자는 기능을 선택해 버튼을 누르면 되고, 현재 진행 상태를 LCD나 LED 등을 통해 확인할 수 있습니다. 이처럼 임베디드 시스템은 정해진 용도(세탁)로만 기능을 제공합니다. 임베디드 시스템은 일반 PC가 아닌 특수한 목적을 가진 가전제품을 구성하는 시스템이라 보면 됩니다.
쉽게 정리하자면 이렇습니다. 내장형이라는 단어에 혼동하시면 안 됩니다. 범용의 반대말이라고 보시면 됩니다. 차라리 비범용 컴퓨터라고 규정했다면, 헷갈리는 게 줄었을 겁니다. 오래된 세탁소 가운데 상호가 '컴퓨터 세탁'으로 돼 있는 곳을 보셨을 겁니다. 여기서 컴퓨터는 바로 임베디드 시스템을 말합니다. 오래 전부터 세탁소 사장님은 임베디드 시스템의 정의를 명확히 알고 있었습니다.
그러나 만만히 볼 일이 아닙니다. 임베디드 시스템을 구현해야 하는 나씨에게는 앞으로 고통의 시간이 남았습니다. PC에서 범용 목적의 프래그래밍에 익숙한 나씨는 임베디드 시스템 구현에 적합한 코딩과 구현 방식을 처음부터 배워야 합니다. 기존 PC와 개발 환경이 완전히 다르기에 컴파일러(인간이 작성한 컴퓨터 언어를 기계가 이해할 수 있는 기계어로 전환해주는 작업)에 필요한 정보를 나씨가 직접 설정하거나 프로그램 내에서 직접 처리해야 합니다. 게다가 PC와는 달리 임베디드 시스템이 구현될 전자기기는 저마다 특징과 성능 등이 모두 다르기에 그에 최적화된 프로그램을 만드는 것은 숙련된 프로그래머도 쉽지 않은 일입니다.