[EETB] #1 임베디드 소프트웨어 엔지니어의 업무

문연수·2022년 8월 26일
1

EETB

목록 보기
1/9
post-thumbnail

 이하의 글은 필자가 임베디드 엔지니어 교과서 (와타나베 노보루 & 마키노 신지 지음, 정인식 옮김, 제이펍 출판사) 를 읽고 그 내용을 정리한 글이다.

1. 임베디드 시스템이란?

  • 임베디드 시스템은 마이크로컴퓨터(microcomputer)를 탑재한 기계나 장치를 말한다.
    -> 마이크로컴퓨터(microcomputer): 마이크로프로세서를 중앙 처리 장치로 사용하는 컴퓨터를 가리킨다.
    -> 마이크로프로세서(microprocessor): 컴퓨터의 중앙 처리 장치를 말한다.

- 임베디드 시스템과 PC, 서버는 어떻게 다른가?

  • 컴퓨터나 서버 등은 사람이 키보드 같은 입력 장치를 사용하여 정보를 입력하거나 스토리지에 보관된 정보 또는 네트워크를 경유해서 입력된 정보를 처리한다.
  • 임베디드 시스템은 대부분 센서를 사용하여 기계나 장치의 외부에서 정보를 얻으며, 엑추에이터를 사용해 외부에 대해 해야 할 행동 등의 피드백을 전달하는 식으로 일정 부분 자동적으로 동작
    -> 엑추에이터(Actuator): 일반적으로 제어기기에서 출력된 신호를 바탕으로 대상을 물리적으로 동작 시키거나 제어 기술에 쓰이는 기계 장치이다. (아마 모터 같은 것들을 아닐까?)

2. 임베디드 시스템의 특징

임베디드 시스템의 핵심 목표:

  1. 안전한 사회 만들기: 의료기기, 운전자 보호 시스템(ADAS)
  2. 편리함과 쾌적함: 캐시리스 결재, 자동차나 자전거 공유, 스마트폰

이러한 임베디드 시스템에는 여러가지 공통된 특징이 있다.

- 1. Nature: 자연법칙의 취급

  • 임베디드 시스템은 외부 세계(시스템의 외부)의 변화를 감시하며 마이크로 컴퓨터로 처리해 결과를 외부 세계로 피드백 한다. (IPO, Input > Process > Output)
    e.g.) 자동문 (사람의 감지 > 시간 및 거리에 따른 임계치 파악 -> 엑추에이터를 통한 문 이동)
  • 자동차나 로봇 등의 모션을 동반하는 시스템에서는 외부 세계를 어떻게 감지하고 결과를 외부 세계에 피드백할지를 제어하는 제어 모델의 설계가 시스템의 핵심 기술이 된다.

- 2. Time: 적시성(책에선 실시간성)의 요구

임베디드 시스템의 실시간성은 기계에 따라 요구되는 속도나 속도를 보정하는 수준이 다르다:

  1. 하드 리얼타임(Hard Realtime): 자동차 엔진의 연소제어와 같이 수 밀리초의 데드라인을 확실하게 준수해서 동작함을 보장
  2. 소프트 리얼타임(Soft Realtime): 뮤직 플레이어와 같이 재생이나 조작에 대한 반응의 늦음을 허용.

- 3. Constraint: 엄격한 제한사항

임베디드 시스템은 전용기기로 제공되기 때문에 엄격한 제한 조건이 부여된다.

- 4. Relability: 높은 신뢰성

신뢰성이란... 어떤 아이템이 주어진 조건에서 규정된 시간 내에 요구된 기준을 완료해낼 수 있는 성질이다.


이들의 앞 글자를 따서 NTCR 이라 부른다.

3. 임베디드 소프트웨어란?

- 1. 임베디드 소프트웨어

  • 임베디드 소프트웨어는 임베디드 시스템에 탑재하여 마이크로컴퓨터에서 동작하는 프로그램이다.
  • 하드웨어와 애플리케이션 소프트웨어의 사이에 있다는 의미로 펌웨어(Firmware)라고도 불린다.
  • 임베디드 소프트웨어 = 시스템에 내장된 운영체제 + 펌웨어

- 2. 임베디드소프트웨어는 하드웨어를 직접 제어한다.

  • 임베디드 소프트웨어가 윈도우나 리눅스 등의 운영체제를 동작시켜 기업용 소프트웨어나 애플리케이션 소프트웨어가 동작하는 환경을 지원하기도 한다.
Application
Operating System
Firmware
Hardware

4. 임베디드 소프트웨어 엔지니어의 업무

- 1. 임베디드 엔지니어가 속하는 조직

  • 임베디드 소프트웨어를 개발하는 기술자를 임베디드 소프트웨어 엔지니어 라고 부른다.
  • 사양을 고려해서 설계한 후 프로그래밍을 하고, 소프트웨어의 테스트와 하드웨어를 포함한 시스템 테스트를 한다. 게다가, 개발 및 검증 환경을 구축하는 일도 함.
  • 엔지니어 는 공학에 관한 전문 지식과 실천 능력을 갖춘 전문가이다.

- 2. 임베디드 소프트웨어의 규모에 따라 조직은 변한다.

  • 시스템 통합(System Integration, SI) 업체: 기계나 장치 제조사 뿐만 아니라, 제조사와 함께 개발 작업을 하는 업체
  • 소프트웨어 하우스 기업: 소프트웨어 개발을 전업으로 하는 기업
  • IT 파견 회사: 기업에 속해 있지 않은 프리랜서가 일을 위탁받는 경우나 기술자를 파견하는 회사.
조직제조사제조사의 자회사
<----------
SI
소프트웨어 하우스
<----------
프리랜서
주요 담당 프로세스시스템 설계 -->
시스템테스트
소프트웨어 설계 -->
<-- 결합 시스템 설계
프로그래밍
<-- 단위 결합 테스트
요구되는 스킬제품 도메인 지식
요소 기술
<--- 둘 다 필요 --->소프트웨어 개발 기술

- 3. 하청이 아닌 프로 서비스

  • 대규모 임베디드 시스템은 하드웨어를 포함해 모듈 별로 개발이 이루어진다. 그리고 그것들을 후반에 결합함으로써 실제 기계나 장치가 완성된다.
  • 임베디드 소프트웨어는 기계나 장치의 특성으로부터 신뢰성이나 안전성을 확보하기 위한 예외 및 오류처리나 드문 사례의 처리가 필요한 경우가 있다.
  • 임베디드 소프트웨어 엔지니어는 하드웨어와 밀접하게 관련된 드라이버 부분이나 공용 라이브러리로부터 자동 테스트 환경구축, 안드로이드 등 특정 운영체제에 이르기까지 수 많은 전문 분야에서 광범위하게 활동한다.

그 중에서 자신만의 특기 분야를 찾아 경력을 쌓는 것도 하나의 일이다.

직업 정신을 가지자! 본인의 분야를 개척하자!

5. 임베디드 소프트웨어 엔지니어의 직종

 일본경제산업성의 외부 단체인 독립행정법인 정보기술추진기구(Information-technology Promotion Agency, IPA)가 임베디드스킬표준(Embedded Technology Skills Standard, ETSS)에 공개하였다.


직종 이름책임의 범위책임의 예
프로덕트 매니저상품 개발 사업수익, 공헌
프로젝트 매니저프로젝트품질, 비용, 납기
시스템 아키텍트시스템 구조, 구현 방법개발의 효율성 및 품질
소프트웨어 엔지니어소프트웨어 개발의 성과물품질, 생산성, 납기
테스트 엔지니어시스템 검증 작업품질, 테스트 효율성, 테스트 납기
브리지 SE외부 조직과의 공동 작업품질, 비용, 납기
도메인 스페셜리스트기술의 전개제품, 상품 개발의 효율성
개발 프로세스 개선 스페셜리스트조직의 개발 프로세스 개선 실시프로세스 개선 효과
개발환경 엔지니어개발환경의 품질사용성, 작업 효율
QA 스페셜리스트프로세스 품질, 프로덕트 품질출하 후의 품질 문제

  • 임베디드 스킬 표준에서는 초급 레벨, 중급 레벨, 고급 레벨의 3 단계로 구분하며, 초급과 중급 등의 레벨을 구체적으로 표현 및 정의한다.
  • 임베디드 소프트웨어 개발에 관한 지식이나 경험이 없이 개발 현장에 배치될 때는 초급부터 시작하여 혼자 작업이 가능한 수준이 되면 중급 레벨이 되며, 중급 클래스가 된 후의 직무 경로(career path)에는 여러 선택지가 있다.
직종 이름역할
임베디드 소프트웨어 엔지니어 (하이 레벨)보다 높은 레벨의 엔지니어
프로젝트 매니저개발 프로젝트의 매니저
임베디드 시스템 아키텍트하드웨어도 포함한 시스템 전체의 엔지니어
임베디드 테스트 엔지니어테스트에 관한 보다 높은 레벨의 엔지니어
도메인 스페셜리스트기계나 장치의 도메인에 관한 기술 전문가


 한국에는서는 왜 일본처럼 임베디드 소프트웨어 엔지니어의 직종을 구분해서 관리하지 않는걸까? 예전부터 궁금했던 정보였는데 너무나 잘 정리되어 있어서 필자에겐 생각보다 많은 도움이 되었다. 대규모 프로젝트의 전체적인 프로세스가 그려진다.

출처

[Book] 임베디드 엔지니어 교과서, 와타나베 노보루, 마키노 신지 지음, 정인식 옮김, 제이펍 출판사
[Site] https://ko.wikipedia.org/wiki/마이크로컴퓨터
[Site] https://ko.wikipedia.org/wiki/마이크로프로세서

profile
2000.11.30

0개의 댓글