프로그래밍/임베디드 프로그래머 생활

임베디드 프로그래머로써 한 업무들(2)

solution online 2020. 12. 15. 20:47
728x90
반응형

! 지난번 글에 이어 이번 글에서 제가 업무들에 대해 소개해 드리겠습니다.

 

1. 업무

- bootloader 수정

- kernel 수정(or device driver 수정)

- daemon 개발

2. 업무

- web page 개발

- 양산 프로그램 개발

 

Daemon 개발에서 daemon 이란 windows 프로그램 또는 application 이라고 보시면 됩니다.

, linux상의 application daemon 이라고 부릅니다.

비록 UI 없지만 윈도우에서 실행되는 프로그램처럼 다양한 기능을 하는 application linux에서도 만들 있습니다.

Daemon linux 부팅이 완료된 동작하며, 부팅 필요한 다양한 기능들에 맞게 여러 daemon 개발합니다(정확하게는 rootfs 초기화시 daemon 돌기 시작하는데 편하게 부팅 동작한다고 생각하셔도 됩니다).

라우터를 보면 기기 자체에서 있는 것은 LED 거의 대부분 입니다. 이런 LED 상황에 맞게 실시간으로 동작시키는 것도 daemon에서 있습니다.

보통은 라우터 설정 페이지에서 설정하는 다양한 기능들에 대한 동작을 담당합니다. 집에 있는 공유기 설정 페이지를 들어가 보셨다면 아마 wifi ssid 변경을 대부분 해보셨을 입니다.

사용자가 ssid 변경하고 저장을 누르면 web에서 특정 명령을 직접 실행시키거나 daemon 명령을 전달합니다. 명령을 전달 받은 daemon 기존에 코딩된 것에 따라 동작하고요.

Daemon 개발부터는 linux에서 application 부분으로 나누어 얘기하기도 합니다. 어렵게 만든 것은 어렵기도 하지만 C언어만 안다면 개발하는 것이 어렵지 않습니다.

임베디드 프로그래머라면 daemon 개발은 기본 사항이라고 보시면 같습니다.

 

Web page 개발은 사용자의 편의를 위해 만들어진 홈페이지에 대한 개발을 말합니다.

아래는 제가 사용 중인 iptime 설정 페이지의 메뉴들 입니다.

메뉴에 맞게 홈페이지 하나 만든다고 보시면 됩니다. 임베디드 시스템에서 사용되기 때문에 일반 홈페이지들처럼 호화롭게 만들지는 못하고요. 대부분 간단하게 만들어집니다.

tftpd, lighthttpd, goahead 라는 임베디드 시스템용 웹서버를 사용하며, web 개발에 필요한 html, javascript, css 기본적인 것을 사용합니다. Html linux , C언어 부분과의 통신을 위해서는 CGI(Common gateway interface) 사용합니다.

CGI C언어로 html 만드는 비교적 간단한 입니다. 자세한 사항은 https://www.w3.org/CGI/ 사이트 참고 바랍니다. 또는 다른분들 블로그 보시면 됩니다~

 

양산 프로그램은 공장에서 제품을 만들 필요한 프로그램을 말합니다.

공장에서 제품을 만드는 것을 양산이라고 하며, 부분은 회사에서 하기도 하고 공장에서 만들기도 합니다. 제가 다닌 곳들은 회사에서 자체적으로 만들었습니다. 제조/생산팀이 따로 있고, 회사의 특성에 맞게 여러가지 기능들을 점검해야 하기 때문에 보통은 회사 자체적으로 만듭니다. 회사에서 자체 보유하는 것도 중요하지만 사실 외주로 만들려고 해도 비용이 나갑니다.

그런저런 이유로 누군가 담당해서 만들긴 하는데 업무를 주로 담당하는 분이 계시다면 분은 windows 개발자일 확률이 높고요. 보통은 중요하다고 판단하지 않아 업무로 임베디드 개발자가 맡아 하는 같습니다.

양산 프로그램은 MFC, C# 주로 사용하고, 제품에 맞게 다양하게 만듭니다.

 

회사를 다니시게 되면 처음 담당한 업무 외에도 여러 프로그래밍 언어를 사용하게 되실 입니다.

그러나 내가 한가지만 고집하면 하나만 하실 있고, 여러개를 원하시면 여러 업무를 맡으시면 됩니다 ㅎㅎ

장단점이 있지만 어떤 것이 좋을지는 직접 경험해 보시고 판단하시기 바랍니다.

 

회사 내에서 여러가지를 배울 있지만 전문성을 갖기 위해서는 본인 스스로 공부하셔야 합니다. 선임이 됐던 팀장님이 됐던 전임자가 됐던 담당 업무를 위한 것들은 가르쳐 주지만 전문가가 되기 위한 깊이 있는 부분은 별도로 심도 있게 교육해 주지는 않습니다.

 

스스로 발전을 원하신다면 많이 들어보셨겠지만 개인 프로젝트 작은 것이라도 하나 해보시고, 회사 내에서 사용하지 않는 프로그래밍 언어도 별도로 공부해 보시기 바랍니다!

 

궁금한 사항은 언제든 댓글 달아주세요~~

728x90
반응형