임베디드 서적 몇 권 소개.
SI 동네는 엔터프라이즈 스택에서 보자면 꼭대기 층에 해당하죠. 꼭대기 층이라고, 팬트하우스처럼 집값이 비싼 건 아니지만요. 팬트하우스에 살다보면, SI 개발자는 현실감각이 떨어지기도 합니다. 여기서 말하는 현실감각이란, 윗동네에서 말하는 것이라기 보다, CPU근처에서 돌아가는 코드 수준의 현실감각이죠.
타계하신 박경리선생님이 인터뷰에서 말씀하셨던 것처럼, 진실해지려면 땅에 두발을 단단히 박고 살아야 하는데, 먹고 살다보니일하다 보니 밥벌이 중력에 이끌려 아랫동네, 즉 하드웨어 세상과 멀어지게 되었습니다.
현실감각을 키우기 위해 어셈블리 코드까지 통달할 필요는 없지만, 그래도 CPU에서 본인이 짠 비즈니스 로직 코드가 어떻게 돌아갈지, 컴파일러가 얼마나 최적화된 코드를 내놓는지까지(이것도 상당한 수준이지만) 알아두면 좋겠죠. 하지만, 목구멍 포도청이 아랫동네에서 노니는 것을 허락하지 않은니, 어쩔 수 없기도 합니다.
책 몇권 읽는다고 SI 개발자가 임베디드 쪽까지 기웃거리면서, 그쪽 동네 밥그릇까지 넘볼 수 없지만, 미리 준비하시는 분들에게 새로운 기회도 있고, 굳이 밥그릇 바꿀 필요가 없다고 해도, 알아두면 딱히 해가 될 것도 없기에, 시간이 되시면 임베디드 관련 서적도 읽어두시면 좋겠죠.
교양지식을 늘린다는 목적으로, 임베디드 하드웨어를 공부하려 전자회로 기초서적을 펴기에는 만만치 않습니다. 그다지 효과적이지도 않죠. 그럼 SI 개발자에게도 도움이 되면서, 임베디드 동네도 공부할만한 책은 (상당히 주관적이지만) 최적화 쪽인 듯합니다. 컴파일러가 좋아서 개떡같이 짜도 왠만하면 해당 CPU에 최적화된 소스를 내놓지만, 알아야 면장을 한다는 옛말을 생각해 볼 때, 내가 짠 소스가 어떻게 최적화될지 알아두는 것도 좋을 듯합니다.
책 소개하면서, 서두가 길었는데, 본론으로 넘어가면
우선 처음 소개드리는 책은, 한빛에서 나온 Blog2Book 시리즈 가운데 하나인 ‘임베디드 프로그래밍 C코드 최적화’입니다. 일단 이 책을 읽으시려면, C문법과 포인터에 관한 지식이 있으셔야 합니다.

한빛에서 기획한 Blog2Book 시리즈는 이 책이 처음 읽어본 것인데, 시리즈 컨셉이 괜찮습니다. ‘블로그에 담기는 양이 많고, 전문서적으로 가기에는 내용이 심도있지 않은 것’들을 모아서 책을 꾸민다는 것인데, 일종의 니치 마켓을 경향한 컨셉이죠. 내용이 깊은 책은, 마음 잡고 읽기 힘들고, 블로그에서 집중해서 글을 읽기 힘든 것을 생각해 보면요.
‘임베디드… 최적화’, 이 책도 시리즈의 컨셉을 담아냈습니다. 물론 이 책 한권을 다 읽는다고 임베디드에서 최적화를 다 알 수 없지만, 큰 줄기는 파악할 수 있습니다. 이 책에서 개요수준을 파악하셨다면, 에이콘에서 나온 Great Code 시리즈 가운데, 2권인 ‘로우레벨을 고려한 프로그램 최적화’를 읽어 보세요.

저는 Great Code 1,2권을 다 읽어봤는데, 1권에서 핵심적인 내용을 2권에서도 다루기 때문에, 굳이 1권을 보시지 않아도 됩니다(1권의 내용이 2권에서 그대로 나오는 경우도 있습니다. 일부분입니다. 하지만 흐미). 한빛 책에서 개요수준에서 다룬 최적화 기법이, Great Code 2권에서 폭넓게 다룹니다.
여기까지 읽으셔도 훌륭하지만, 최신 CPU의 동향(듀얼코어, 64비트)를 파악하고, 그런 CPU들이 나오게 된 이유를 프로그래머 관점에서 알고 싶으시다면, 에이콘에서 나온 ‘인사이드 머신’을 읽어 보세요. 보기 드물게 컬러판이기 때문에, 눈도 즐겁습니다. 물론 이 책도 개요수준이기 때문에, 이 책 한권 읽고 주름 잡기 그렇지만, 최신 CPU에 대한 마케팅용어에도 익숙해지고, 왜 그런 것들이 나오게 되었는지 감을 잡으실 수 있습니다.

이 글을 쓰면서, 책 장에 꽂혀 있는 컴퓨터 구조론에서 교과서처럼 쓰이는 ‘컴퓨터 시스템 구조’ 책이 눈에 들어오는데, 이 책을 읽어보셔도 좋지만, 설명이 조금 교과서적이어서 삼키시기가 쉽지 않습니다. 위의 세 책을 보시고 나서, 이 책을 읽고 마지막으로 정리해 보시는 것도 좋을 듯합니다.
