임베디드 프로그래머 업무 분야에서 여러 분야가 있다고 소개해 드렸었습니다.
그렇다면 어떤 분야를 선택하는 것이 좋을까?
(이번 글 역시 주관적인 내용입니다.)
Chip 제조사(반도체 회사)를 선택해 보자!
Chip 제조사가 무엇인가? 말 그대로 chip을 만드는 회사를 뜻 합니다.
그럼 chip 제조사로 어느 곳들이 있는가?
Qualcomm, Intel, Realtek, Broadcom, Mediatek, Nvidia 등등 있습니다.
위에 소개한 회사들은 큰 회사들에 속하며, 작은 규모의 회사들도 여럿 있습니다.
회사 종류는 구글이나 취업 사이트 등을 통해 알아보시기 바랍니다(너무 많아요…).
왜 chip 제조사를 선택하라 하는가?
임베디드 프로그래머는 임베디드 시스템과 관련된 프로그래밍을 하는 사람들 입니다.
임베디드 시스템에는 각 시스템에 맞는 chip이 사용됩니다.
웬만하면 집 마다 있는 유선 공유기 또는 유무선 공유기로 예를 들어 보면
한번쯤 들어보셨을 iptime 공유기가 있습니다.
Iptime 공유기는 Realtek이라는 반도체(이하 MCU)를 사용하고, MCU에 WiFi, LAN에 관련된 안테나, 커넥터를 연결하거나 추가적으로 WiFi 전용 MCU 또는 module을 연결하여 hardware를 만듭니다. 그러면 프로그래머가 software를 만들어서 사용자가 쓸 수 있게 해줍니다.
??? 그래서요 ???
대부분 임베디드 프로그래머가 취직하는 곳이 iptime 같은 회사 입니다.
제가 설명드린 것에서 realtek이라는 회사가 나왔죠? 즉, iptime 회사가 realtek 회사와 계약해서 realtek mcu를 사서 iptime이 hardware를 만들고 software를 손 보는 작업을 합니다.
??? 무슨 말인지 잘 모르겠는데요 ???
저도… 상세히 설명하려고 보니 더 이상해 진 것 같네요?! ㅎㅎ
장난감 중에 레고 아시죠? 우리는 만들어져 있는 여러 부품을 레고가 출시한 상품대로 만들어도 되고, 아니면 우리 입맛대로 다른 것도 만들어 볼 수 있죠!?
만약 레고가 직접 상품을 출시하지 않고 만들어진 부품만 판매를 한다면 여러 회사가 그 부품을 사들여서 각 회사마다 완성된 제품을 만들어서 팔 수도 있겠죠?
그렇다면 부품을 사들인 회사는 레고라는 원천기술을 가진 회사의 제품을 사서 새로운 제품을 만드는 것 입니다.
즉, 우리가 취직을 위해 알아보는 회사들 대부분은 이미 만들어진 것들을 조합해서 새로운 제품을 만드는 곳 이라는 것 입니다. 그렇다보니 원천기술이라고 할 것도 없고, 시간이 지나면 기존에 사용한 기술을 반복적으로 사용할 뿐 입니다. 물론 다양한 chip을 사서 제품을 만든다면 여러 기술을 쓸 수 있겠지만 회사 규모가 클 수록 내가 속한 부서의 제품만 담당하기 때문에 그 또한 쉽지 않습니다.
그럼 작은 규모에 다양한 제품을 만드는 회사로 가면 되지 않나요?
생각해 보세요. 큰 회사에서 3개 팀으로 나눠서 만들고 있는데 내가 다니는 중소기업은 1개 팀에서 3개 제품을 만들고 있습니다.
… ??? !!!
그렇습니다. 일이 많아 야근은 물론이요. 다양한 기술을 접하지만 깊이가 없고, 제품 출시하고 나면 무엇을 했는지 기억도 안납니다.
현직에 있었던 일들은 다음에 작성해서 알려드릴게요 ㅎ
여담은 여기까지!
자! 그럼 다시!
일반적인 임베디드 제조업 회사가 어떻게 제품을 만드는가? WiFi 공유기를 만든다고 가정하고 설명해 드리겠습니다.
1. A라는 회사가 WiFi 공유기를 만들기로 결심
2. Realtek에 WiFi 공유기에 사용할 chip을 문의하고 구매
3. A 회사의 hardware팀이 회로 설계 등 제품 설계 후 시험용 제품 생산
4. software팀이 WiFi 초기화, 사용자가 쓸 웹 페이지 개발 등 제품 사용을 위한 프로그래밍 진행
5. 개발 단계에서 hardware, software 각 문제 해결
6. 제품 출시
위 단계를 보시면 일반적인 제조업 회사에서는 만들려고 하는 제품의 핵심이 되는 chip을 chip 제조사에 요청하고 구매 합니다. 그렇게 구매하면 chip 제조사에서 chip과 관련된 SDK(Software Development Kit)를 전달해 줍니다. 이 SDK에 chip 사용을 위한 기본적인 software와 설명서가 포함되어 있습니다. Chip 사용을 위한 기본적인 software는 kernel, rootfs 등 핵심적인 source code를 말합니다.
따라서 임베디드 프로그래머는 만들어진 SDK를 가지고 회사에서 원하는 또는 고객이 원하는 제품에 맞게 수정, 디버깅 작업을 합니다.
그렇다보니 chip 회사의 software 구조 및 source code를 분석하고 분석한 것을 바탕으로 다른 기능들이 동작하도록 하는 일이 대부분 입니다.
남이 만들어 놓은 것을 바탕으로 새로운 것을 만드는 것도 대단한 능력은 맞습니다!
그러나 아무것도 없는 상황에 완전 새로운 것을 만드는 것이 더 배울 것이 많지 않을까요!?
프로그래머도 기술자 입니다. 더 깊고 고급진 기술을 익히고 싶어하는 것은 자연스러운 욕구라고 봅니다.
장기적으로 봤을 때도 원천기술을 만들고 다양한 이론과 지식을 가지고 있어야 오래 일을 할 수 있습니다.
이제 막 취직하려는 분들은 chip 제조사 쪽으로 적극적으로 시도해 보시길 권유 드리고, 현직에 계시는 분들 중 더 실력 향상을 원하시는 분들 역시 권유 드리고 싶습니다. 다만, 제 경험상 경력직 중 4~5년 이상 되신 분들은 경력 인정 받고 들어가시기 쉽지 않으실 겁니다.
어쨌든! 시작이 중요하니 임베디드 프로그래머로 살고 싶으신 분들!
Chip 제조사에 꼭! 도전해서 성공하시기 바랍니다!
'프로그래밍 > 임베디드 프로그래머 생활' 카테고리의 다른 글
임베디드 프로그래머 이직 환경은 어떠한가? (0) | 2020.12.06 |
---|---|
글쓴이의 임베디드 프로그래머 생활 (0) | 2020.12.05 |
임베디드 프로그래머에게 도움될 만한 자료들 (0) | 2020.12.03 |
임베디드 프로그래머는 어떤 것들을 알아야 할까? (0) | 2020.12.02 |
임베디드 프로그래머 업무 분야 (0) | 2020.12.01 |