컴파일러 구조와 원리 - 컴파일러로 배우는 언어 처리 시스템
아오키 미네로우 지음, 이영희 옮김 / 한빛미디어 / 2010년 9월
평점 :
품절


컴파일러론은 전산 관련 학부 과정에도 심심찮게 포함되어 있는 과정이지만
실제를 이를 완벽히 이해하고 졸업하는 학생들은 별로 없다.
나 역시도 컴파일러를 정복해 보려고 여러번 시도는 해보았지만
그 때 마다 번번히 포기의 쓴 맛을 보았다.

컴파일러 책을 보면 초반에 나오는 구문분석이니 의미해석이니
하는 부분 부터 숨이 턱턱 막혀오더니 이내 검은 것은 글씨요 흰 것은 종이로 보이는
기묘한 상태를 경험하고 이내 책장을 덮어 버리고 만다.
기존 컴파일러 책들이 주로 오래전에 출간된 영미권 원서를 번역한 것인데 반해
이 책은 일본인 저자의 책을 번역한 것이고 최근에 나온 것이라는 것은
다시 한 번 희망을 가지고 일독을 해보게 끔 용기를 주었다.

결론 부터 말하면 이 책은 이전에 읽었던 컴파일러 책과 비교하면 놀랄만큼 쉽다.
(물론 이전에 공부하다만 시도들이 도움이 된 것일 수도 있겠다.)
그렇다고 다루는 내용이 부실한 것도 아니다.
이론 중심이 아니라 실개발 위주로 되어 있어 난해함도 덜하고
처음 부터 끝까지 개발하기가 너무나도 어려운 구문 분석기도 간단히 javaCC를
활용하여 개발 부담을 덜었다.

책의 목표는 Cb (C 플랫) 이라는 컴파일러를 완성해 가는 것이다.
Cb는 C언어의 일부기능을 준으로 일부 기능을 제거한 학습 목적의 컴파일러다.
.NET의 C#이 C의 기능을 한단계 올렸다는 의미인데 반해
C를 기준으로 기능을 한 단계 낮추어 Cb라고 명명한 것은 상당히 센스 있다.

이해하기 쉽게 설명해준 저자와 역자 덕에 컴파일 책을 처음으로 완독 할 수 있었지만
사실 책을 한 번 읽는 다고 새로운 컴파일러를 만들기는 어려울 것이다.
특히 정규표현식을 이용한 구문 분석 같은 부분은 내용이 함축적이고 난해한 면이 있어서
써놓은 규칙은 간신히 따라가며 이해한다고 하더라도
자신의 체계에 맞게 구문 규칙을 만들어 내는 것은 또 다른 수준의 일이기 때문이다.
그러나 새로운 컴파일러를 만들지는 못한다 하더라도
그 과정에서 배운 내용들은 여러 분야에 적용 할 수 있을 것이다.

댓글(0) 먼댓글(0) 좋아요(4)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
윈도우 프로그래밍 : Visual C++ MFC Programming - 개정판 IT Cookbook 한빛 교재 시리즈 118
김선우.신화선 지음 / 한빛아카데미(교재) / 2010년 7월
평점 :
구판절판


이 책은 Visual C++을 활용한 윈도우 프로그래밍 개발에 관하여 다룬다. 

이미 국내외에 많고 많은 Visual C++ 책들이 나와 있다. 그 중에는 'MUST HAVE' 라 할만한 명저도 있고 따라하기식 입문서도 있으며 실습 위주의 책 등등 갖가지 특징을 가진 VC++ 책들이 나와있다. 그런데 구태여 거기에 또 다른 책을 보탤 필요가 있을까 ? 

이런 의구심을 가지고 책을 읽었는데, 그래도 나중에 나온 책이니 만큼 기존 책들의 장점들을 잘 흡수하여 정리한 책인 것 같다.

우선 기존의 Visual C++ 책들을 보면 대게 배게 사이즈 두께가 많고, 얇은 책이 거의 없는데 반해 요 책은 얇은 두께임에도 불구 하고 다룰 내용은 다 다루고 있을 만큼 불 필요한 내용 없이 간결하게 잘 정리 되어있다.

내용도 뜬 구름 잡는 소리보다는 실무에 활용되는 내용 위주로 담고 있고, 그림이 많아 이해가 쉬워 내용을 따라가는데 무리가 없다. 

특히 중간 중간에는 '현장의 목소리' 라는 코너가 있는데, 유용한 팁과 초보 개발자가 궁금해 할만한 가려운 부분을 다루고 있다. 요 코너만 잘 읽어도 책 값은 뽑을 것 같고, 실무에도 도움이 많이 될 듯 싶다.  

책 외관역시 종이 질도 좋고 제본 상태도 양호하여 만족스럽다.

단 책 두께에 비해 조금 무거운게 흠이다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
OpenCV 제대로 배우기 - Learning Opencv
개리 브래드스키 외 지음, 황선규 옮김 / 한빛미디어 / 2009년 9월
평점 :
구판절판


예전엔 키보드로 두드리는 것이 다 였는데,
이제는 음성인식에 영상인식 까지 한다.
우리 사람은 너무나도 훌륭해서 옆에 트럭이 지나갈때 기침하면서 하는 친구 얘기도 대충 알아 듣고
가로등도 달빛도 없는 한밤 중의 시골길도 차를 운전해서 잘 지나 가지만,
요런걸 컴퓨터에게 하라고 하려면 그건 참 기가 막히는 일이다.
십억단위 연산도 눈깜짝 할 사이에 해내는 문명의 이기인 컴퓨터를 보면
이까짓 일이야 누워서 떡먹기일 것 같지만
알고 보면 컴퓨터란 계산만 엄청 빠른 답답한 구석이 있는 기계다.

이 계산 빨리하는 답답한 친구의 눈을 뜨게 하기 위한 연구는 요즘 웬만한 랩에서 다 하고있는
패턴인식이니 무엇이니 하는 것들이다.
OpenCV 역시 이것과 관련된 라이브러리이며
더구나 이름에서 느껴지듯 공개된 라이브러리다.
OpenCV로 영상 처리를 할 수도 있지만 그것은 한 부분이고
주된 목적은 영상으로 부터 어떤 정보를 추출하는 것이다.
이를 테면 사진을 보고 사람이 몇 명있는지 센다던가
사진속의 장소가 어디인지 알아내는지의 정보를 알아낸다.
우리가 늘상 하고있는 이런 동작이 쉽게도 생각될 수 있겠지만,
다시 말하지만 컴퓨터가 이런 일을 하게하는 것은 정말 어렵다.

이렇게 어려운 일을 일개 개발자가 하는 것은 거의 불가능에 가까운데
다행스럽게도 무료로 공개된 OpenCV를 이용해서 맛보기를 할 수 있다.
OpenCV 관련 책자가 몇 권 나와있긴 하지만 대부분은 레퍼런스 번역 수준에 불과하고
그중에서 이 책이 가장 잘 다루고 있다.
책의 서두에서는 이 책은 실용서이기 때문에 기반이 되는 지식에 대해서 충실히 다루지 않겠다고 언급했지만
그 말이 무색하게도 이 책 만큼 관련 이론을 다루고 있는 책도 없다.
물론 기반 지식에는 복잡한 수학 내용이 많기 때문에
이 책 하나로만 두루 섭렵하기는 어렵지만 그래도 책을 읽을 수 있는 정도로는 배려해 주고있다.
다만 어색한 번역투에 매끄럽지 않은 문장이 보이긴 하지만 내용을 이해못하는 정도는 아니고
관련 도서가 거의 없는 상황에서 OpenCV 관련해서 이 책의 대안은 없는 듯 싶다.

댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 Blog2Book 시리즈 9
김민장 지음 / 한빛미디어 / 2010년 5월
평점 :
절판


코어2듀오, 코어2쿼드 라는 새로운 용어들이 많이 들린다.
기존에는 펜티엄 700, 펜테엄 900 이니 했었는데,
개인용 PC의 CPU에도 새로운 패러다임이 나타난 것이다. 

하나의 CPU의 클럭 속도를 높이는데 한계가 나타나자 병렬 CPU가 나타나기 시작했다.
이제는 CPU 클럭만 봐서는 어느것이 빠른 CPU인지 알기 어렵다.
클럭 속도가 낮아도 병렬화된 CPU는 보다 높은 성능을 낼 수 있다. 

이런 트렌드의 변화의 바람이 불고 있는 시점에서
컴퓨터를 전공한 본인도 그 속이 어떤 원리로 돌아가고 있는지는 미처 알지 못했다.
그러던 와중에 이 책을 보게 되었는데,
비교적 최신의 이야기를 담고 있으면서도 어렵지 않게 설명하고 있어
많은 부분에 대해 새롭게 알게 되었고 큰 도움이 된 것 같다.
블로그를 엮은 책이라 그런지 설명이 쉽고 따라가는데 부담이 없어 좋았다. 

책 초반에는 일반적 CPU 동작에서 부터 뒤로 갈수록 최신의 병렬처리 CPU에 관한 이야기가 순차적으로 나온다. 따라서 앞 부분은 이미 일반적인 CPU 동작에 대해서 알고 있는 독자라면 조금은 지루한 부분이 될 수 있을것이다. 반면 중반부 이상 가면 흥미로운 주제가 다루어 진다.

책의 내용은 괜찮지만 이 책의 완성도를 떨어뜨리는 가장 큰 단점은 문장들이다.
최신의 흥미로운 토픽을 다루고 이를 알기 쉽게 설명하고 있음에도 불구하고,
적지 않게 튀어나오는 앞뒤가 맞지 않는 어색한 문장과 습관적으로 나오는 불필요한 미사여구가 책에 대한 집중력을 떨어뜨린다. 이부분만 제외하면 괜찮은 책이다.


댓글(0) 먼댓글(1) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
  1. 프로그래머가 몰랐던 멀티코어 CPU 이야기 -김민장
    from 김재호의 디지털보단 아날로그 2010-07-08 20:37 
    프로그래머가 몰랐던 멀티코어 CPU 이야기 - 김민장 지음/한빛미디어 쿼드 코어가 대중화되기 시작할 때였으니깐 2008년도 쯤이었나보다. 예전에 친구들하고 술을 마시면서 컴퓨터 이야기를 했었다. 우리들은 다 같은 컴퓨터 공학도라서 술마시면서 기술에 대해서 많이 얘기하곤 하는데, 그 날은 CPU 얘기가 나왔다. 한 친구녀석이 컴퓨터를 새로 샀다고 자랑을 하면서, 코어가 많아지면 돈만 비싸지고 실제로는 싱글코어보다 더 느릴 수 있다는 얘기를 했다. 그..
 
 
 
안드로이드 프로그래밍 정복
김상형 지음 / 한빛미디어 / 2010년 5월
평점 :
절판



모바일이 대세다.

엊그제는 애플의 시가총액이 MS를 뒤엎었다 한다.

이건 단순히 한 회사의 실적에 관한 이야기가 아니다.

시대의 흐름을 보여주는 것이다.

 

윈도우와 리눅스의 경쟁에서

리눅스는 별 힘을 못쓰는 듯 했다.

PC 시장에선 압도적으로 밀렸으며,

그나마 서버시장에서나 그럭저럭 점유율을 유지했다.

그러나 무슨 상관인가?

리눅스는 돈벌려고 만든것이 아닌것을...

그러니까 리눅스가 파산한다던가 하는 일은 없다.

 

요즘엔 임베디드 OS로도 리눅스가 부상하고 있다.

필자가 개발하는 텔레비젼 OS도 리눅스로 바뀐지 오래다.

이전에는 VxWorks 같은 상용 OS를 썼었다.

 

여기에 모바일용 OS인 안드로이드가 나타났다.

안드로이드는 새로운 OS가 아니다.

바로 리눅스의 자식인 셈이다.

그래서 장기적으로 아이폰을 능가할 것으로 점처지는

안드로이드의 선전은 리눅스 진영에 날개를 달아주는 일이 될 것이다.

 

이제 책에 대해 이야기해 보자 

"안드로이드 프로그래밍 정복" 의 저자는 같은 "xxx 정복" 시리즈인 

윈도우즈 API 정복과 비주얼 C++ 정복의 저자 이기도 한데,

나도 이들 책으로 공부했었고 도움을 받았던 터라 책을 보기 전 부터 신뢰가 갔다.

새로운 기술이 떠오르는 시기에는 찌질한 책들이 참 많이도 나온다.

저자들이 해당기술에 대한 확실한 이해 없이도 황급히 책을 출간하기 때문이다.

이런 부족한 책들을 화려한 표지와 타이틀에 속아서 사면

그야말로 돈과 시간과 노력을 낭비하게 된다.

그런면에서 이 책은 어느정도 품질의 보증을 하고 있는 셈이다.

지금까지 양서를 출간해온 저자가 돈 조금 벌자고

황급히 찌질한 책을 쓸 가능성은 별로 없다.

 

기술서적의 특성상 옆에 두고 반복해서 보아야 그 진가를 알 수 있지만

일단 일독해 본 평가로는 다소 아쉬운 부분도 있지만 만족할만한 수준이다.

Windows API, MFC 분야의 집필 경험이 있는 저자의 글인 만큼

안드로이드에 관한 내용을 단순히 레퍼런스를 번역한 수준이 아닌

해당 API의 숨겨진 의미와 쓰임새에 대해서 잘 설명하고 있다.

즉 구름에 달가는 애매한 설명을 하고 있지 않다는 말이다.

애매모한 저자의 설명을 읽고 있노라면,

자신의 머리가 돌이 된 것은 아닐까 하는 의구심까지 들어

극심한 스트레스에다 자신감마저 상실하게 된다. 

 

그리고, 아직은 고가의 안드로이드 장비를 갖고있는 개발자가 많지 않을 것을 감안해서

에뮬레이터 설치법 부터 개발 툴 킷 다운 받는 법까지 친절하게 설명하고 있는데,

이런 배려 때문에 설치 부터 애먹고 코딩도 못해보고 지쳐버리는 경우는 피할 수 있겠다.

 

아쉬운 점도 있다.

안드로이드 프로그래밍을 위해서는 XML과 JAVA를 선행에서 알고 있어야 한다.

물론 어떤 XML 책은 본서 보다도 두꺼울 정도로 그 내용이 방대하기도 하지만

안드로이드 개발에 필요한 부분은 그 중 극히 일부분이기 때문에

한 챕터 정도 할애해서 다루었으면

독자들이 별도로 XML을 찾아 보지 않아도 되고 편리했을 것 같다.

반면 JAVA는 시중에 공부할 책도 많고

내용 요약도 쉽지는 않으므로, 다루지 않은 것이 적절하다.

 

그리고 이 책이 안드로이드의 세계에 손쉽게 입문할 수 있도록 친절히 쓰여져 있긴 하지만

이전의 정복 시리즈에 비해서는 정복이라고 하기에는 조금은 부족한게 아닌가 싶다.

저자의 이전 저서들은 해당 분야를 충분히 커버하고 있었던 것에 비하면 조금 아쉽다.

 

마지막으로 책의 내용 안배가 너무 GUI 프로그래밍 쪽에 치중된 것 같다.

물론 GUI 프로그래밍이 가장 기본이고 필수적인 부분이긴 하지만

안드로이드에 포함된 여러 라이브러리와 네트워크에 관한 내용도

좀 더 비중을 두어 다루었으면 좋았을 것이다.

 

사실 몇 가지 아쉬운 점에도 불구 하고

아직까지 시중에 이 책만큼 안드로이드를 잘 설명하고 있는 책은 없는 것 같다.

안드로이드 개발 입문서로는 단점을 찾아 볼 수 없다.



댓글(0) 먼댓글(0) 좋아요(6)
좋아요
북마크하기찜하기 thankstoThanksTo