2016년 8월 20일 토요일

임베디드 기술 연관 사이트


 임베디드 리눅스 독학으로 공부할려고합니다.

안녕하세요. 저는 임베디드 시스템 5년차 개발자입니다.
주로 리눅스 기반 셋탑박스 시스템 개발을 해서 이쪽과 관련해서는 설명해 드릴 수 있을 거 같습니다.
일단 임베디드 리눅스도 내부적으로 분야가 많습니다.
예를 들어, 셋탑박스, 차 내비게이션, 자동차 관련 제어 시스템, 공장용 자동화 시스템 등등 굉장히 많은 분야로 나눠어 있습니다. 그래서 추천드리는 것은 구체적으로 어떤 일을 할 건지 정하는 겁니다. 예를 들어 특정 회사를 목표로 준비하는 거죠. "휴맥스"에 들어가기 위해서 셋탑박스 시스템을 공부해 본다던가, 아니면 TV나 셋탑박스 시스템 개발과 관련해서 공부해서 삼성,LG, SK, KT, CJ 등등의 회사를 지원해 본다던가 등이 있을거 같습니다. 참고로 셋탑박스 같은 경우도 한 개 회사가 개발할 수 있는 게 아니라 3~5개 이상의 회사가 모듈별로 개발하는 경우가 많기 때문에 모든 기술을 공부할수는 없을 거구요. 그 중에서 핵심 모듈을 정해서 공부하는 게 좋을거 같습니다. 
정리하면,
 0. H/W 중심의 업무를 할지, S/W 위주의 업무를 할지 정한다.
    (펌웨어, 디바이스 드라이버 개발, 시스템 소프트웨어 개발, 미들웨어 개발, 응용프로그램 개발, OS 개발, 네트워크 개발 등등)
 1. 원하는 업무와 원하는 회사를 정한다.
  2. 원하는 업무(또는 원하는 회사에서 요구하는 기술)를 익힌다.
  3. 그 중에 특정 모듈에 대해서 깊이 있게 공부한다.

예를 들어 핵심업무로 비디오(또는 오디오) 코덱 기술을 정하셨으면, 이 코덱에 대해서 공부하시면 됩니다.
터치 스크린이나 RF 무선 통신으로 정하셨으면, 이에 대해 공부하시면 되구요.
일단은 아직 경험이 없으시니까 특정 모듈을 깊이 파는건 어려울거 같구요. 전반적인 공부를 하되, 프로젝트를 해보는 걸 추천합니다. 예를 들어, 라즈베리파이 + 각종 센서 들을 이용해서 비가 오면 자동으로 창문이 닫힌다던가 이런 프로젝트를 해보시면 좋을거 같네요.
회사에 이력서를 제출할 때도 코딩 시험이랑 해 본 프로젝트가 뭔지 위주로 볼 거 같아요. 본인이 하고 싶은 일이 구체적일수록 좋을거 같습니다.

1.  iamroot.org 사이트 추천합니다.
 매년 초에 리눅스 OS를 소스레벨에서 분석하는 스터디 모임입니다.(다른 스터디도 있어요)
 여기 주인장님이 쓰신 "리눅스 커널 내부구조" 라는 책도 추천합니다.
 사이트는 http://kelp.or.kr/ 라는 사이트도 있어요. 참고하세요.
디바이스 드라이버 개발에 관심이 있으면 "유영창"님이 쓰신 "리눅스 디바이스 드라이버" 책 추천해요.
http://book.naver.com/bookdb/book_detail.nhn?bid=1477444

2. 전망이 중요한 거 같진 않습니다. 제가 공부하던 7년 전 만해도 그렇게 전망이 좋진 않았어요. 그렇다고 나쁘지도 않았구요. 지금은 IoT가 뜨고 있어서 좀더 전망이 좋아진거 같긴 해요. 제 생각에는 전망이 중요한 게 아니라 본인이 남들과 비교해서 차별되는 기술(능력)만 있으면 되는거 같아요.
 임베디드가 진입장벽이 높긴 합니다. 여자 개발자들도 별로 없구요.(ㅠㅠ) 임베디드는 특정 기술 정보나 경험이 돈(또는 능력)이 될 수 있기 때문에, 기술 공개를 잘 안하는거 같아요. 무엇보다 개발자들이 바빠서(ㅜㅜ) 기술공개하고 이럴 시간이 없기도 한거 같네요. 임베디드 자체가 "내장된, 제한된" 이란 의미잖아요. 그래서 웹이나 안드로이드 앱처럼 "공통된" 기술 이런게 없고, 있다고 하더라도 대부분 그 회사 내부 재산이라고 생각해서 비공개로 진행하는 게 많더라구요. 그래서 정보가 별로 없다고 생각이 드네요.
 정리하면, 본인이 하고 싶은 일이 뭔지가 중요하다고 생각해요. 임베디드는 없어질 수 없는 기술입니다. 특히 요즘은 자동차에도 S/W 다 들어가잖아요. 그거다 임베디드죠. TV, 냉장고, 에어컨, 핸드폰 이런것도 다 임베디드 기술이 들어가구요.
본인이 하는 업무와 할 수 있는 업무+기술이 중요하다고 보시면 되요. (참고로, 보통 AVI, MP4, MPEG 같은 코덱 기술은 돈되는 핵심 기술입니다. 그만큼 어렵구요.)
아 참고로, 임베디드 정보 자체가 대부분 영어로 되어 있습니다. 영어 독해 능력이 좋으면 좋을수록 정보 습득에 유리합니다. 그리고 리눅스 기반 시스템 개발을 목표로 하시면, vim, Makefile, svn 사용법은 기본입니다.

3. 예전에는 ARM9 기반 보드로 많이 했던거 같은데, 요즘엔 라즈베리파이나 아두이노를 이용해서 이것저것 해보는 게 추세 같아요.
 엘레파츠나 디바이스마트(오프라인으로도 있어요) 이런대서 살수 있을거에요.
http://www.devicemart.co.kr/
https://www.eleparts.co.kr

4. 임베디드 기사가 뭔지 모르겠네요. 저는 "정보처리기사" 자격증 있는데, 이거면 되던데요??
 임베디드 기사가 국가자격증인가요? 그러면 따면 좋을거 같네요. 중요한건 자격증이 아니라 본인 능력이 제일 중요해요.
어차피 회사에는 실무 면접에서 코딩 실력과 해본 프로젝트 위주로 물어볼테니까 이 두가지도 준비하시는 게 좋을거 같아요.

코딩 시험은 보통 자료구조(스택,큐,링크드리스트, 트리)와 알고리즘(정렬 등), 리눅스 시스템 프로그램 관련 등을 시험볼거라 생각됩니다.

이쪽이 상대적으로 정보도 없고 폐쇄된 느낌이 들긴 하지만, 기술력만 갖추면 상대적으로 연봉도 높고 기술장벽도 높고 해서 장기적으로는 더 오래 일할 수 있는 장점도 있습니다.
열심히 공부하시고 잘 준비하셔서 좋은 결과 있길 바랍니다.

댓글 없음:

댓글 쓰기