디자인 패턴을 적용한 임베디드 시스템: 당신을 임베디드 전문가로 이끌어줄 꼼꼼한 멘토링
도대체 내가 만든 프로그램이 어떻게 동작하는 거지?
내가 만든 프로그램이 하드웨어의 LED에 불을 켜거나 스피커로 음악이 흘러나오게 할 때 프로그래머라면 누구나 ‘어떻게 하드웨어가 동작하길래?’라는 의문을 품게 된다. 이 책은 이러한 의문에 대한 답변을 준다. 외부장치와의 입출력, 내부 메모리의 구성, 코드를 저장하거나 파워를 절약하는 방법까지 이제 하드웨어의 동작방법을 이해하고 소프트웨어를 보자.
- 저자 : 엘레시아 화이트
- 번역 : 우정은
- 출간 : 2013-06-22
임베디드 시스템 만들기
중학교 때, 미로를 탈출하는 마이크로 마우스가 처음 등장했다. 살아 있는 쥐처럼 움직이는 마이크로 마우스에 매료되어 버렸다. 초등학교 때부터 더 빠르게 반응하는 게임을 만들고 싶어 6502 어셈블러를 공부한 나였지만, 하드웨어와 소프트웨어가 결합한 마이크로 마우스는 오르기 힘든 산이었다. 하드웨어와 그 하드웨어에 딱 맞게 제작된 소프트웨어에 대한 동경은 그 때부터 시작되었다. 소프트웨어 개발, 컨설팅, 아키텍팅을 직업으로 삼으면서 하드웨어에 대한 동경은 점차 소프트웨어 공학으로 옮겨 갔다. GoF의 디자인 패턴을 처음 읽었을 때 어찌나 놀라왔는지 몇 달 동안 놓을 수가 없었다. 살아온 과정이 하드웨어와 디자인 패턴을 결합한 이 책을 만날 수 밖에 없었던 이유였나 보다.
이 책은 변화에 잘 대응할 수 있도록 임베디드 시스템을 설계하고 구현하는 방법을 설명한다. 보통 OO 언어로 구현하는 다양한 디자인 패턴을 임베디드 시스템의 주력 언어인 C로 구현하는 방법을 설명한다. 또, C로 OO 프로그래밍의 기본 철학인 캡슐화, 정보은폐, 위임을 어떻게 구현하는 지 설명한다. 디자인 패턴을 적용하여 임베디드 시스템의 문제들을 해결한다. 또, 데이터시트 읽기, 프로세서, 회로도 읽기, 디버깅, 테스팅을 다루어서 하드웨어에 대한 기초 설명도 빼놓지 않았다. 임베디드 시스템이 갖춰야 하는 OS 수준 작업도 I/O, Timer, IRQ, 태스크 관리, 주변장치 통신으로 나누어 잘 설명한다. 부트로더, 코드 올리기, 메모리 관리, 수치 계산, 전력 관리 같이 응용프로그램 수준 작업도 잘 설명한다.
초보자가 읽기엔 약간 부담스러울 수 있지만 임베디드 시스템 개발 전반을 잘 다룬 책으로 추천한다.