임베디드 시스템
임베디드 시스템은 마이크로컴퓨터(또는 마이크로컨트롤러)가 탑재된 컴퓨터 시스템 전반을 말한다.
현대 문명을 이루는 대부분의 기계는 임베디드 시스템의 제어를 받아 복잡한 동작을 수행하며, 사물인터넷, 스마트폰 및 스마트 워치 등의 모바일 플랫폼, 키오스크 시스템 같은 하위 분류로 나뉜다.
특징
임베디드 시스템으 다음 4가지 특징을 만족한다.
- 자연 법칙 - Input - Processing - Output 과정을 반복하며 외부 세계의 변화에 감지해 작동 결과를 피드백한다. 범용 컴퓨터와 달리 이 작업을 수행할 제어 모델에 따라 임베디드 시스템의 용도가 철저히 고정된다.
- 실시간성 - 사용자의 안전성을 보장해야 하는 각종 의료 기기, 에어백 등의 안전 장치 등에 적용되어 입력 즉시 반응해야 하는 하드 리얼타임과 MP3 플레이어나 휴대폰 등 다소 반응이 느려도 괜찮은 소프트 리얼타임으로 구분된다.
- 제약 조건 - 특정 성능이 보장되는 선에서 최대한 저전력, 저발열로 동작해야 하며, 가혹한 이용 환경까지 감안해 기기의 내구성과 성능을 최적으로 설정한다.
- 신뢰성 - 주어진 조건에서 반드시 규정된 시간 내에 요구된 기능을 완료해야 하므로 버그를 용인할 상황이 절대 있어선 안 된다.
임베디드 시스템에 기본 탑재된 소프트웨어는 흔히 하드웨어와 소프트웨어 사이에서 작동한다는 의미에서 펌웨어(firmware)라고 부른다.
개발 업계
SI(System Intergration) 업계는 업무량이 많은 편이다. 제품 요구 사항 구현에 버그가 없어야 하니 코드를 짤 때 꼼꼼해야 하고, 거기에 더해 빠른 작업 속도를 내야 제품 의뢰하는 제조사에게 제때 물건을 줄 수 있다. 그래서 야근 빈도가 높으며 제조사+대형 SI 기업이 제품 검증을 하고 소형 SI 기업과 프리랜서 엔지니어가 코드를 짜는 원청-하청 분업 구조가 필연에 가까운데, 대한민국 내에서는 특유의 기업 내부 및 기업 간 갑질 문제가 있어서 엔지니어들의 이쪽 업계 진출은 선호도가 낮다. 그래서 고효율의 작업에 필요한 능숙한 엔지니어들이 의외로 희귀하며 대한민국 IT 기업의 세계적 규모의 소프트웨어 플랫폼 장사가 전무한 이유로 이걸 지적하는 의견도 많다.