이전

리뷰 (3)

한줄평
평점 분포
  • 리뷰 총점10 67%
  • 리뷰 총점8 33%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 0.0
  • 40대 10.0
  • 50대 9.0
리뷰 총점 종이책
당신을 임베디드 전문가로 이끌어 줄 꼼꼼한 멘토링
"당신을 임베디드 전문가로 이끌어 줄 꼼꼼한 멘토링" 내용보기
중학교 때, 미로를 탈출하는 마이크로 마우스가 처음 등장했다. 살아 있는 쥐처럼 움직이는 마이크로 마우스에 매료되어 버렸다. 초등학교 때부터 더 빠르게 반응하는 게임을 만들고 싶어 6502 어셈블러를 공부한 나였지만, 하드웨어와 소프트웨어가 결합한 마이크로 마우스는 오르기 힘든 산이었다. 하드웨어와 그 하드웨어에 딱 맞게 제작된 소프트웨어에 대한 동경은 그 때부터 시작되
"당신을 임베디드 전문가로 이끌어 줄 꼼꼼한 멘토링" 내용보기

중학교 때, 미로를 탈출하는 마이크로 마우스가 처음 등장했다. 살아 있는 쥐처럼 움직이는 마이크로 마우스에 매료되어 버렸다. 초등학교 때부터 더 빠르게 반응하는 게임을 만들고 싶어 6502 어셈블러를 공부한 나였지만, 하드웨어와 소프트웨어가 결합한 마이크로 마우스는 오르기 힘든 산이었다. 하드웨어와 그 하드웨어에 딱 맞게 제작된 소프트웨어에 대한 동경은 그 때부터 시작되었다. 소프트웨어 개발, 컨설팅, 아키텍팅을 직업으로 삼으면서 하드웨어에 대한 동경은 점차 소프트웨어 공학으로 옮겨 갔다. GoF의 디자인 패턴을 처음 읽었을 때 어찌나 놀라왔는지 몇 달 동안 놓을 수가 없었다. 살아온 과정이 하드웨어와 디자인 패턴을 결합한 이 책을 만날 수 밖에 없었던 이유였나 보다.

이 책은 변화에 잘 대응할 수 있도록 임베디드 시스템을 설계하고 구현하는 방법을 설명한다. 보통 OO 언어로 구현하는 다양한 디자인 패턴을 임베디드 시스템의 주력 언어인 C로 구현하는 방법을 설명한다. 또, C로 OO 프로그래밍의 기본 철학인 캡슐화, 정보은폐, 위임을 어떻게 구현하는 지 설명한다. 디자인 패턴을 적용하여 임베디드 시스템의 문제들을 해결한다. 또, 데이터시트 읽기, 프로세서, 회로도 읽기, 디버깅, 테스팅을 다루어서 하드웨어에 대한 기초 설명도 빼놓지 않았다. 임베디드 시스템이 갖춰야 하는 OS 수준 작업도 I/O, Timer, IRQ, 태스크 관리, 주변장치 통신으로 나누어 잘 설명한다. 부트로더, 코드 올리기, 메모리 관리, 수치 계산, 전력 관리 같이 응용프로그램 수준 작업도 잘 설명한다.

초보자가 읽기엔 약간 부담스러울 수 있지만 임베디드 시스템 개발 전반을 잘 다룬 책으로 추천한다.

j******l 2013.07.28. 신고 공감 0 댓글 0
리뷰 총점 종이책
임베디드 시스템 프로젝트의 상세내용을 배우고 싶은가?
"임베디드 시스템 프로젝트의 상세내용을 배우고 싶은가?" 내용보기
우선 하드웨어 개발 사이클을 경험하지 못했기 때문에 이 책의 내용이 낯설었다. 하지만 오라일리 책의 특징인 정말 쉽게 쓰여져 있는 내용을 통해 웹 사전을 찾아가며 학습을 할 수 있었고, 관심을 갖고 있었던 임베디드의 첫 계단을 밟을 수 있었다.   이 책에서 얻을 수 있었던 가장 중요한 부분은 프로젝트 계획표의 상세한 내용이었다. 하드웨어팀과 어떤 계획을 통해 일을
"임베디드 시스템 프로젝트의 상세내용을 배우고 싶은가?" 내용보기

우선 하드웨어 개발 사이클을 경험하지 못했기 때문에 이 책의 내용이 낯설었다. 하지만 오라일리 책의 특징인 정말 쉽게 쓰여져 있는 내용을 통해 웹 사전을 찾아가며 학습을 할 수 있었고, 관심을 갖고 있었던 임베디드의 첫 계단을 밟을 수 있었다.

 

이 책에서 얻을 수 있었던 가장 중요한 부분은 프로젝트 계획표의 상세한 내용이었다. 하드웨어팀과 어떤 계획을 통해 일을 진행하는가 그에 대한 프로젝트 계획과 함께 그 상세 내용이 내가 하드웨어 프로젝트를 이해하는데 도움을 주었다.

임베디드 시스템의 사전적 정의를 이야기 한다면, 기계 또는 전자 장치의 두뇌 역할을 하는 마이크로 프로세서를 장착해 설계함으로써 효과적인 제어를 할 수 있도록 하는 시스템을 말한다. 이 때 소프트웨어(운영체제)를 컴퓨터처럼 디스크에서 읽어들이는 게 아니라 칩에 담아 기기에 내장시킨 형태의 장치를 말하는 것.


임베디드 시스템에서는 설계과정에서 불필요한 자원을 최소화 하는 것에 대해 언급한다.

그 고려해야 할 항목 5가지.

  • 메모리(RAM)
  • 코드공간(ROM, Flash)
  • 프로세서 사이클 (속도)
  • 전력 소모
  • 프로세서 주변장치

p. 42

코딩 가이드라인이 중요한 이유는 디버깅 시간을 절약하여 생산성을 높일 수 있기 때문이다.

구글 오픈소스 프로젝트 스타일 가이드: https://code.google.com/p/google-styleguide/ 

 

p. 55

임베디드 시스템에서는 MVC로 가상박스나 샌드박스를 제공해서 알고리즘 개발과 검증을 가능하게 함

 

그렇다면 샌드박스의 사전적 정의는 무엇인가? 

보호된 영역 내에서 프로그램을 동작시키는 것으로, 외부 요인에 의해 악영향이 미치는 것을 방지하는 보안 모델. (‘아이를 모래밭(샌드 박스)의 밖에서 놀리지 않는다’라고 하는 말이 어원). 이 모델에서는 외부로부터 받은 프로그램을 보호된 영역, 즉 ‘상자’ 안에 가두고 나서 동작.

한 블로그의 정리한 내용을 인용하자면,

 

 

디자인 패턴을 알기 전에 객체 지향을 알아야 한다.

 

물론 현대 개발자 중에 객체 지향을 모르는 경우는 거의 없을 것입니다. 하지만 중요한 것은 디자인 패턴은 객체 지향을 기반으로 한다는 것입니다. 객체 지향에 대한 완벽한 이해가 기본이 되어야 디자인 패턴을 이해할  있습니다.객체 지향에 대한 개념이 불명확한 초보 개발자들 혹은 절차 지향에 익숙한 개발자가 있을 경우는 디자인 패턴은 그만큼 불확실해   있으며 오히려  잘못된 설계를 야기할  있습니다.

 

개발자의 예측이 얼마나 적중할 것인가 

 

디자인 패턴은 설계 단계를 강조하고 있습니다.  변화 혹은 변경이 있을 것으로 예상되는 부분에 디자인 패턴을 적용해서 유용하게 대처하는 것입니다. 하지만 중요한 것은 개발자의 예측이 항상 맞는 것은 아니라는 점입니다. 예를들어  부분은 유연한 변경이 필요하므로 디자인 패턴을 적용하고  부분은 그렇지 않으니깐 적용하지 말자라고 가정하고 소프트웨어를 설계합니다. 하지만 실제로 고객은 디자인 패턴을 적용한 부분에 대해서는 변경 요청을 하지않지만 적용하지 않은 부분에 대해서는 변경 요청을   있습니다. 그리고 이러한 일이 매우 자주 발생한 다는 점에 문제가 있습니다. 실제로 개발자의 예측이 맞을 확률은  10% 되지 못한다는 주장도 있습니다.

 

디자인 패턴은 너무 어렵다.

 

국내의 대부분의 개발자들이 디자인 패턴을 공부하면서 얘기 하는 것이 너무 어렵다는 점입니다. 그렇다면 정말 디자인 패턴이 어려운 것일까요  사실은 그렇지가 않습니다. 근데 어렵게 느끼는 이유는 무엇일까요  그것은 대부분의디자인 패턴 책이 미국 책을 번역한 것이며 인터넷이나 잡지에 나오는 내용들 역시 미국에서 나온 자료를 토대로 하고 있다는 것이 문제 입니다. 미국의 개발자들은 오랜 기간 동엔 객체 지향 -> UML -> 디자인 패턴으로 옮겨오는 과정에 이미 익숙해 있습니다.  디자인 패턴을 설명하면서 객체 지향과 UML 대한 설명은 전혀 하지 않고 자연스럽게 해당 용어를 사용합니다. 하지만 국내 개발자들은 이러한 체계적인 과정 혹은 기술적인 적립이 매우 짧습니다. 그러므로 객체지향과 UML 등과 같은 체계에 익숙하지 않은 상태에서 디자인 패턴을 접하게 되므로 매우 혼동스러워 하게 되는 것입니다.

만일 디자인 패턴이 어렵다고 느낀 다면 자신이 객체 지향에 대한 이해가 부족하지 않은 지를 의심해 보고 다시 기본부터 공부  보는 것이 바람직 합니다.

 

디자인 패턴의 남용

 

어떤 분야의 엔지니어든 한번 공부한  혹은 터득한   중에서도 터득하는  아주 어려움을 겪었다면 이것을  적용하고 싶어하는 경향이 있습니다. 그리고 심지어 억지로 디자인 패턴을 적용하는 경우도 발생합니다. 비록 디자인 패턴이 고급 개발자들의 경험의 결과라고는 하지만 잘못 적용된 디자인 패턴은 오히려 소프트웨어를 어렵고 복잡하게만 합니다.

 

결국 이렇게 적용된 디자인 패턴은 프로젝트에  도움이 되지 않으며 재사용과 융통성 역시 이루어지지 않고  누구도 재사용하지 않는 결과로 나타나게 됩니다. 개발자들은 그냥 그래 디자인 패턴 한번 적용해 봤어라고 스스로 위안을 하고 프로젝트를 끝내게  것입니다.

 

결국 디자인 패턴을 성공적으로 적용하기 위해서는 디자인 패턴이 기반으로 하는 객체 지향에 대한 사고를 확실히 이해하고 있어야 하며 뿐만 아니라 디자인 패턴을 맹신해서도 안됩니다. 그러한 이유로 리팩토링과 XP 같은 다른접근 방법에 대해서도 함께 고려를 하고 병행해서 적용해야 합니다.

 

---------------------------------------------------------------------------------------------

IoT(Internet of Things)의 시대가 다가오고, 아두이노 & 라즈베리파이 등을 작동하고 스스로 자신의 아이디어를 실현하는 개발자들이 증가하고 있다. 이 책을 통해 하드웨어에 익숙해지고자 노력하였고, 다시 한 번 내가 배워야 할 부분이 많다는 것을 실감하게 되었다. 특히 하드웨어와 소프트웨어의 통합 (즉 하드웨어 프로젝트 계획과 그 상세내용) 내용 부분이 가장 필요했던 부분이었다.

 

간단한 기기를 만들고 작동시키는 것에서 만족하지 않고, 임베디드 시스템을 통해 프로젝트를 진행하고 그를 위한 디자인 패턴에 대한 이해를 하는데 도움이 될 책이다.

 

 

r*******3 2013.06.26. 신고 공감 0 댓글 1
리뷰 총점 종이책
디자인 패턴을 적용한 임베디드 시스템
"디자인 패턴을 적용한 임베디드 시스템" 내용보기
디자인 패턴을 적용한 임베디드 시스템  - 당신을 임베디드 전문가로 이끌어줄 꼼꼼한 멘토링     이 책은 디자인 패턴과 임베디드 시스템이라는 두 가지의 어려운 주제가 하나로 만들어진 책이라는 점에서 상당히 흥미롭게 다가왔습니다. 사실 소프트웨어 개발을 하고, 이에 대한 내용을 학습하는 측면에서 디자인 패턴은 끊임없이 개발자에게 도전의식을 일으키는 주제
"디자인 패턴을 적용한 임베디드 시스템" 내용보기

 


디자인 패턴을 적용한 임베디드 시스템

 - 당신을 임베디드 전문가로 이끌어줄 꼼꼼한 멘토링

 

 

이 책은

디자인 패턴과 임베디드 시스템이라는 두 가지의 어려운 주제가

하나로 만들어진 책이라는 점에서 상당히 흥미롭게 다가왔습니다.

사실 소프트웨어 개발을 하고, 이에 대한 내용을 학습하는 측면에서

디자인 패턴은 끊임없이 개발자에게 도전의식을 일으키는 주제중의 하나입니다.

좀 잘 하는 분들이라면 상관없을지 모르지만,

처음 시작해서, 어느 정도 자신의 실력을 쌓고 싶은 소프트웨어 개발자라면,

여러번 도전했다, 실패하고, 도전했다 깨지는 분야 중의 하나가 바로

디자인 패턴일 것입니다.

또한 임베디드 시스템도 마찬가지 입니다.

임베디드라는 말 한 마디로 뭉뚱그려 놨지만,

실제로 이 분야로 들어가면, 많은 도전이 뒤따르게 마련입니다.

이런 다양한 도전들을 즐길 수 도 있지만,

조금씩 앞으로 전진하기 위해서는

많은 학습과, 의지, 경험등이 필요하기 마련입니다.

소프트웨어 개발의 경험을 통해 디자인 패턴을 접해본 입장에서

이 책의 제목은 상당히 매력적이었습니다.

디자인 패턴으로 임베디드 시스템을 학습할 수 있다는 점에서 좋았지만,

한 편으로 이 책의 작은 분량이 부담스러웠습니다.

제가 읽었던 대개 전문서적이 그러하듯이,

이 책도 주제의 난이도나 어려움에 비해서, 책의 분량이 많지 않았기 때문입니다.

이런 경우에는 대개, 내용이 부실하거나, 내용이 충실하지만, 어려운 경우가

많았기 때문입니다.

개인적으로 임베디드에 대한 경험이 거의 없는 상황에서

쉽고 충실한 내용을 기대하지만,

쉽지 않은 것이 현실입니다.

이 책의 경우,

어느 정도 그런 부분에서 만족스러운 부분이 있었습니다.

이 책에서 정리된 시점과 내용을 통해

임베디스 시스템을 접근하는 방식에 대해서 알 수 있었고,

너무 어렵지 않게 되어있었기 때문에 다행히 재미있게 읽을 수 있었습니다.

다만, 이 책을 통해서 무엇인가 실습을 하기에는 부족했습니다.

이 책에서는 자세하게 무엇인가를 하는 것이 아니라,

좀 더 큰 그림을 그릴 수 있도록

도와준다는 생각이 들었습니다.

임베디드 시스템에 대한 다른 책을 보는데 도움이 되리라 생각합니다.

앞으로는 좀 더 어렵고, 내용도 많고, 두꺼운 책을 봐야겠지만,

맨 땅에 헤딩하는 것 보다는 더 나은 입장에서 시도할 수 있으리라 생각합니다.

임베디드 시스템에 대한 경험이 없는 분들에게는

디자인 패턴 이라는 익숙한 프레임을 통해서

임베디드 시스템에 대한 이해도를 높일 수 있는 좋은 도우미가 되리라 생각합니다.

 


 

 

 

YES마니아 : 골드 m*********u 2013.07.27. 신고 공감 0 댓글 0