Mike: 이번에는 어떤 이야기를 들려주실 껀가요?
 
Austin: 2년 전에 겪었던 재미있는 스토리를 이야기를 해보려고 해. '가짜 임베디드 리눅스' 아키텍트라고 제목을 정하면 좋을 것 같다.

 

 
Mike: 가짜 아키텍트라? 기억이 가물 가물한데요?
 
Austin: 언제나 우리에게 도움이 안되는 허접한 개발자나 관리자를 만나면 그 당시 왕짜증이 나지만 시간이 흐르면 바로 잊어먹지.
하지만 그 기억이 희미해지기 전에 간단한 기록이라도 남기는 게 좋을 것 같아. 그래야 비슷한 상황을 피할 수 있지.
 
한 가지 질문을 할께. 아키텍트면 보통 뭘 의미할까?
 
Mike: 아키텍트면 소스 코드 구조를 설계하는 소프트웨어 개발자가 아닌가요?
 
Austin: 맞는 말이지. 아키텍트는 소스 코드의 구조 및 기반을 잡는 개발자들이지. 
해외 소프트웨어 회사에서는 엔지니어의 탑급 개발자라고 인정하곤 하지.
 
아키텍트에 대해 조금 더 알고 싶으면 '게임 개발의 레전드인 김포프가 만든' 다음 유튜브 동영상을 한번 봐봐.
 
1:30 초 부분을 보면돼.
 
Mike: 그런데 가짜 아키텍트란 뭔가요?
 
Austin: 가짜 아키텍트에 대해 말하기 전에 먼저 아키텍트에 대해 조금 더 이야기를 해보려고 해.
우리가 아키텍트라면 소스 코드 구조를 잡고 설계하는 개발자라고 생각해. 그런데 아키텍트는 우리가 생각하는 것 이상의 탑급 개발자라고 볼 수 있어.
 
먼저 아키텍트면 다른 개발자하는 코딩은 당연히 잘해야 하고 디버깅도 '스타의 이영호급'으로 잘해야 해. 이 모든 과정을 거친 후 다다르는게 아키텍트인거지.
 
물론 나도 아키텍트가 되는 게 꿈이지. 하지만 아직도 조금 더 개발을 해야 해.
 
Mike: 아키텍트의 레벨은 생각보다 높군요.
 
Austin: 아키텍트에 대해 조금 더 이야기를 하자면 자신이 코딩을 더 잘할 수 있는데 코드를 작성하지 않으려고 해. 왜냐? 그 시간에 다른 개발자 코드를 리뷰하는게 프로젝트 생산성에 더 기여를 할 수 있거던.
 
그런데 프로젝트 진행 도중 언제나 한 번 고비를 맞곤해. 이럴 때 아키텍트가 투입되는 거지. 대부분 해결하기 어려운 버그를 잡거나 미구현된 코드를 마무리하곤 하지.
 
Mike: 모든 것을 다 잘할 수 있는 단계에 이르러야 아키텍트가 되는 군요.
 
Austin: 그래, 아키텍트에 대해 이 정도로 이야기하고 이제는 가짜 아키텍트에 대해 이야기를 해보려해.
 
이렇게 아키텍트는 코드 입력을 자제하고 소스 구조를 잡는데 신경을 쓴다는 정보를 개발자들이 많이 듣곤해. 
그 가짜 아키텍터는 말이야...
 
   "그런데 소스 코드 빌드 스크립트만 작성하고 소스 구조만 잡아. 그런데 소스 내용을 전혀 몰라."
 
Mike: 소스 코드 내용을 모르는데 어떻게 아키텍트인가요?
 
Austin: 그러니까. 빌드 스크립트만 짜고 소스 파일 이름만 수정하면서 스스로 아키텍트라고 사칭하는 거야.
난 이런 '가짜 아키텍터'를 보고 정말 황당했거던. 2년전 그 '가짜 아키텍터'에게 물어봤어.
 
Mike: 뭐라고요?
 
Austin: 난 그 '가짜 아키텍처'가 어느 정도 실력이 있는 줄 알았거던. 그래서 다음과 같이 물어봤지.
 
   "혹시 Trace32(T32) 설정을 어떻게 하면 될까요?"
 
Mike: 대답이 뭐였던가요?
 
Austin: 아주 황당한 대답이었어. 
 
   "나 그런 디버깅 툴을 쓸 줄 몰라."
 
임베디드 개발에서 Trace32를 모른다? 이게 말이 되니? Trace32를 모르면 바보다? 난 그렇게 생각하지 않아. Trace32는 아주 인기있는 디버깅 프로그램인 것 맞긴한데, 다른 툴을 잘 쓸 수도 있어. 그 '가짜 아키텍터'의 문제는 아예 디버깅을 하려고 하지 않았어.
 
Mike: 이상한 놈이군요.
 
Austin: 그러니까. 아키텍트가 소스 구조를 잡는다고 하니깐 그 '가짜 아키텍터'는 소스 구조를 바꾸면서 빌드 스크립트만 죽어라 짜는 거야. 그러면서 목에 깁스를 한 상태에서 굉장히 자부심을 느끼면서 다니더라고. 이게 말이 되니?
 
... To be continued...

+ Recent posts