강의 성공
오늘 꽤 큰 기업에 가서 이번에 입사한 회사의 SDK 를 강의했다. 그런대로 성공적이었고, 참석자들 중에 부장급이나 과장급들이 하는 질문도 그런대로 잘 받아쳤다. PPT 가 88페이지 짜리였으니 강의 질이 안좋더라도 양으로는 그럴싸해보였다. (앞으로 200페이지정도로 늘려갈 예정이다)
실제로 내가 할 수 있는 건 간단한 파일 뷰어를 폰에 올리는 정도 뿐인 상태에서 잘도 아는 체를 하고 왔다. 아직 옆 팀에서 만들고있는 휴대폰의 내부까지 속속들이 알고있는 건 아니다. 질문을 받아친 것도 그동안 주워들은 이야기들일 뿐.
그 와중에 모르는 것을 묻는 사람이 있어서 당황하긴 했지만, 모르는 것은 모른다고 말했으니 다행이었다. 강사는 절대로 모르는 것을 상상해서 말해서는 안된다. 나중에 반드시 뒤통수를 맞게 마련.
예전에 VB.NET 도 VB6 랑 호환될꺼라고 생각하고 무심코 답변을 한적이 있는데, 그때가 MS 가 하위호환성을 제공하지 않은 첫번째 경우였다. 나중에 알고 나서 어찌나 민망하던지. (조엘 온 소프트웨어에 그때의 내부사정이 묘사되어있다. 그러고 보면 그 책이 다 아는 내용의 반복은 아니었네.)
다행히 사내에서도 이번에 만든 PPT 에 대해서 평가가 좋은 모양이다. 연구소장은 “이것만 보면 어플리케이션 개발.. 다 하겠구먼.” 이라고 평가했단다. 그래, 다행이다.
입사하고 나면, 처음에는 업무수행능력이 어느 만큼은 된다는 평가를 받아야만 그다음 수순이 가능하다. 뭐, 사내정치 전문가가 되겠다는 결심같은 건 하지않지만 돌아가신 고우영 아저씨의 “삼국지” 덕분에 가끔 헛된 망상에 젖기는 한다.
어쨌든, 2년만에 복귀하면서 잘 못하면 어쩌나 하는 걱정을 많이 했는데, 많이 녹슬지는 않은 것 같다.
참고삼아 리눅스를 휴대폰에 탑재하는 과정은 이렇다. (임베디드 전문가들이 보면 쪽팔리므로 보지마세요.)
가정.
- 휴대폰에는 유대인들이 만든 "MSM" 칩이 탑재되어있다.
- 그 옆에 쬐끄만 보드가 하나 더 있고, 그쪽에는 PXA27 같은 모바일용 보드가 하나 더있다. 이런 것을 SOB 라고 부른다. (Son Of Something 이 아니라, System On Board 다. 요거로 만든 PDA도 있었다.)
- 둘사이에는 통신 할 수 있는 라인이 있다. (당연히)
- PXA27 을 만든 회사를 뒤져보면 보드 매뉴얼이 있고, 운이 좋으면 리눅스 커널 패치같은 것도 올라와있다.
- 만약에 ARM 칩을 쓰는 보드라면 (지금 프로젝트가 그렇다) 크로스 컴파일러를 구해야한다. (이 부분이 난해하다. gcc 가 보통 크로스컴파일러를 제공하지만 버그도 많고 - 3.1 부터는 괜찮다고도 하지만 최적화에서는 ADS를 못따라간다는 말도 있다. 어쨌든, X86 이외의 칩을 쓰는 경우에는 크로스컴파일러는 필요하다.)
이런 가정하에 (가정이 충족되는 경우도 있고 아닌 경우도 있다. 언제나 임베디드는 다종 다양하다. 어쨌든)
- 보드매뉴얼과, 기기제조사에서 전달받은 여러가지 문서를 참조해서 부트로더를 만든다. (다른 사람이 만들어놓은 부트로더들도 있고, 기분나면 만들어서 써도 된다. 이 회사에서는 만들어서 썼다. 기분이 났던게야.)
- JTAG 같은 놈을 써서 보드에 탑재된 플래시에 쓴다. (이때 NAND, NOR 따위따위가 나온다. MDOC도 나오고 XIP 도 나온다. 생전처음 듣는 단어도 있고 주워들은 적이 있는 단어도 있다.)
- 어찌어찌해서 부트로더가 뜨는 모습을 지켜보고 나면, 적절하게 패치된 커널을 다운로드 한다.
- 커널이 올라가면, 디바이스 드라이버들을 다운로드한다. (이 중에는 MSM쪽과 통신 할 수 있는 넘도 필요하다)
- GUI 환경이 가능하도록, DirectFB, NanoX, TinyX 등등을 컴파일해서 다운로드한다.
- 이제 어플리케이션을 개발해서 테스트한다.
간단하다. 하지만, 이 회사는 5년동안 저것만 했으니까, 간단하겠지. 처음하는 사람한테는 항목 하나하나가 난해하기 그지없다.
박재호란 분이 쓴 “임베디드 리눅스“라는 책이 제일 그럴싸하게 설명 잘 해놓으셨다. 두께도 마음에 들고, 말투도 이쁘다. 이번 강의를 준비하는 데에는 이 책의 도움이 컸다. (저 책을 보고서 아는 척하면서 말을 걸면 대개는 ‘아 쬐끔 아는 넘인가봐’ 라고 하면서 응해주었다.)
리눅스에서 hello world 이상 해본 적이 없는 사람이라면 KLDP에서도 좋은 정보를 많이 볼 수 있다.
이번 임무의 특성상 엔지니어들을 인터뷰하면서 “공식적으로” 회사의 노하우를 뽑아낼 수 있었다. 그게 가장 좋았다. 아직 커널쪽은 더 뽑아낼 것이 많은데, 역시.. 리눅스 커널을 주물럭 거리는 사람들은 말투가 해커스러웠다. 오랜만에 듣는 말투가 반가웠다. 하지만, 아직은 스터디를 더해야 말이 통하고, 무시당하지 않으면서 인터뷰할 수 있을 듯.
2년전에 직장을 그만 두기전에 수원에 내려가서 빡쎄게 작업했었다. 이제 직장을 구하고 처음으로 간곳이 또 수원이다. 헌데 그때 같이 작업하던 그 회사의 책임이나, 선임은 자리에 없다.
선임은 작년에 퇴직해서 유럽으로 부부동반 여행을 갔었고, 책임은 프랑크푸르트에 있는 것 같다. 오늘 다시 그 넓은 곳에 서 있으려니 그 때가 먼 어제처럼 떠올랐다.
댓글
가람 : 요즈음은 자네가 오롯한 [“전산기술자”]가 되어 있으니, 문외한인 나에겐 비집고 들어갈 틈이 없으이…^^ 목 한번 축이시게… (2005-05-12 14:02:10)
넥스디아 : 구경 잘 하고 갑니다. 하루키를 좋아하시나보군요. 종종 들르겠습니다. 저같은 완전초보는 흔적 남기는 것도 쉽지 않군요. 따로 관리하는 홈피도 없는데 자꾸 홈피를 알려달라고 조르네요… 쩝. (2005-05-18 04:39:22)
쎄리 : 여행얘기에서 이젠 생소한 프로그램 얘기로… 원래의 위치로 오신건가요?^^ (2005-05-19 23:36:17)