토요일, 3월 16, 2013

[독서광] 품질을 생각하는 임베디드 소프트웨어 설계

에이콘 출판사로부터 기술서적을 잔뜩 받았기에 의무감(응?) 반 호기심 반으로 독파하기 시작했다. 그 결과, 오늘은 간만에 임베디드 서적을 소개하려 한다. 1번 타자는 바로 '품질을 생각하는 임베디드 소프트웨어 설계'다. 이 책은 전통적인 하드웨어 강국인 일본에서 나왔기에 소프트웨어를 우선으로 접근하는 미국식 임베디드 책과는 달리 국내 정서에도 잘 맞아 떨어진다는 장점이 있으므로 용어 등이 조금 일본스러운 점만 제외하고는(오히려 전자 쪽에서 접근할 경우 장점이 될지도 모르겠다) 국내서를 읽는 느낌을 받을지도 모르겠다.

이 책을 재미있게 읽으려면 이 책의 궁극적인 목표를 알고 있어야 하는데, 원서 제목이 '임베디드 소프트웨어 엔지니어를 정복하자'라는 사실이 중요한 힌트를 제공한다(개인적으로는 원서 제목이 더 가슴에 와 닿는다). 이 책은 임베디드 소프트웨어 분야에서 프로페셔널한 엔지니어가 되기 위한 기나긴 여정을 설명하고 있다. 서문에서 제시한 '임베디드 엔지니어의 고수가 되기 위한 로드맵'을 보면 크게 임베디드 소프트웨어 엔지니어 개인으로서 목표와 임베디드 소프트웨어 프로젝트로서 목표라는 두 가지 대 분류로 나눠서 각각에 대한 장애물/벽을 설명하고 이를 뛰어넘는 방법을 조감하고 있다. 다음 그림을 보면 좀더 이해가 쉬울 것이다.

로드맵에 대한 설명은 Yes24에 소개된 이 책의 출판사 리뷰에 잘 정리되어 있으므로 참조하면 되겠다.

큰 그림을 머리 속에 넣었다면 이 책 목차를 살펴보자. 앞서 제시한 로드맵을 충실하게 따라가면서 임베디드 개발자가 갖춰야할 소양을 기르도록 도와주는 방식으로 되어 있음을 확인할 수 있다. 목차는 정말 그럴듯하지만 실제 본문에 들어가면 빈약한 내용으로 인해 배신감을 느끼는 일부 책과는 달리 이 책은 현업에서 바로 활용 가능한 내용으로 충실하게 채워져 있다.

  • 1장 시간분할의 장애물 넘기
    • 임베디드 소프트웨어에 요구되는 실시간 성능, 영수증 인쇄, 원칩 마이컴과 인터럽트, 실시간 OS의 기초, 실시간 OS의 동기/통신, 실시간 OS를 사용한 감열식 프린터 제어, 실시간 요구/하드웨어 의존에 기반한 소프트웨어 분할 지침
  • 2장 기능분할의 장애물 넘기
    • 2장에서 배우는 기술과 해당 기술이 필요한 배경, 기능적 분할 접근 방법, 스루풋 요구에 의한 기능적 분할의 지침, 기능적 분할과 시간적 분할의 통합(조율), 임베디드 소프트웨어 구조의 최적화
  • 3장 재사용의 벽 넘기
    • 체계적인 재사용의 성공, 임기응변적인 유용과 체계적인 재사용의 차이, 마케팅의 중요성, 도메인 분석, 재사용 자산의 이용과 관리, 핵심 자산의 신뢰성 검증
  • 4장 품질의 벽 넘기
    • 임베디드 소프트웨어에 요구되는 잠재적 가치, 임베디드 소프트웨어 품질 향상의 사고, 기본적 활동을 통한 시스템 신뢰성 높이기, 기존 소프트웨어의 품질 높이기, 타당성 확인과 검증, 조직성숙도에 따른 품질 향상 활동, 임베디드 제품의 잠재적 가치 향상

임베디드 관련 서적을 집필해본 B급 프로그래머 관점에서 보면 이 책은 임베디드 개발 과정에서 직면하는 어려움을 상당히 잘 잡아내어 체계적으로 정리했다는 생각이다(솔직히 많이 놀랬다). 물론 객체 지향 설계 기법을 적용하는 과정에서 (임베디드 분야에 끼워맞추려다보니) 조금 어색한 부분이 나오긴 하지만 대세에는 큰 지장은 없다. 무엇보다 추상적인 이야기 대신 현장에서 접해봤음직한 예제로 이야기를 풀어가는 방법을 사용하고 있으므로 이해하기가 수월하다. 일례로 1부와 2부에서는 감열식 프린터에 인쇄하는 사례가 점진적으로 발전되면서 전개되는데, 임베디드 분야에서 실시간의 중요성을 잘 드러내는 예제이므로 펌웨어를 개발해본 임베디드 개발자라면 충분히 공감하며 읽을 수 있을 것이다. 또한 다소 뜬구름 잡는 듯한 재사용과 품질 관련 기존 이론을 임베디드에 맞춰 줄이고 변경해 실천 가능한 형태로 일목 요연하게 제시한 3장과 4장에서도 여러 가지 좋은 사례가 나오므로 가려운 부분을 긁어줄 것이다.

결론: 초중급 임베디드 개발자라면 1부와 2부를 읽으며 기술적인 지식을 습득할 수 있으며, 중고급 임베디드 개발자라면 3부와 4부를 읽으며 개발 문화를 충실하게 다질 수 있다. 간만에 나온 재미있으면서도 유익한 임베디드 개발 서적이므로 강력하게 추천한다.

보너스: 원서 저자인 사카이 요시오 씨가 직접 Embedded Software Manufactory라는 좋은 블로그를 소개해주셨다. 구글 번역기를 사용해 한국어로 번역해서 읽어봤는데, 좋은 내용이 많이 나오므로 관심있는 임베디드 개발자 분들께서는 방문해보시기 바란다.

EOB

댓글 3개:

  1. 나는이 책의 저자입니다. 서평을 써 주셔서 감사합니다. 내 블로그 사이트도 꼭 참조하십시오. (google chrome에서 한국어로 번역하십시오)
    http://embeddedsoftwaremanufactory.blogspot.jp/

    답글삭제
  2. Dear Sakai

    Thanks for your comment. I added the URL of 'Embedded Software Manufactory' blog in this post. :)

    - Jay Park

    답글삭제
  3. 안녕하세요
    이 책을 번역한 조진제입니다.
    예전에 세미나에서 몇번 뵌 적이 있습니다.
    좋은 서평이네요.

    답글삭제