임베디드 엔지니어 교과서를 읽고 작성하였습니다.
SECTION 01 임베디드 시스템이란?
◻ 임베디드 시스템의 중요성
임베디드 시스템
: 마이크로컴퓨터(microcomputer) or 마이크로컨트롤러(microcontroller)를 탑재한 기계나 장치
가정 🏡 | 이동 수단 🚗 | 기업, 공장, 병원 등 🏭 | ||
인터폰 조명 에어컨 공기청정기 TV TV 레코더 라디오 뮤직 플레이어 스피커 리모컨 게임기 PC 네트워크 장비 전화기 |
디지털 카메라 비디오 카메라 냉장고 전자레인지 토스터 식기 세척기 핫 플레이트 가스레인지 세탁기 청소기 비데 급탕기 만보계 혈압계 |
자동차 전기 자동차 오토바이 전철 승차권 발매기 개찰기 전자 안내판 스크린 도어 신호기 버스 버스 정류장 택시 무선기 자동차 내비게이션 차량 블랙박스 |
출입 관리 시스템 자동문 엘리베이터 에스컬레이터 복사기 프린터 프로젝터 디스플레이 PC 서버 스캐너 종이분쇄기 내선 전화 시스템 자동 운반 로봇 |
ATM 화폐 단말기 POS 단말 커피 메이커 프라이어 대형 냉장고 IC 카드 리터 바코드 리더 감시 카메라 시스템 의료 기기 공작 기기 건설 기기 측정기 제조 지원 로봇 |
🔼 사회에서 빼놓을 수 없는 임베디드 시스템
◻ 임베디드 시스템과 PC, 서버는 어떻게 다른가?
컴퓨터나 서버 등은 사람이 키보드 같은 입력 장치를 사용하여 정보를 입력하거나, 스토리지에 보관된 정보 또는 네트워크를 경유해서 입력된 정보를 처리함
임베디드 시스템은 대부분 센서를 사용하여 기계나 장치의 외부에서 정보를 얻으며, 엑추에이터를 사용해 외부에 대해 해야 할 행동 등의 피드백을 전달하는 식으로 일정 부분 자동적으로 동작
-> 액추에이터(Actuator) : 일반적으로 제어 기기에서 출력된 신호를 바탕으로 대상을 물리적으로 동작 시키거나 제어하는 데 쓰이는 기계 장치
PC를 '정보 처리에 특화된 임베디드 시스템'으로 볼 수 있음
=> 임베디드 시스템과 PC나 서버, 스마트폰은 본질적으로는 동일한 것!
SECTION 02 임베디드 시스템의 특징
임베디드 시스템의 핵심 목표
- 안전한 사회를 만들기 : 의료기기, 운전자 보조 시스템(ADAS)
- 편리함과 쾌적함 : 스마트폰, 자동차나 자전거의 공유, 캐시리스 결제
NTCR (Nature, Time, Constraint, Reliability)
임베디드 시스템의 공통된 특징 4가지
◻ Nature : 자연 법칙의 취급
IPO (Input, Processing, Output)
: 임베디드 시스템은 외부 세계(시스템의 외부)의 변화를 감지하여 마이크로컴퓨터로 처리해 결과를 외부 세계로 피드팩함
ex) 자동문 (인체 감지 센서의 기준값 설정 및 오류 검출 방지의 처리, 액추에이터 제어)
제어 모델
: 자동차나 로봇 등의 모션을 동반하는 시스템에서는 외부 세계를 어떻게 감지하고 결과를 외부 세계에 어떻게 피드백할지를 제어하는 모델
제어 모델에 의한 제어는 임베디드 시스템과 범용 컴퓨터만을 사용하는 정보 시스템과의 커다란 차이점임
◻ Time : 실시간성의 요구
임베디드 시스템은 전용 기기로서의 목적을 실현하기 위해 제작된 것이기 때문에 실시간성이 요구됨
- 하드 리얼타임 (Hard Realtime) : 수 밀리초의 데드라인을 확실하게 준수해서 동작할 것을 요구
시스템의 성능이 사용자나 장치의 안전성에 영향이 있는 경우
ex) 자동차 엔진의 연소 제어, 의료기기, 자동차 등의 운송 장비, 비행기나 위성
- 소프트 리얼타임 (Soft Realtime) : 재생이나 조작에 대한 반응이 다소 늦어도 허용됨
사용자 조작 또는 네트워크 경유 기능을 제공하는 기기에서 요청됨
ex) 뮤직 플레이어
◻ Constraint : 엄격한 제약 사항
임베디드 시스템은 전용기기로 제공되기 때문에 엄격한 제한 조건이 부여된다.
- 무엇을 제어하는지 명확하므로 쓸데없는 처리 능력이나 메모리 용량 불필요
- 전용기기이기 때문에 소비 전력이나 발열 문제에 대한 검토도 중요
- 진동이나 먼지 등 가혹한 이용 환경이라는 제약 사항이 추가되는 경우도 있음
◻ Reliability : 높은 신뢰성
'어떤 아이템이 주어진 조건에서 규정된 시간 내에 요구된 기능을 완료해 낼 수 있는 성질'
임베디드 시스템은 버그나 고장 없이 이용할 수 있어야 한다는 점이 요구됨
SECTION 03 임베디드 소프트웨어란?
◻ 소프트웨어의 종류
임베디드 소프트웨어 Embedded Software
: 임베디드 시스템에 탑재하여 마이크로컴퓨터에서 동작하는 프로그램
하드웨어와 애플리케이션 소프트웨어의 사이에 있다는 의미로 펌웨어(Firmware)라고도 불림
임베디드 소프트웨어 = 임베디드 시스템에 내장된 운영체제 + 펌웨어
◻ 임베디드 소프트웨어는 하드웨어를 직접 제어한다
임베디드 소프트웨어가 윈도우나 리눅스 등의 운영체제를 동작시켜 기업용 소프트웨어나 애플리케이션 소프트웨어가 동작하는 환경을 지원하기도 한다.
임베디드 소프트웨어는 기계나 장치에 내장된 채 제공됨
제품의 특징을 실제로 구현하는 것은 임베디드 소프트웨어라고 말할 수 있음
SECTION 04 임베디드 소프트웨어 엔지니어의 업무
◻ 임베디드 소프트웨어 엔지니어가 속하는 조직
하는 일
-사양을 고려해서 설계한 후 프로그래밍
-소프트웨어의 테스트와 하드웨어를 포함한 시스템 테스트
-개발 및 검증 환경을 구축하는 일
임베디드 시스템이나 임베디드 소프트웨어의 개발에 관한 전문 지식을 갖고 이를 실천해 사회에 유용한 것을 제공하는 것!
◻ 임베디드 소프트웨어의 규모에 따라 조직은 변한다
임베디드 소프트웨어 엔지니어가 속하는 조직
기계나 장치를 개발하는 제조사
제조사와 함께 개발 작업을 하는 시스템 통합 (System Integration, SI) 업체
소프트웨어 개발을 전업으로 하는 소프트웨어 하우스 기업
일을 위탁받는 프리랜서
기술자를 파견하는 IT 파견 회사
조직 | 제조사 | 제조사의 자회사 Sler |
소프트웨어 하우스 프리랜서 |
|
주요 담당 프로세스 | ➡ 시스템 설계 ⬅ 시스템 테스트 |
➡ 소프트웨어 설계 ⬅ 결합 시스템 테스트 |
➡ 프로그래밍 ⬅ 단위 결합 테스트 |
|
요구되는 스킬 | ⬇ 소프트웨어 개발 기술 ⬆ 제품 도메인 지식, 요소 기술 |
소프트웨어 개발 기술 ⬆ 제품 도메인 지식, 요소 기술 ⬇ |
🔼 임베디드 소프트웨어 개발 기업의 업무 분담
◻ 하청이 아닌 프로 서비스
임베디드 시스템은 하드웨어를 포함해 모듈별 개발이 이루어짐. 그리고 그것들을 후반에 결합함으로써 실제 기계나 장치가 완성됨
임베디드 소프트웨어는 기계나 장치의 특성으로부터 신뢰성이나 안전성을 확보하기 위한 예외 및 오류처리나 드문 사례의 처리가 필요한 경우가 있음
임베디드 소프트웨어 엔지니어는 하드웨어와 밀접하게 관련된 드라이버 부분이나 공용 라이브러리로부터 자동 테스트 환경 구축, 안드로이드 등 특정 운영체제에 이르기까지 수많은 전문 분야에서 광범위하게 활동함
💡 자신만의 특기 분야를 찾아 경력을 쌓는 것도 하나의 길!
SECTION 05 임베디드 소프트웨어 엔지니어의 직종
임베디드 시스템 개발
임베디드 소프트웨어 엔지니어 : 사람이 가장 많이 모인 직종
하드웨어 엔지니어 : 하드웨어 설계 담당
도메인 스페셜리스트 : 기계나 장치의 전문가
테스트 엔지니어 : 임베디드 시스템의 고기능화나 높은 안전성 및 신뢰성 요구에 따라 증가함
일본경제산업성의 외부 단체인 독립행정법인 정보기술 추진 기구(Information-technology Promotion Agency, IPA)가 임베디드 기술 스킬 표준(Embedded Technology Skills Standard, ETSS)에 공개하였다.
🔽임베디드 스킬 표준(ETSS)에서 정의하는 직종
직종 이름 | 책임 | |
책임의 범위 | 책임의 예 | |
프로덕트 매니저 | 상품 개발 사업 | 수익, 공헌 |
프로젝트 매니저 | 프로젝트 | 품질, 비용, 납기 |
시스템 아키텍트 | 시스템 구조, 구현 방법 | 개발의 효율성 및 품질 |
소프트웨어 엔지니어 | 소프트웨어 개발의 성과물 | 품질, 생산성, 납기 |
테스트 엔지니어 | 시스템 검증 작업 | 품질, 테스트 효율성, 테스트 납기 |
브리지 SE | 외부 조직과의 공동 작업 | 품질, 비용, 납기 |
도메인 스페셜리스트 | 기술의 전개 | 제품, 상품 개발의 효율성 |
개발 프로세스 개선 스페셜리스트 | 조직의 개발 프로세스 개선 실시 | 프로세스 개선 효과 |
개발환경 엔지니어 | 개발환경의 품질 | 사용성, 작업 효율 |
QA 스페셜리스트 | 프로세스 품질 프로덕트 품질(기업에 따라 다름) |
출하 후의 품질 문제 |
임베디드 스킬 표준에서는 초급 레벨(레벨 1, 2), 중급 레벨(레벨 3, 4), 고급 레벨(레벨 5, 6, 7)의 3 단계로 구분하며, 초급과 중급 등의 레벨을 구체적으로 표현 및 정의한다.
임베디드 소프트웨어 개발에 관한 지식이나 경험이 없이 개발 현장에 배치될 때는 초급부터 시작함
혼자 작업이 가능한 수준이 되면 중급 레벨이 되며, 중급 클래스가 된 후의 직무 경로(career path)에는 여러 선택지가 있다.
🔽 임베디드 소프트웨어 엔지니어의 직무 경로
직종 이름 | 역할 |
임베디드 소프트웨어 엔지니어 | 보다 높은 레벨의 엔지니어 |
프로젝트 매니저 | 개발 프로젝트의 매니저 |
임베디드 시스템 아키텍트 | 하드웨어도 포함한 시스템 전체의 엔지니어 |
임베디드 테스트 엔지니어 | 테스트에 관한 보다 높은 레벨의 엔지니어 |
도메인 스페셜리스트 | 기계나 장치의 도메인에 관한 기술 전문가 |