임베디드 첫발 때려고하는데 어떻게 해야할지...

cheonyesung의 이미지

현재 컴공 3학년이구요...
무계획적인 휴학 일년을 해서 어영부영하다가
이번에 복학해서 임베디드 소모임에 들어가려했으나
담당교수님이 해외연수를 가셔서 이번 8월에 귀국하신다네요..
임베디드 뭔지 잘은 모르구요...
장비알아봤더니 비싸더라구요...
어디서 부터 잡아야할지도 막막하구요..
그래서 이번 방학에 비트학원에서 임베디드 과정 1달짜리 수강하려고합니다
arm을 이용해서 하는건데요...
모두들 비트를 반대하시더라구요...
저도 학원비가 한달 과정일뿐인데 68만원이라 고민입니다...
원래 좀 의지박약이라 나 자신을 못믿기에 우선 학원 한바퀴돌리고
교수님 오시는데로 임베디드 키트 하나를 달라고 해서 그거 가지고 장난질 좀 하거나 그거 안되면
리눅스 기반에 arm사용하는 로봇이라도 방학동안 가지고 놀까 생각중입니다...
담당교수님이 임베디드와 로봇 관련 연구를 하시는 분인데 해외연수가셔서 이번 8월에 귀국합니다
지식인에 물어봤더니 이제 핸드폰은 bsp라고 arm아니라네요...
뭐가 뭔지 모르겠네요...
임베디드에대해서 완전 무지한 단계입니다...
머리는 그닥 좋지 못하나 약간에 근성은 있습니다...
제가 처한 상황과 저의 상태를 생각한다면
학원에서 한바퀴돌린후 어느정도 임베디드에대한 개념을 잡고
학교에서 공부하는 것이 나을것같은데..
어느 분이 개발 키트를 사서 그 업체에서 교육을 받으라고하는데..
뭐가 뭔지 모르겠네요..
뭐가 뭔지 흠...
제 계획이 잘 못 됬다면 조언 좀해주세요..
방학을 어찌 보내야할지
알레르기 때문에 제정신이 아니니 이해해주세요...

geneven의 이미지

저도 아직 학생이지만 제가 생각하는 임베디드 시작은 일단 장비사서 하는거보다는 자기집 PC가지고 하는게 좋은것 같습니다.
일단 장비가 예상외로 고가더군요. 리눅스 사용에 익숙하시다면 간단한 디바이스 드라이버 만드는거부터 시작하시는게 좋다고 합니다. 책은 http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200411240003 이책 많이 추천하시는거 같고요

blkstorm의 이미지

일단, 임베디드 기기건, PC건, '컴퓨터/CPU'라는게 어떻게 돌아가는지를 아는게 중요하다고 봅니다.

그러기 위해서는 geneven님 말씀처럼 자기집 PC로 시작하시는게 좋을 것같고, 위에 추천한 책에

한권 더 추가하겠습니다.

http://www.acornpub.co.kr/book/microc-os-set

일단 이 책으로 재미를 붙이시는게 좋을 것같습니다. vmware나 virtualbox로 가상의 PC를 하나 띄우고

이것저것 해보시면 될듯. 하나씩 해보면서 즐기시다보면 어렵지 않게 많은 것을 익힐 수 있을것입니다.

학원에서 70만원 받고 어떤걸 가르치는지는 모르겠습니다만, 제가 회사 있을 때 제 옆에 팀에서

외부강사 초빙하고 개발키트 구입해서 교육프로그램을 진행했었는데, 그렇게 평이 좋지는 않았던걸로 기억합니다.

한가지 더, 제가 학부를 졸업한지 워낙 오래되서 요즘은 어떤지 모르겠습니다만, 교과 과정이나 인터넷에

나오는 자료에 나오는 내용들이 어떻게 실제 컴퓨터 구조에 적용되는 지를 하나씩 확인하면서 진행하시기 바랍니다.

예를 들어, RISC/CISC는 어떻게 다르고, 그 차이가 실제 실행파일상에서 어떻게 나타나는지,

memory-mapped I/O와 IO-mapped I/O의 차이점이 실제 프로그램상에서 어떻게 반영되는지,

그리고 인터럽트 서비스 루틴이라는게 어떻게 호출이 되는지와 같이, 그냥 추상적으로만 이해하고 시험볼 때 답쓰는데

그쳤을 수도 있는 지식들이 어떻게 실전에 적용되는지를 눈으로 확인하시는게 필요하다고 생각합니다.

단 하나의 플랫폼에 관해서라도 그 동작의 흐름을 이해하신다면 다른 플랫폼을 익히시는건 크게 어렵지 않을 것입니다.

개인적으로는, 이런 과정을 위해서 굳이 개발키트나 학원 과정이 필요하다고 생각하지는 않습니다. 좋은 책 몇권하고

PC, vmware, kldp, 그리고 본인의 의지만 있다면 충분히 가능하다고 봅니다.

글이 서두없이 길어지기만 했군요. 보람찬 방학 보내시기 바랍니다.

tomahawk28의 이미지

추천하신 책을 보고 얼른 서점에 달려가서 보았습니다. 처음본 느낌이.. 굉장히.. 갈피잡기 어려운것 같았습니다.
이전에 나빌레라님 운영체제 강좌보면서도 배우고 아프리카를 개설하셨다는 분이 쓴 개발자만의 운영체제 만들기라는
책도 봤습니다만.. 이 책은 구성이 제가 봐왔던것과 좀 달라서요.

그러니까 단계별로 밟아가면서 진행하는게 아니라 어떤 부분, 서비스 루틴이나 키보드, 화면 출력 등으로 구성되어져
있더군요. 코드는 CD에 들어있다고 하고 저자는 그냥 보드는 필요없고 그거 코딩하면 바로 실행이 될거라고 써놨던데 -_-;;
제가 실력이 좀 미진해서인지 많이 어렵다고 느껴졌습니다. 이 책을 읽고 코딩하는(?) 다른 방법이 있는건가요..?


Can't stop watching this;;

blkstorm의 이미지

일단, 본인이 가장 이해하기 쉬운 책/사이트를 잡아서 시작하시는게 좋습니다. 추천은 나중을 위해서 남겨두시구요.

(개인적으로는 임베디드 입문자에게 위에서 언급된 디바이스 드라이버 책은 추천하지 않습니다)

아무리 좋은 책이라도 본인이 이해할 수 없다면 무용지물이지요

(참고: http://comicmall.naver.com/webtoon.nhn?m=detail&contentId=15640&no=200&page=1#)

그리고, 한번에 다 꿰뚫으려고 하지 마시고 하나하나 이해하면서 나아가시기 바랍니다.

마지막으로, '백문이 불여일타'입니다. 제가 추천한 책의 pdf파일(영문 1판)이 떠도는 것으로 알고 있습니다.

(지금 찾아보니깐 저한테는 없군요) 그걸 구하실 수 있으면 그걸로 한번 직접 부딪혀 보시기 바랍니다. 한번에 쉽게

되리라고 기대하지는 마시구요. 문제점을 해결할 때마다 하나씩 배워가는 과정이라고 생각하시고,

인터넷 검색도 많이 하면서 익히시길 바랍니다.

hipertrek의 이미지

임베디드쪽 발 딛지 마십시오.

막장중의 막장입니다.

임베디드 생각말고 웹쪽을 하시길..

임베디드 회사들중 대기업 있나 보면 답 나옵니다.

다 영세 제조업체들뿐이고 삼성전자빼면 나머진 그냥 다 중소벤처입니다. 엘쥐도 포함..

웹은 NHN, 다음, NCSOFT등.. 왠만한 성공한 회사들이 꽤 있죠..

맨날 납땜질 연기에 살고 싶지 않음 얼렁 발빼시길..

ydongyol의 이미지

임베디드 하시는 분은 웹을 싫어라 하고

웹하시는 분은 임베디드를 싫어라 하고..

저만 그러는줄 알았는데..

둘은 영원한 dog & cat??
--
Linux강국 KOREA
http://ydongyol.tistory.com/

--
Linux강국 KOREA
http://ydongyol.tistory.com/

uleech의 이미지

전산쟁이 어딜 가나 막장이죠 ㅎㅎ
요즘은 돈이 돈을 버는 금융이 좋지 않나하는 생각이 듭니다.

bus710의 이미지

임베디드에 관심이 있으시다면 70만원돈을 들여서 학원을 다니시기 보다는
적당한 책과 간단한 키트를 직접 사서 하시는 것도 괜찮은 방법이겠죠?

사실 이쪽에 물어 보시는 것보다 같은 학교에 전자과, 제어과 같은 곳에 다니는 친구를 잡고 얘기하는게 낫겠네요.

그런 과라면 실습 장비도 많을 것이고 그런 과에 속한 친구라면 실습실에 드나드는 것도 어느 정도 자연스러울 것이고...

그리고... arm이 임베디드쪽을 꽉 잡고 있습니다만, 처음부터 접근하기엔 어려우실 수 있습니다.
굳이 OS 올리려하기 보다는 간단한 프로세서를 잡고 시작하시길 권합니다.

네이버 카페인 '당근이의 AVR 갖고 놀기'와 윤덕용 교수님의 책을 권해 드립니다.

akudoku.net bob marley - so much trouble in the world

life is only one time

rainroot의 이미지


혹시 임베디드를 시작하면서 프로그래밍을 못하는 건 아니겠죠..

C언어를 많이 사용하고.. 리눅스 임베디드쪽을 생각하신다면.. 리눅스 시스템에 대한 전반적인 지식이 있어야 합니다.

그리고 드라이버를 만들줄 알아야합니다.. 또는 오픈되어 있는 드라이버를 수정해서 만들고자 하는 기능을 추가하는 것도 해야하지요.

많은것을 알아야 임베디드의 참맛을 느낄수 있습니다.

입문과장을 원하신다면 임베디드 키트를 구입하는 것 보다는 일반 PC에 리눅스를 작게 만들어서 기능을 추가해 가는것이 좋을것 같습니다.(예.무선 AP & 라우터 , 디빅스 플레이어등)

dragonkun의 이미지

학원보단 간단한 키트와 책을 구입해서 보시는 게 도움되지 않을까 싶습니다.
키트는 아직도 파는지 모르겠지만 FA-linux의 EZ-X5 시리즈 같이 3~40 만원대에 구할 수 있는 저렴한 키트를 쓰시는 것이 좋겠구요.

처음엔 그냥 키트 사면 들어있는 메뉴얼대로 커널, 파일시스템 등등 올리기부터 시도하시고..
후에 차근차근 공부하셔서 디바이스 드라이버를 하나씩 만들어 제어해 보시는 것이 좋을 것 같네요.
그 때쯤 되면 교수님도 돌아오실테니 동아리 가입해서 led라던가 7-segment라던가 스텝모터 등등
간단하면서 잡다한 게 많이 달린 개발용 보드에서 공부해 보세요.
--
Emerging the World!

Emerging the World!

Darkcircle의 이미지

전에 있던 컴공과 연구실이 워낙 자원(?) 이 풍부해서
한* 보드도 건드려보고 휴* 보드도 건드려보고 FALinux EZ-X5도 건드려보고 다 해봤습니다...
결론은 개인이 돈을 들여서 한다면 진짜 돈 다 버리는 셈 치고 해야됩니다.
전기전자쪽은 생각보다 드는 돈이 많습니다. 미대나 음대처럼요...

프로그래밍이 목적이라면 개발보드에 붙어있는 각종 모듈들에 대한
프로그래밍 예제 코드를 보시고 어떤 모습으로 동작시킬건지 계획을 세우신다음에
회사에서 제공한 메뉴얼을 바탕으로 여러가지 모듈에 대해
프로그래밍을 해서 직접 돌려보는 것이 중요합니다.
따라하건 아니건간에 일단 "해보는데 의의를 두는게 중요"...

하드웨어 설계구현과 프로그래밍을 병행할 목적이라면 휴* 회사나 한* 회사의 것보다는
거의 대부분의 것을 커스터마이징 할 수 있는 EZ-X5를 추천합니다.
EZ-X5에는 2열 핀이 붙어 있어서 해당 핀을 통해 기판을 연결한 다음에
기판에 뭐 LED를 연결한다든지 사운드 모듈을 연결(칩셋 납땜...)한다든지
블루투스 모듈을 납땜(또는 이더넷 칩셋을 납땜... --> 초고수 !! )...등등으로 해서
각종 장난감을 만들어볼 수도 있습니다. 후덜후덜...

--- 덧붙임 ---
여하튼 칩셋 납땜은 각오를 하지 않는다면 절대 권장하지 않습니다.
제 연구실에는 칩셋 다리 하나하나를 PCB납땜용 선을 써서
다 선으로 따낸 다음에 변환기판 안쓰고 직접 굵은 2열 핀에 납땜한 녀석들이 꽤 됩니다.
맨정신이 아니라면 칩을 모두 태워먹을 수 있다는;;;
차라리 5천~1만정도를 더 들여서 모듈기판을 따로사시는게...더 나을지도 ...
--- 덧붙임 끝. ---

웹 하시는 분들이 임베디드를 싫어하시는 가장 궁극적인 이유는
제생각으론 아마도 귀찮은 삽질을 좀 해야 하기 때문이 아닌가합니다.
물론 납땜이야 어느 공돌이든 다 싫어하는건 당연한 거고요 . . . (몸에 안좋으니까.)
가령 개발환경 구축이라든지... 아키텍처 종속 어플리케이션을 짤때
라이브러리 의존적 프로그래밍을 한다면 라이브러리 상에 뭔가가 빠졌다든지
하는 이유로 인해 해당 함수나 클래스, 메소드를 대체할 것을 찾기 위해
아니면 그것을 완전히 새로 구현하기 위해 용을 쓴다든지 등등등등 . . .
여하튼 임베디드쪽은 얘기가 더 길어져봐야 별 도움이 안될듯...

재미 붙이면 꽤 재밌습니다만 귀찮아지기 시작하면 골칫덩어리 입니다

---------------------------------------------------------------
실수하지 말아야 하는데 . . . Orz

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

나빌레라의 이미지

임베디드에서도 어떤 분야를 공부하실지를 먼저 결정하세요.

임베디드 펌웨어와 함께 간단한 회로까지 만드실것이라면 AVR과 같은 8비트 MCU와 회로도 보는법 및 각종 소자 사용법과 납땜질 하는 법등을 공부하셔야 하고,

완성된 보드에 올라가 있는 운영체제(리눅스든 윈도CE든 다른 RTOS든...)에 디바이스드라이버를 만드시는 것이라면 목표로 삼고 있는 운영체제의 커널공부와 디바이스 드라이버 개발 방법을 공부하셔야 하고,

펌웨어 수준을 넘어서서 운영체제 정도의 소프트웨어를 올리시는 것이 목적이라면 운영체제이론과 기존에 개발되어 있는 여러 운영체제 커널들의 구현특지등 보다 학문적인 것들을 공부하셔야 합니다.

위에 열거한 방향외에 그 어떤 방향을 목표로 잡고 공부 하신다 하여도 기본적으로 목표로 삼고 있는 플랫폼에 대한 아키텍쳐적 특징이나 MCU칩 및 주변 여러 칩에 대한 데이터시트 보는법 정도는 필수로 공부하셔야 합니다.

그런 것이 아니라 그냥 올라가 있는 운영체제에 어플을 만드는 것이 목적이시라면 그냥 열심히 라이브러리 혹은 프레임웍(J2ME 나 .net compact framework 같은것들) 공부하시면 됩니다.

-------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

다즐링의 이미지

참으로 이해가 안가는 점은...

웹이랑 임베디드를 왜 나누는지 모르겠습니다.

컴퓨터 구조와 시스템이 어떻게 돌아가는지만 알면 웹이건.. 임베디드건 말입니다.

구글링해서 찾을수 있는 팁과 예외들일 뿐입니다. ( 경험이라고 씁니다 )

기본적인 프로그래밍 ( C 나 어셈등 ) 조금 하고

자료구조

컴퓨터 구조

시스템 프로그래밍

OS

를 들으면.. 나머지는 정말 시간 싸움밖에 안됩니다.
( 물론 제가 잘한다는 말은 아닙니다. 기초만 대충 된다는 말이죠 )

어제 슈퍼액션을 보면서 멍하니 있는데 이런광고가 있더군요.

해보기나 했어?

------------------------------------------------------------------------------------------------
Life is in 다즐링

------------------------------------------------------------------------------------------------
Life is in 다즐링

ktd2004의 이미지

저도 동의합니다.

막상 웹이든 임베디드든, 마이컴이든
그냥 다 같은 프로그래밍이라고 생각합니다. ^^;

hados의 이미지

컴공이시면, 유망한 분야 많자나요

굳이 임베디드로 첫발을 들이시려는 이유가...>.<

웹 쪽 하시거나 아니면

수학, 경제 등을 공부하시고 대학원을 금융쪽으로 가시는 것도

앞으로 유망한 분야 중 하나일 듯 합니다.

3학년 밖에 안 되셨다고 하니,

컴공과 안에서만 놀지 마시고

타과생들 특히 경영, 경제, 수학 등의 친구들과도 친하게 지내면서

머하는지 보세요.

좀 더 시야가 넓어질거에요