GREAT CODE 2; 임베디드 소프트웨어 개발자라면... 책과이야기

저번 포스트 'GREAT CODE 2: 로우레벨을 고려한 프로그램 최적화'에서 이 책을 읽기 시작했다고 쓴게 10월 22일입니다. 몇 일전 11월 마지막날 간신히 마지막 장까지 다 읽었습니다. 애초에 계획은 한달 안에 다 읽기였는데 계획보다는 좀 더 시간이 걸렸네요..

책에 대해서 이야기 하자면, 소프트웨어 개발자라면 한번쯤 읽어볼만한 책입니다. 최근에는 컴퓨터 사양이 좋아지다보니 일반 응용프로그램 개발자나 웹 개발하시는 분들에게는 사실 그다지 와닿을 것 같지는 않지만, 그럼에도 한 단계 더 높은 수준에 올라서려면 고급 기술만 바라보기 보다는 내가 만든 프로그램이 동작하는 컴퓨터 저 아래쪽 기술도 알아야 한다고 생각하거든요..

임베디드 소프트웨어 개발자라면 필독서라고 권하고 싶습니다. 'GREAT CODE' 1권에서는 하드웨어 레벨에서 많이 이야기하다보니 배울건 많았지만 실무에서 와닿는건 크지 않았던 것 같았습니다. 하지만 'GREAT CODE' 2권은 로우레벨에서 이야기하고 있기 때문에 제 경우에는 실무에서 여러해 일하면서 알게된 이야기들을 쉽게 풀어서 설명하고 있어서 읽으면서 억울한 생각(?)도 조금 들더라구요.

같은 프로그램을 짜더라도 CPU, 운영체제, 그리고 컴파일러의 최적화까지 고려서해서 작성한다면, 한 두줄로는 생산성의 향상이 느껴지지 않겠지만 그런 코드들이 모이고 모여서 그리고 그 코드가 루프 안에서 동작한다면 아마 그 차이는 쉽게 무시하고 넘어갈 수 없을 것입니다.

어셈블리 코드가 나오지만 생각했던 것보다 이해하는데 어렵지도 않았고, 이 책의 목적도 어셈블리 코드를 작성하라는 것이 아니라 컴파일러 등에 의해 자신이 작성한 프로그램의 역어셈블 코드를 해독할 정도의 능력만을 요구하기 때문에 상대적으로 부담이 적었던 것도 있었습니다. 아무래도 임베디드 쪽에서 프로그램 최적화에 대한 압박을 좀 더 느끼기 마련인데 일반 PC에서 사용되는 CISC CPU용 어셈블리 코드와 임베디드 시스템에서 사용하는 RISC CPU용 어셈블리 코드를 같이 보여주고 있기 때문에 임베디드 프로그래머에게 좀 더 권할만한 책이 아닌가 생각합니다.

요즘은 임베디드쪽도 CPU나 메모리의 사양이 높아지면서 최적화에 대한 부담이 줄어들고 있지만, 일하다보면 수십가지 기능이 들어간 프로그램을 판매 전략 때문에 몇 가지 기능을 막는 경우가 간혹 있는데, 이런 경우 해당 코드를 싹 들어내고 컴파일 해야겠지만, 스파게티 코드의 경우에는 깨끗하게 들어내기가 어렵고 일정 등의 문제로 해당 기능을 살짝 눈에 보이지 않게 막아놓기만 하고 실제 릴리즈 되는 프로그램에는 삭제되지 않은 채 작업을 하는 일이 많이 있습니다. 이런 상황이 반복되다 보면 눈에 띄는 성능 저하가 발생하게 되는데, 프로젝트 막판에는 할 수 있는 일이 'GREAT CODE' 2권에서 설명한 프로그램 최적화입니다. (사실 모든 기능들을 모듈화 해서 넣었다 뺐다 하는게 정석입니다.)

어셈블러로 개발하는 프로그래머가 아닌 C언어 이상 고급 언어를 사용하는 개발자라면 많은 노력을 해야만 알 수 있는 것들을 이 책을 통해 쉽게 배워보는 시간을 가지는 것도 의미가 있을 것 같네요..

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://grow.egloos.com/tb/3980399 [도움말]
  • 지아의 생각 2008/09/09 19:57 #

    블로그 리퍼러를 확인하다가 KLDP를 통해 들어온 흔적이 있길래 봤더니 Great Code 2권에 대해 쓴 글이 링크되어 있었다. 링크에 링크를 따라갔다가 당췌 뭔 소릴 이렇게 어렵게 했는지, 하나도 알아 먹지 못 하겠는 글을 하나 발견.... more

덧글

  • rootkit 2007/12/03 19:54 # 답글

    1권은 80% 정도 읽었는데.. 2권도 한 권 사야겠네요 :)
    관심분야라서요 ㅋㅋ 좋은 후기 잘 읽었습니다 ^^
  • 지아 2007/12/07 22:06 # 답글

    저는 1권보다는 좀 더 재미있게 읽은거 같아요.. ^^
덧글 입력 영역