우선 저는 프로그래머는 아닙니다라는 전제 하에서
한 팀에서 일하던 하드웨어 개발자, 펌웨어 개발자, 상위 프로그래머들과의 경험상 들었던 이야기로는
로봇 관련 임베디드 쪽에서 대충 수준을 나눠 보자면
1. 하수 : OS없이 직코딩 (8,16비트 MPU에서 주로 하고, 구글링해서 소스코드 배껴오기 등등을 주로 함)
2. 중수 : 임의의 임베디드 보드에 리눅스 포팅 해서 원하는 시스템으로 구성 가능
3. 고수 : 임베디드 리눅스 디바이스 드라이버 개발 가능
인 것 같아요. 별로 좋은 비유는 아닐지 몰라도...
암튼 현업에서는 주로 2번 중수급이 대부분인 듯 하고요.
3번 고수급은 숫자가 현업에서 얼마 없는 것 같아요. 정말로 눈에 잘 안 띄더라고요.
예전에 리눅스용 IEEE1394 디바이스 드라이버가 필요했는데
그걸 개발 가능한 사람이 없어서, 외국의 오픈소스 커뮤니티에서 긁어다 쓰던데
소스코드 분석 이딴거 하지도 않고 그냥 컴파일해서 쓰더라고요.
그걸로 통신해 보니깐 시스템이 자주 뻗어버리거나 통신 오류가 빈번했는데
자체적으로 해결 못하더라고요.
(IEEE1394 같은 경우엔 기술문서가 유료인데다가 정보를 얻기도 어려운 때였기 때문에 더 그런 상황이긴 했지만요)
이런 사례를 보면,
리눅스 프로그래머라면 커널 소스도 일정수준 이상 이해하고 해서 스스로 디바이스 드라이버 개발 가능한 수준이 된다면
틀림없이 아주 좋은 대우를 받으면서 사장님한테 이쁨 받고 연봉협상할 때 큰소리치고 할 수 있을 거에요.
위에 제가 적은 IEEE1394의 경우,
리눅스용 디바이스 드라이버가 당시 존재하지 않았고
설혹 상용 드라이버가 있다고 하더라도 라이센스 비용 때문에 리눅스 환경으로 선택한 것이기 때문에
(윈도우 환경용 드라이버는 있었지만, 라이센스료가 터무니없이 비쌌기 때문)
해외의 어느 해커가 야매(?)로 개발해서 공개한 연습용 소스코드를 갖다 쓴 경우였습니다.
그런데 IEEE1394의 기술명세에 관한 지식을 제대로 보유한 엔지니어가 우리 팀에 있을 턱이 없었지요.
(물론 통신 프로토콜이라던가 기본적인 동작에 관한 이해는 충분히 하고 있었음에도 불구하고)
그때문에 소스코드는 건드리지도 못하고 그냥 갖다 썼었는데
만일 이 드라이버 소스코드를 제대로 건드리면서 디버깅까지 제대로 할 수 있거나
독자적으로 완전히 새로운 IEEE1394 드라이버를 개발 가능한 엔지니어가 있었다면
참 좋았을 상황이었습니다.
이와 관련해서 모 국책연구소의 기술지원도 받았는데
그쪽 실무 엔지니어(라고는 하지만 학위과정의 노예(?)) 이야기로는
'우리도 어쩔 수 없다. 신뢰성이 걱정되면 스스로 해결 바람' 이었구요.
제가 본 바로는
우선 저는 프로그래머는 아닙니다라는 전제 하에서
한 팀에서 일하던 하드웨어 개발자, 펌웨어 개발자, 상위 프로그래머들과의 경험상 들었던 이야기로는
로봇 관련 임베디드 쪽에서 대충 수준을 나눠 보자면
1. 하수 : OS없이 직코딩 (8,16비트 MPU에서 주로 하고, 구글링해서 소스코드 배껴오기 등등을 주로 함)
2. 중수 : 임의의 임베디드 보드에 리눅스 포팅 해서 원하는 시스템으로 구성 가능
3. 고수 : 임베디드 리눅스 디바이스 드라이버 개발 가능
인 것 같아요. 별로 좋은 비유는 아닐지 몰라도...
암튼 현업에서는 주로 2번 중수급이 대부분인 듯 하고요.
3번 고수급은 숫자가 현업에서 얼마 없는 것 같아요. 정말로 눈에 잘 안 띄더라고요.
예전에 리눅스용 IEEE1394 디바이스 드라이버가 필요했는데
그걸 개발 가능한 사람이 없어서, 외국의 오픈소스 커뮤니티에서 긁어다 쓰던데
소스코드 분석 이딴거 하지도 않고 그냥 컴파일해서 쓰더라고요.
그걸로 통신해 보니깐 시스템이 자주 뻗어버리거나 통신 오류가 빈번했는데
자체적으로 해결 못하더라고요.
(IEEE1394 같은 경우엔 기술문서가 유료인데다가 정보를 얻기도 어려운 때였기 때문에 더 그런 상황이긴 했지만요)
이런 사례를 보면,
리눅스 프로그래머라면 커널 소스도 일정수준 이상 이해하고 해서 스스로 디바이스 드라이버 개발 가능한 수준이 된다면
틀림없이 아주 좋은 대우를 받으면서 사장님한테 이쁨 받고 연봉협상할 때 큰소리치고 할 수 있을 거에요.
======================================
Mechanical Engineer
DymaxionKim.github.io
======================================
질문에 대한 답은 아니지만(업계 동향은 잘
질문에 대한 답은 아니지만(업계 동향은 잘 몰라서...)
중수와 고수의 차이가 있나요? 포팅이나 드라이버 개발이나 임베디드에서는 똑같은 거라 생각됩니다만...
포팅후 디바이스 드라이버를 올릴 수 있기때문에 그렇게 적으신건가용?
IEEE1394 사례의 경우
위에 제가 적은 IEEE1394의 경우,
리눅스용 디바이스 드라이버가 당시 존재하지 않았고
설혹 상용 드라이버가 있다고 하더라도 라이센스 비용 때문에 리눅스 환경으로 선택한 것이기 때문에
(윈도우 환경용 드라이버는 있었지만, 라이센스료가 터무니없이 비쌌기 때문)
해외의 어느 해커가 야매(?)로 개발해서 공개한 연습용 소스코드를 갖다 쓴 경우였습니다.
그런데 IEEE1394의 기술명세에 관한 지식을 제대로 보유한 엔지니어가 우리 팀에 있을 턱이 없었지요.
(물론 통신 프로토콜이라던가 기본적인 동작에 관한 이해는 충분히 하고 있었음에도 불구하고)
그때문에 소스코드는 건드리지도 못하고 그냥 갖다 썼었는데
만일 이 드라이버 소스코드를 제대로 건드리면서 디버깅까지 제대로 할 수 있거나
독자적으로 완전히 새로운 IEEE1394 드라이버를 개발 가능한 엔지니어가 있었다면
참 좋았을 상황이었습니다.
이와 관련해서 모 국책연구소의 기술지원도 받았는데
그쪽 실무 엔지니어(라고는 하지만 학위과정의 노예(?)) 이야기로는
'우리도 어쩔 수 없다. 신뢰성이 걱정되면 스스로 해결 바람' 이었구요.
반면에 포팅이야 뭐....
컴파일만 잘하면 일단 가능한 거니까요.
======================================
Mechanical Engineer
DymaxionKim.github.io
======================================
> 혹시 차후에 혹시 차후에 리눅스관련
> 혹시 차후에 혹시 차후에 리눅스관련 임베디드분야(영상, 전장) 로 이직 할 수 있을지 궁금합니다.
당연히 가능하겠죠. 그러나 그전에 그에 합당한 준비가 필요하겠죠.
> 그리고, 요즘 클라우드가 대세가 되어가려는 추세인것으로 보이는데, 유닉스 서버관련 일자리나 전망에 어떠한 영향(긍정, 부정)을 미치게 될 지도 궁금합니다.
프로그래머 고용해서 서버까지 만들어 써야하는 수요랑 클라우드랑은 별 상관 없겠죠… 말씀하시는 클라우드가 뭔지 정확히 모르겠네요…
* 포럼 주제와 무관한 신변잡기를 반복해서 올리지 맙시다.
* 질문 게시판 만이라도 익명 글쓰기를 막아야 한다고 생각합니다.
별 차이 없습니다. 지나온 경력의 차이일뿐이지
별 차이 없습니다.
지나온 경력의 차이일뿐이지 프로그래밍 능력이 뒷받침 된다면 분야에 상관없이 쉽게 적응 할 수 있고 프로그래밍 능력이 뒷받치 되지 못하는 사람보다 더 뛰어난 능력을 발휘 할 수 있습니다.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향