일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 포스코 교육
- 초소형머신러닝
- TensorFlow Lite
- tflite
- bfs문제
- 그리디
- 다이나믹프로그래밍
- sort
- 삼성역량테스트
- 코테 문제
- 컴퓨팅사고
- 자료구조
- 포스코 AI교육
- 삼성코딩테스트
- 삼성역테
- dfs
- 임베디드 딥러닝
- dfs문제
- 코딩테스트
- tinyml
- 알고리즘
- 포스코 ai 교육
- 영상처리
- DP
- 코테
- BFS
- DP문제
- 삼성코테
- MCU 딥러닝
- 딥러닝
- Today
- Total
코딩뚠뚠
[임베디드] 임베디드 시스템과 임베디드 개발자 본문
임베디드 시스템은
공학계열 학생,사람들에게 꽤나 친숙한 단어임에 비해 확실히 어떤 분야인지 아는 사람은 많지 않다고 생각한다.
예를 들면 내가 대학입학 면접을 볼 때도 임베디드 시스템에 관심있다고 한 기억이 난다.
면접관은 임베디드 시스템이 뭔지 아냐는 질문을 했고 나는 핸드폰이 카메라, TV 등 여러 기능을 할 수 있게 하는것이 임베디드 시스템이라고 말했었다.
어디서 서치를 해서 그렇게 알고 있었는지는 모르겠지만 부끄럽게도 너무나도 얕고 아무것도 모르는듯한 답변이었다.
임베디드(Embedded) 의 사전적 의미와 임베디드 시스템
사전적 의미는 '간직하다' '내장하다' '끼워넣다' 등 이다.
전자제품이나 기기 내부에 어떠한 시스템을 내장하여 특정 기능을 수행하는 것으로 생각할 수 있다.
이러한 운영체제를 담는 그릇이 마이크로프로세서,CPU 등이고 이렇게 완성된 시스템을 임베디드 시스템이라고 한다.
이런 임베디드 시스템은 고등학생때 내가 생각했던 핸드폰의 전화기능 + TV + 카메라 뿐만 아닌 냉장고, 비행기, 인공위성 등 모든 장비에 들어가게 된다.
여기서 임베디드 소프트웨어의 특징은 Edge단 이라는 것이다.
전체적인 시스템이 클라우드 단에서 동작한다고 해도 입출력은 Edge 단에서 행해진다.
따라서 사용자에 가까운 특성때문에 동작이 신속해야한다 -> C, 어셈블리어 사용하는 경우가 많다
관련해서 이후에 리눅스 커널에 대해 포스팅을 올릴 예정이다.
임베디드 개발자는
임베디드개발자는 말그대로 임베디드시스템을 개발하는 개발자이다.
이들을 큰 분류로 나눈다면 펌웨어개발자와 하드웨어개발자로 나눌 수도 있을것이다.
여기서 펌웨어란 뭘까?
펌웨어는 임베디드시스템에서 구현되는 소프트웨어이다.
통상적으로 펌웨어는 소프트웨어와 하드웨어의 중간에 위치하고 있다고도 한다.
만약 하드웨어로 모든 기능을 구현한다면 하드웨어만 ON 시키면 그 동작을 수행하게 되므로 동작 속도가 빠르겠지만, 각 규격에 맞는 부품이 모두 필요할 것이므로 필요한 부품의 수가 많아질 것이고 기능의 확장 및 수정이 쉽지 않을 것이다.
펌웨어는 이런 하드웨어를 다룰 수 있는 소프트웨어로 하드웨어를 직접 제어하기 때문에 일반적인 PC를 다루는 코딩,소프트웨어보다 좀 더 하드웨어 친화적이라고 할 수 있다.
-> 새로운 프로그래밍 체계를 익혀야 할 것이다.
뭘 하게되나
하드웨어에 가까운 Low Level 단에서의 개발은 제품의 신뢰도에 큰 영향을 미칠 수 있다.
크게 펌웨어개발 / Kernel개발 / 시스템&플랫폼 개발을 하게 될 수 있고
참고 : https://mincoding.co.kr/developer/?mod=document&uid=109&pageid=1
이를 위해서는 가장 기본적으로 아래에 대한 이해가 필요하다.
- 컴파일 관련(object file, gcc, make 등)
- OS
- 통신
- 리눅스커널(device driver 등)
- 하드웨어(부품, 회로 등)
이외에도 많은 부분이 있다.
임베디드 개발자의 전망
요즘 핫한 개발자는 ML, DB, Cloud 관련 개발자로 고전적인 분야인 임베디드 개발자와는 거리가 멀다.
하지만 임베디드시스템은 Device 가 있는 분야라면 필수적으로 필요하기 때문에 수요가 꾸준한 분야이기도 하다.
유행을 타지않아 전문성을 갖춘다면 직업을 잃을 걱정은 하지않고 보수도 높다고 한다.
임베디드개발자를 필요로 하는 기업은?
여러 대기업은 Device 를 가지고 있다.
- 현대자동차 : 차량 제어, AI, IT 등
- 방산업체 : 미사일, 발사시스템 등
- 삼성전자 : FW개발, 전자기기제어 등
등 매우 많은 분야의 회사에서 임베디드 개발자를 꾸준히 필요로 한다.
'공부 > 임베디드' 카테고리의 다른 글
[임베디드] TCP/IP 프로토콜 정리 (0) | 2021.09.07 |
---|---|
[임베디드] RS-232 시리얼통신에 대해 (1) | 2021.09.06 |
[임베디드] CAN 통신이란? (0) | 2021.09.06 |
[임베디드] 임베디드시스템과 AI (0) | 2021.08.30 |
[임베디드] 임베디드시스템 SW 개발과정 (0) | 2021.08.17 |