토요일, 3월 15, 2014

[독서광] The Performance of Open Source Applications

오랫동안 '독서광'을 기다려주신 독자 여러분들께 기쁜 소식 하나 전하겠다. 이번 주부터 격주로 '독서광' 섹션을 다시 열어 독자 여러분들께 좋은 책을 소개하려 계획 중이다. 오늘은 복귀 기념으로 지난 번에 올려드린 The Architecture of Open Source Applications Volume II의 후속 작품인 The Performance of Open Source Applications를 소개드리겠다.

이 책이 나오게 된 배경은 서문에 나오는 다음 한 문장으로 충분히 설명이 가능하다 본다

However, while hundreds of textbooks explain the basics of operating systems, networks, computer graphics, and databases, few (if any) explain how to find and fix things in real applications that are simply too damn slow.

그렇다. 수 많은 책이 운영체제, 네트워크, 컴퓨터 그래픽, 데이터베이스에 대한 기초 지식을 설명했지만, 실제 애플리케이션이 빌어먹을 정도로 너무 느릴 경우 문제를 찾아 수정하는 방법은 설명하지 않았다. T_T

제목을 보면 알겠지만, 이 (전자)책은 오픈소스 소프트웨어의 성능 부분을 집중적으로 파고든다. 처음 목차를 보고서 직전 AOSA 볼륨 I/II에 비해 꼭지도 줄어들고 슬쩍 넘겨보니 페이지도 얼마 되지 않았기에 큰 기대를 하지 않았는데, 하나씩 읽으면서 개발자들의 숨은 고민과 해법이 많이 나와 은근한 재미를 느꼈다. 본문 중 특히 마음에 들었던 내용은 가장 먼저 나오는 'High Performance Networking in Chrome"으로 구글 크롬이 왜 그렇게 다른 브라우저에 비해 엄청나게 빠른지 숨겨진 비밀을 속 시원하게 설명하고 있다. 이 글을 읽고 나서 크롬 창에서 URL을 입력할 때마다 내부 동작이 자꾸 떠오르는 부작용이 생겼지만 덕분에 웹브라우저에 대한 이해도가 아주 조금 올라간 느낌이다.

이 책은 네트워크, 메모리, 실행 속력, 동기화 등 여러 측면에서 성능을 고민한다. 프로그래밍 언어도 C/C++, 자바, 자바스크립트, Erlang, Haskell 등을 다루고 있으므로, 각 언어별 최적화 관련 특성을 비교하며 읽을 수 있다. 애플리케이션 분야도 웹 브라우저, 웹 서버, 빌드 시스템, XML 파서, 테스트 프레임워크, 분산 프레임워크 등 다양한 부문을 망라하므로 자신의 주요 분야가 아닌 다른 분야에서 성능 개선을 위해 어떤 노력을 했고 어떤 성과를 거뒀는지 엿볼 수 있다. 기존 성능 관련 책이 알고리즘이나 프로그래밍 최적화 쪽에 초점을 맞췄다면, 이 책은 실제 오픈소스 아키텍처 설계와 구현 과정에서 성능을 높이기 위한 실무적인 접근 방법을 소개하고 있으므로 상당히 현실적이다. 오픈소스 소프트웨어 설계자와 개발자들의 고충과 고민, 그리고 시행착오를 엿볼 수 있기에 더욱 공감이 갈 것이다.

결론: 성능과 관련해 고민이 많은 개발자라면 이 책을 꼭 읽어보기 바란다. 강력 추천!

EOB

댓글 2개:

  1. 항상 좋은글 눈으로만 보다가 댓글남깁니다. ^^ 아직 번역서는 없는것 같은데 원서는 어디서 구할수있을지 혹시 알려주실수있을까요?? 리뷰를 보니 꼭 읽고싶어서요.

    답글삭제
    답글
    1. 링크해드린 사이트에 가시면 온라인으로 읽으실 수 있습니다(무료). 필요하시면 종이책을 구입할 수도 있습니다.

      삭제