[책] 집단지성 프로그래밍 외 6권

그간 좀 회사 일이 바쁘다 보니 오히려 관련된 포스팅은 몇 개 올렸는데 북리뷰를 못 올리고 있었습니다. 덕분에 오늘 풀어놓은 책이 한 가득 입니다.

각 책을 소개하기 전에 책을 저처럼 많이 사다보면 생기는 재밌는 것들을 알려드릴까 합니다.

온라인서점이 아니라도 싸다!
VIP나 플래티넘 등급을 각 서점마다 유지하고 있는 저에게 각 서점에 맞는 할인카드도 물론 다 갖고 있는 저에게 오프라인에서 사는 책의 가격은 신간의 경우 온라인의 10%와 비교해서 비싸지 않고 오히려 더 싼 경우도 많이 있습니다.

좋은 책은 절판된다.
컴퓨터 사이언스는 눈부시게 변화하지만 놀랍게도 좋은 책은 여전히 클래식하게 생명을 유지합니다. 따라서 책이 좀 괜찮으면 출판사가 망하기 전에 사모아 둘 필요가 있답니다.

역서를 사자.
안타깝게도 국내 출판의 실정 상 책의 저자는 두 가지를 강요 받는 듯합니다. 첫 번째는 초보자용 책을 써야 한다는 점과 거의 용돈벌이도 안되는 돈으로 책을 써야 한다는 점이죠. 이러한 현실에서 좋은 책이 나오길 기대하는 건 상당히 무리입니다. 역시 역서죠. 캐스트어웨이처럼 아카데미만 노리고 달려드는 영화가 있는 것처럼 졸트상만 노리고 TF를 짜서 달려드는 팀들이 우글거리는 해외 출판업계에서 튀어나는 수작들은 일단 한국 출판 시스템이 변화할 만큼 여러분이 저만큼 책을 많이 사주시거나 책 값이 현재의 네 배정도가 되기 전까진 무리가 아닐까요.

기술은 흐른다.
기술은 계속 흘러갑니다. 정확하게는 모든 지식이란 계속 강물처럼 흘러가서 어느 순간에는 완전히 흘러가버린 지식이 되죠. 따라서 두 가지를 신경 써서 계속 책을 봐야 할 필요가 있습니다. 지식의 흐름에 맞춰 새로운 흐름을 받아들이고 흐름이 움직이는 방향을 지속적으로 느끼기 위해서가 첫 번째 일 테고 지식의 흐름 밑에 고요히 자리를 지킬 수 있는 기본 또는 지식의 흐름에서 방향을 가늠할 수 있는 기준이랄까 그러한 지식을 통찰할 수 있는 힘..즉 지혜를 갖춰가는 것도 동시에 신경 써야 합니다. 따라서 두 번째로 책을 계속 봐야 하는 이유는 지혜를 계속 강화하기 위해서라고도 할 수 있을 듯합니다.

원서를 사자.
원서를 보는 것은 마치 택시를 타고 가는 것과 같습니다. 가야할 곳에 곧장 도달하죠. 하지만 역서를 기다리면 버스를 기다리는 것과 비슷합니다. 보다 알기 쉽게 설명하면 원서는 5edition이 나오는데 역서는 3판만 나와있는 경우라 할 수 있죠. 그나마 이건 괜찮은 편이고 역서가 나오지 않은 좋은 원서는 수두룩하니까요.

집단지성 프로그래밍

뭐 워낙 유명한 책이라 구지 설명이 필요 없을 듯합니다만, 클라우드 소싱을 실제 구현하는 건 쉽지 않습니다. 기획적인 베이스를 갖춰다고 해도 기술적인 형태도 기존의 중앙통제식과 매우 다른 형태로 일어나기 때문이죠. 특히 추론엔진이 중간중간 클라우드가 도출한 결과물에 도움을 제공하지 않는다면 결국 집단지성은 쓰레기정보를 향해 맹렬히 돌진하기 마련입니다. 따라서 이 책의 전반적인 기술내용을 보다면 선언적 언어에 대한 니즈가 생깁니다. lex,yacc를 넘어 결국 저로 하여금 오랜만에 prolog로 돌아갈 생각을 하게 만들어주었습니다.

언어정보처리를 위한 PROLOG

으햐. 이걸 갖고 놀던 지가 10년도 더 전인 거 같은데 말이죠. 선언형 언어는 절차적 언어에 중독되어 중간중간 함수형언어의 특징만 덧붙여 괴물같은 형태의 언어구문만 사용해온 현대 개발자에게 엄청 생소한 느낌으로 다가옵니다.
뭐랄까 실리주의만을 추구하여 서포트되는 문서와 IDE의 도움없이는 제대로 개발할 수 없는 현재의 언어가 사바세계의 카오스라 하면 프롤로그의 언어철학은 고상한 상아탑 분위기입니다. 현대인이 선언적 구문을 만나는 경우는 언어 자체에 대한 스펙이나 컴파일러, 파서를 작성할 때 정도입니다. 그 외엔 좀 마법과 같은 지식정보시스템 같은 것에 한정적으로 사용됩니다.
이 모든 얘기가 뜬 구름 잡는 느낌 이실테니 간단히 프롤로그의 샘플을 의사코드로 표현해보겠습니다.

아들은 엄마의 자식이다.
딸은 엄마의 자식이다.
엄마의 자식은 아빠의 자식이다.
X의 자식이면 X는 자식의 부모다.

이러한 로직을 미리 짜면 엄마는 누구의 부모인가, 아들은 아빠의 자식인가 같은 질문에 참 거짓을 답할 수 있게 됩니다. 곰곰히 생각해보면 불린을 리턴하는 함수의 연쇄로 질의구문을 파싱하면 사전에 정의된 지식데이터베이스를 뒤져 결론을 도출하게 되는 거죠. 이를 추론엔진이라 부릅니다.

위의 예에선 사람도 할 수 있을 거 같지만 제가 지식 베이스를 만개쯤 채우고 그거라면 그거 라는 식의 로직을 5단계쯤 추가하면 추론엔진의 도움 없이는 사람의 두뇌로 어떤 질문이 맞는 지 틀린 지 판단하는 건 불가능하죠. 물론 이러한 구문은 절차적 언어에서도 가능합니다만, 프롤로그는 언어 수준에서 지식의 정의, 질의 해석이라는 기능을 기본적으로 제공하기 때문에 기저층을 만들 필요 없이 곧장 지식베이스를 만드는 과정으로 들어갈 수 있다는 게 장점입니다. 따라서 다양한 구문 파싱에도 손쉽게 대응할 수 있고, 약간 마법과 같은 기완이는 오늘 점심에 돈까스 먹고 싶어하니? 머 이런 질문에도 예스노가 나오게 만들 수 있습니다.

프롤로그는 자료구조적으로는 기본으로 배열과 비슷한 리스트를 지원하는데 이 리스트에 여러 가지 적용할 수 있는 연산도 다른 언어가 배열에 제공하는 메서드보다 훨씬 발전되고 재밌는 기능이 많습니다. 엄청 오래된 언어인데도 프랑스 사람들의 세계는 참 재밌는 듯. 새삼 복습하면서 구문을 찬찬히 곱씹다보니 이런 저런 생각이 회오리 치며 몇 가지는 현재 제작 중인 언어 프레임웍에 적용 해봐야겠다는 생각을 하고 있습니다.

NHN은 이렇게 한다! 소프트웨어 품질관리

제목에 매우 충실한 책입니다. 네이버에서 소프트웨어 품질관리를 어떻게 하는지를 자세히 설명하고 있습니다. 약간 착각하시면 안되는 게 어떻게 하는지를 자세히 설명한다는 뜻이 여러분이 이 책을 읽고 그걸 실행할 수 있는 형태로 자세하다는 게 아닙니다. 예를 들어 NHN에선 코드의 품질관리를 위해 이런저런 항목을 만들고 관리하고 있습니다 정도로 설명하는 게 아니라 매우 자세하게 어떤 항목으로 어떤 프로세스에 의해 어떻게 관리하고 있다라고 나옵니다. 하지만 코드커버리지 관리를 실제로 어떻게 하는 건지에 대해서 자세하게 나오는 게 아니라 코드커버리지란 뭔데 그걸 개발자에게 꼭 적용하게 해서 평가는 어떻게 하고 관리는 어떻게 한다라는 부분이 자세한 편입니다.

나름 기업 선전용으로 만든 책이라 기획자의 유도장치에 의해 책을 다 읽으면 NHN은 참 훌륭한 회사구나 라는 의식에 도달하도록 안배되어있습니다. 그걸 위해 얼마나 뻥을 섞고 이상적인 이야기를 한 건지 판단은 안 서지만 이 책이 제시하는 이상론은 한 번쯤 막연한 상상에서 보다 구체적인 적용론을 개인이 확립하는데 도움을 줍니다.

모바일 자바 게임 프로그래밍

아시는 분은 아시고 모르시는 분은 모르는 재밌는 사실은 플래시의 개발환경이나 라이브러리 수준은 딱 J2ME나 브루, 위피 수준입니다. 따라서 그 동네의 어플 샘플 책들은 전부 플래시 개발에 도움이 됩니다. 최적화를 해야 하는 입장도 비슷하고 프로그래밍적인 철학도 비슷한 형태라 전 즐겨 자바관련 게임 책이나 모바일 관련 개발 책을 사 모으는 편입니다. 이 책도 그러한 면에서 나름 쓸모가 있습니다. 내용은 교재용으로 기획된 만큼 알기 쉽고 직관적이며 순서대로 진행할 수 있도록 집필되어있습니다.

ASP.NET2.0 웹프로그래밍

최근 호스팅 업계에서 ASP계정에 그닥 요금차이가 없거나 아예 없는 수준에서 ASP.NET를 제공하기 시작했습니다. 기존의 ASP의 한계는 너무나 명확해서 할 수 있는 일이 많지 않기 때문에 답답함을 느끼고 있었지만 제가 맡는 대부분의 공사나 서비스가 싸구려 호스팅에 런칭하는 경우가 많다보니 JSP나 NET솔루션을 기피해오고 있었습니다. 여전히 복잡한 MVC를 통한 웹개발에는 회의적이지만 기존의 회사 웹함수군을 얇게 래핑해서 NET으로 이전할까는 생각 중입니다. 이걸 사내에 시켜야 해서 가장 쉽고 얇은 책을 골라봤습니다. 이 책은 정말 NET을 전혀 모르는 기존의 ASP개발자에게 추천할 만한 책이군요.

확률 7일만에 끝내기, 미적분 7일만에 끝내기

이건! 만화로 되어있는 재밌는 책인데 원래는 준호랑 스터디할 때 교육교재로 쓸까하고 사봤습니다…..만 이 나쁜 넘이 중간에 안할래요 하더군요. 공부하려는 인간은 참 드물고 공부하려는 의지를 유지하는 케이스는 더욱 드물다는 생각을 많이 했습니다. 그래도 샀으니 저의 수학체계를 꼼꼼히 점검하는 용도로 활용해봐야겠습니다.

안드로이드2 마스터북

안드로이드를 슬슬 개발할까하고 하고 사왔습니다. 이것저것 봤는데 젤 괜찮다 싶어 집어왔습니다. 결국 아이폰처럼 저의 주력 개발 형태는 얇게 윈도우 층을 래핑해서 은닉해버리고 그 이후는 전부 오픈지엘로 개발할거라 거기까지만 잘 인도해주면 된다는 생각인데 이 책이 젤 적합한듯합니다

음 북리뷰를 밀렸더니 너무 힘들군요….

%d 블로거가 이것을 좋아합니다: