오늘은 컴퓨터공학과 3학년,혹은 4학년 전공교과목에 있는 임베디드 시스템에 대하여 심층적으로 알아보겠습니다. 과연 임베디드 시스템이란 무엇이고, 어떤분야에 임베디드 시스템이 사용되는지 파악해보고 내 적성이 이 분야에 맞을지도 한번쯤 생각해 보는 시간을 가져봅니다.
임베디드 시스템
임베디드 시스템의 정의
단순하게는 특정 목적을 가지고 장치 내부에 설치된 컴퓨팅 시스템을 말합니다. 특정목적이란 다용도로 사용가능한 범용 PC가 아닌, 이를테면 나의 아파트에 있는 전등을 끄고 킨다든지, 스마트 농장에서 자동으로 물을 주고 온도를 조절한다든지, 스마트 TV로 인터넷을 하고 동영상을 본다든지, ECU를 통해 자동차를 제어한다든지 하는 것들입니다. 결국 임베디드 시스템이란 특정한 한가지의 목적을 위해 프로그래밍이 가능한 컴퓨팅 시스템입니다. 최적화된 하드웨어 설계 및 소프트웨어 구성을 통해 빠르고 안정적인 구동은 필수 요소입니다.
임베디드 시스템의 종류
pc기반(x86) 임베디드 시스템
임베디드(Embedded) 리눅스 혹은 임베디드 윈도우(윈도우 CE) 등을 들어본적이 있나요? 리눅스와 윈도우 기반의 최적화된 시스템에서 사용하는 임베디드OS들 입니다. PC에서 사용하는 X86 시스템을 작고 컴팩트 하게 만들어서 원격제어나 보안설비등에 많이 사용됩니다. 이경우 OS차원의 API를 제공하여 개발자가 신경써야 할 부분이 최소화 됩니다. 하지만 커널의 사이즈가 크고 고사양의 하드웨어가 요구되는 경우가 많습니다.
마이크로프로세서, MCU 기반 임베디드 시스템
범용 컴퓨팅 하드웨어가 아닌 마이크로프로세서나 MCU(Micro Controller Unit)로 설계되어 그에 맞는 OS 소프트웨어 혹은 RTOS로 구성된 시스템입니다. RTOS처럼 가벼운 펌웨어를 주로 사용하게 되며, 이경우 이전에는 어셈블리어도 자주 사용되었으나 현재는 주로 C, C++, 파이썬, C#. Dart 등의 언어를 이용하여 프로그래밍하게 됩니다. 커널의 사이즈가 작고 특정목적 라이브러리를 사용하여 작은 리소스로도 작동이 가능합니다.
임베디드 시스템 개발과정
하드웨어와 소프트웨어 선택
- 사용할 반도체 칩을 선택한다
- 부트로더(부팅)시스템을 설계한다
- 임베디드OS(커널) or RTOS를 선정한다
- 임베디드용 Application을 개발한다
- 테스트 및 디버깅
개발자의 요구 능력 수준
대게 반도체 칩을 선택하면 해당회사에서 부트로더와 커널에 대한 부분을 한꺼번에 제공하는 경우가 많습니다. 그래서 개발자는 그러한 패키지 자료를 해석하여 실제 필요한 특정한 목적을 수행하기 위한 펌웨어를 만들고 그 응용sw까지 개발까지 하게 됩니다. 그 때문에 임베디드 시스템 개발자가 되기 위해서는 하드웨어와 소프트웨어, 네트워크 등 어느 하나라도 등한시 할수 없습니다. 게다가 디자인 요소라던가 기계설계등 타분야 전문가와의 협업도 중요한 부분입니다. 임베디드 시스템 설계자는 개발자중에 최상위 레벨이라고 인정됩니다.
진출분야 와 전망
이미 위에서 언급한바와 같이 거의 모든 산업군에서 임베디스 시스템이 사용되고 있습니다. 가전제품을 만들어 판매하는 삼성 전자,LG전자, 자동차를 만드는 현대자동차, 기아자동차, 네트워크를 통해 시스템을 제어하는 RFID분야의 회사, 공장 자동화, 물류 자동화 시스템을 만드는 회사, 산업용 로봇을 만드는 회사, 각종 휴대용 멀티미디어 장치나 게임기 네비게이션 제작회사등 진출할 수 있는 분야는 정말 많습니다. 능력있는 인력이 항시 부족한 분야로 실력만 갖추면 좋은 연봉과 대우를 받으며 취업이 가능합니다.
'컴퓨터공학' 카테고리의 다른 글
공부에 필요한 시간? 일만 시간의 법칙 (0) | 2022.10.02 |
---|---|
홍익대 컴퓨터공학과 장점, 코딩 능력 수준 (0) | 2022.09.12 |
정보처리기사 나이대별 합격전략 (0) | 2022.09.07 |
동국대 컴퓨터공학과 수준, 코딩 능력 (0) | 2022.08.31 |
컴퓨터공학과 있는 서울소재 대학 (0) | 2022.08.23 |
댓글