◈ 지은이 소개 ◈
짐 레딘(Jim Ledin)
레딘 엔지니어링사의 CEO로, 임베디드 소프트웨어/하드웨어 설계 및 개발, 테스트 전문가다. 임베디드 시스템 사이버 보안 평가 및 모의 해킹에 참여했다. 아이오와 주립대학교에서 항공 공학을 전공했고, 조지아 공과대학에서 전기 및 컴퓨터 공학으로 석사를 받았다. 캘리포니아주 공인 전문 전기기사이며, CISSP(Certified Information System Security Professional), CEH(Certified Ethical Hacker), CPT(Certified Penetration Tester)이다.
◈ 옮긴이의 말 ◈
임베디드 디바이스를 만들고 동작시키려면 다양한 기술이 필요하다. 그러므로 여러 팀의 협업이 필요하다. 임베디드 디바이스를 다루는 대학이나 회사들은 임베디드 디바이스를 크게 소프트웨어와 하드웨어로 나누고, 기술별, 모듈별, 부품별로 세분화해 연구나 작업을 진행한다. 이런 세분화된 팀을 만들어 각 업무의 전문성을 높이는 것은 업무의 효율성을 높이는 장점이 있다.
다만 소프트웨어 엔지니어나 하드웨어 엔지니어가 이런 세분화된 팀에서 각자 맡은 일 혹은 연관된 일만 수행한다. 그래서 실제 임베디드 디바이스 동작을 위한 다른 중요한 작업에 대해서 모르는 경우가 많다. 예를 들어 임베디드 소프트웨어 엔지니어들은 이미 만들어진 기본 보드위에서 기능을 개발하기 때문에 보드 관련 정보나 하드웨어 관련 정보를 알지 못하는 경우가 많다. 이런 정보 부족은 최적화를 위한 크로스 레이어 설계를 할 수 없게 만든다. 역자 역시 임베디드 및 반도체 업계에서 펌웨어 및 드라이버를 개발하지만 하드웨어 관련 용어나 지식이 부족해 문서 이해 등 여러 어려움을 겪었다. 또한 하드웨어 엔지니어와 의사소통이 원활하지 않았던 적도 있다. 심지어 소프트웨어 내부에서도 여러 계층이 있어 각 계층간 지식 공유가 원활하지 않은 경우도 흔하다.
개발 혹은 연구하는 임베디드 디바이스가 어떤 설계 및 개발 과정을 거치고 어떤 부품들이 조합되며 유지보수 되는지 전체적으로 살펴볼 기회가 있다면 임베디드 디바이스를 최적화할 수 있다. 물론 개발자 스스로의 역량에도 도움이 될 것이다.
이 책은 임베디드 디바이스 개념에서 시작해 디바이스에서 동작하는 운영체제, 고성능 작업을 위해 임베디드 디바이스에 연결되는 FPGA 개발, 보드 브링업, 펌웨어 개발 및 디버깅까지 다룬다. 임베디드 디바이스 개발 전체 과정을 디지털 오실로스코프를 직접 만들며 설명하고 있어 독자는 실제적인 임베디드 디바이스 개발을 직접 혹은 간접적으로 겪어볼 수 있다. 이를 통해 담당하지 않았던 다양한 분야의 작업들을 알 수 있을 것이다.
임베디드 디바이스의 다양한 분야를 다루기 때문에 독자와 친숙한 부분도 있지만 친숙하지 않은 부분도 있을 수 있다. 그러나 저자가 이런 부분들은 쉽게 설명하고, 실제 예제로 독자가 직접 수행할 수 있으므로 무난하게 이해할 것이다. 나는 알지 못했던 지식들을 배우며 재밌게 번역을 했다. 같은 임베디드 업계의 동료로서 독자들도 이런 재미를 느끼고 조금이나마 지식에 도움이 되기를 바란다.
정병혁
리눅스 기반의 고성능 프로세스를 채용한 임베디드 시스템이 보편화됐다. 이는 소프트웨어 엔지니어가 하드웨어에 대한 지식이 부족하더라도 잘 갖춰진 개발 환경에서 요구사항에 부합하는 애플리케이션을 개발하고 배포하는 것을 가능케 했다. 최근 들어 IoT 환경과 같이 다량의 저가형 디바이스를 사용하거나 비용 문제로 리눅스 기반의 범용 시스템을 사용하지 못하는 경우가 있다. 이런 요구사항에도 적합한 시스템을 설계하고 개발할 줄 알아야 한다. 하지만 현재 분업화된 개발 환경에서는 자신의 개발 영역이 아닌 부분에 대한 지식을 습득하기 어렵다.
이 책은 고성능 임베디드 시스템 설계를 위한 전체적인 내용을 다룬다. 독자에게 익숙한 부분도, 생소한 부분도 있을 것이다. 천천히 따라가다 보면 디지털 오실로스코프를 직접 만들어 보면서 전반적인 임베디드 시스템 전체에 대한 이해를 높일 수 있을 것이다. 더불어 현재 개발 중인 임베디드 시스템에 대한 이해를 높이고, 각 계층을 이해하고 협업을 하는 데 도움이 될 것이다.
곽종원
◈ 옮긴이 소개 ◈
정병혁
고려대학교 컴퓨터학과와 동 대학원 네트워크 연구실을 졸업한 뒤, 임베디드 환경에서 Wifi 드라이버/펌웨어 개발 및 안정성 이슈를 담당하고 있다. 임베디드 환경에서의 펌웨어, 드라이버, RTOS, Linux/Android, WIFI 분야에 관심이 많다.
곽종원
경희대학교 기계공학과와 고려대학교 대학원 네트워크 연구실을 졸업했다. 스마트 TV 환경에서 방송 시스템과 서비스 애플리케이션을 개발하고 있다.