|
실제 엔지니어들이 작성한 만큼 실전적이고, 흥미진진한 이야기의 연속입니다. 특히 서사식 구성으로 재미있게 사건을 풀어내고, 그것을 어떻게 해결했는지 알아가는 과정이 맛깔나네요. 특히 풍부한 사진과 그래프로 쉽게 풀어내려 노력한 것도 인상적이었습니다. 게다가 대체로 일본에서 실제 쓰이고 있는 서비스들이고 하니, 이것을 써왔던 개발자라면 더 공감을 하면서 읽기 좋은 것 같습니다. 다만, 옛날에 사용되던 기술들을 옛날에 집필한 것을 엮은 것이다 보니, 현재의 동향과는 꽤 거리가 있어보입니다.(물론 책에서도 현재 쓰이는 기술들과 다를 수 있음을 미리 표기해놨네요) 우리가 구글의 역사, 애플의 역사 도서들을 보듯이, 이 책은 훌륭한 각 웹서비스 회사들의 역사 도서인 것 같습니다. |
|
유명 일본 IT 서비스의 개발 비화, 스택, 방식들이 아주 흥미롭게 기술되어 있다. 서비스를 제공하는데 사용되고 있는 자사의 인프라 - 서버 - 프론트(클라이언트) 핵심들을 요소요소 짚어나간다. 아마 비교적 최신 서비스를 통해 서비스 풀스택을 설명하고 있는 책은 '철저공략...'이 유일할 것이다. 개인적으로는 이런 정보를 얻기 위해서는 주로 아래와 같은 방식을 통하는데 1) 누구누구를 통해 (어디는 어떤 식으로 서버를 운영한다더라... 라는 식의) 2) 서비스 기술 책임자들의 세미나에 참석 (우리는 이런 식으로 개발하고 있습니다...) 3) Slideshare 에 공유되는 정보들을 통해 알음알음 추정 (자세한 설명없는 슬라이드를 통해 추정) 이렇게 책을 통해 내용을 접할 수 있으니 상당히 만족스럽다. 단순 계산해서 1서비스 60분 세미나 한 번 참석에 1만원이라고 치자면, 5개 서비스의 내용을 다루고 있으니까 5만원이라고 치더라도 돈이 아깝지 않다. 게다가 60분 육성 세미나라면 실상 구현된 코드라던가, 그에 따른 비화라던가 하는 정보는 얻기 쉽지 않을테지만, 이 책에서는 가설 수립, 실행, 측정 - 이터레이션에서부터 실제 구현 코드, 구현에 따른 어려움 향후 개발 방향 등에 대해서도 공개하고 있다. 2만원내고 이 정도 책 볼 수 있다니. 오랫만에 재미있는 it 책을 만난듯 싶다. 일본의 잡지에 게재된 내용을 묶어서 출판한 모양인데, 이런 내용을 잡지로 출간할 수 있는 일본의 환경이 부럽기도 하고, 더 출간된 내용이 없을까, 더 볼 수 없을까하는 마음이 생기기도 한다. + 일본은 루비의 사용이 많다고 하는데, 실제로 그러한듯하고, 구조화된 php의 사용도 많은 듯 싶다. 우리나라에서는 루비보다는 파이썬으로 스타트업을 시작하는 경우가 많은데 만약 후속편이 나온다면, 파이썬을 다루었으면 좋겠다. |
|
이 책은 일본에서 웹서비스를 하는 유명 업체의 서비스 개발기에 대한 내용으로 구성되어 있다. 내가 이 책을 선택한 이유는 일본에서의 개발 스타일이 궁금했으며, 우리나라와 비슷한 서비스들이 많기 때문에 서비스를 이해하는데 도움이 될 것으로 판단했다.
책을 읽으면서 각 서비스들의 공통점들이 있음을 확인했으며, 일본만의 독특한 문화도 어느 정도 느낄 수 있었다. 대략 그 내용은 아래와 같다. 1. 서버 스크립트 : php, ruby 2. DB 서버 : MySQL (Master(갱신형), Slave(참조형) 구조) 3. 캐쉬 서버 : memcached 4. 로드 밸러싱 : L3/4, DNS 라운드 로빙 5. 데이터 압축 : HTTP 1.1 gzip을 활용하여 데이터 축소 6. 라이브러리를 자체 개발하여 사용하는 경우가 많아 효율적이기는 하나 지엽적인 느낌도 있음.
(그림1) 책 내용중에 구성도가 잘되어 있다고 생각되어 첨부해봤습니다.
![]()
(그림2) 구글과 같이 비용을 아끼기 위해 직접 서버/랙을 구성한 내용이 이색적이였습니다. ![]()
7개의 큰 카테고리로 구성되어 있으며, 각 장은 아래와 같이 구성되어 있다. 1. 린 스타트업 빨리 훑어보기
- 속성으로 린 스타트 업에 대해서 기술적인 관점에서 배워 볼 수 있는 장으로 가치있는 서비스의 빠른 런칭 방안에 대해서 배운다. - '가설 설정->가설 검증->피봇->루프 회전'를 통한 서비스 가치 상승 및 빠른 출시 전략 2. 쿡패드 - 요리 포털 커뮤니티 사이트 개발기 - 빠른 이미지 전송 전략과 휴대폰 개발 방법 - 서버 개발기 및 쿡패드의 현재
3. 니코니코 동영상 - 동영상에 자막을 오버레이 하는 방법 - 니코니코(싱글벙글) 동영상 버전업별 개발기 - 서버 부하 대책 (웹, DB, memcached, 메시지 서버 튜닝) - 니코니코 동영상 서비스 현재
4. pixiv - 사진 SNS - 서비스 성장에 따른 서버 부하 대책 (스케일업, 스케일아웃 전략) - 각종 라이브러리 활용으로 서비스 성능 업
5. 라이브도어 - 포털 서비스로 NHN Japan으로 흡수 - 웹서버 및 애플리케이션 서버 설정 - O/R 매퍼 및 memcached, DB 클러스터
6. Yahoo 메일 - 야후 메일 Flex 개발기 - 플래시와 HTML 하이브리드 (Flex 컴포넌트, HTMLFloat 구조, 종횡 스크롤, 로딩 고속화) - 메모리 관리 기법 및 Bindable을 사용한 능동적 구현
7. 2채널 - 네트웍 비용을 줄이기 위한 방안 (gzip 사용 방법)
이 책의 단점으로는 어느 정도 시간이 지난 내용이므로 최신 기술이나 일본의 최근 동향에 대해서 알기에는 한계가 있다. 그렇지만 서비스라는 것이 기술도 중요하지만 서비스를 만들고 문제를 해결하는 과정에 대해서 이해하고 대처하는 방법을 배우는 것도 중요한 것이기 때문에 단점을 어느 정도 극복되지 않을까 생각된다.
이 책은 깊이 있는 내용을 다루지는 않지만, 서비스의 아이디어 및 개발 초기부터 발생할 수 있는 문제점을 해결해 가는 과정을 보여줌으로써 스타트업 기업 또는 현재 서버 관리는 하는 관리자가 읽으면 도움이 될 것으로 보인다.
끝으로 이 책을 읽으면서 조금은 생소하지만 나중에 찾아 보면 도움이 될 만한 내용을 키워드로 정리했다. 나도 언젠가는 견고하고 뛰어난 서버를 만들어보고 싶다.ㅎ
- munin 모니터링 - Solr 검색엔진
- imlib2 이미지 라이브러리
- Varnish 캐시 서버
- Apache 리버스 프록시
- PHP APD
- DB double buffering
- HTML cache (memcached)
- jsonp를 이용한 크로스 도메인
- libjpeg-turbo
- Sledge
|