"웹 서비스 개발 철저공략" 책의 내맘대로 평가 및 정리



웹 서비스 개발 철저공략

저자
카츠마 료 지음
출판사
비제이퍼블릭 | 2014-04-09 출간
카테고리
컴퓨터/IT
책소개
린 스타트업 사고방식 가치 있는 서비스를 어떻게 빨리 출시할 것...
가격비교

일본 원서 이름: Webサービス開発徹底攻略 (WEB+DB PRESS plus)    

勝間 亮 (著), 石田 忠司 (著), 杉谷 保幸 (著), 江口 滋 (著), 上谷 隆宏 (著), 青木 俊介 (著), 久保 達彦 (著), 池邉 智洋 (著), 谷口 公一 (著), 田淵 純一 (著), 伊野 友紀 (著), 西岡 拓人 (著), 吉田 俊明 (著), 古旗 雅史 (著), 木野瀬 友人 (著), かなだ まさかつ (著), 牧本 慎平 (著), 成田 一生 (著), 舘野 祐一 (著), 濱崎 健吾 (著), 鈴木 慎之介 (著), 齊藤 宏多 (著), WEB+DB PRESS編集部 (編集)



출판사의 "웹 서비스 개발 철저 공략" 책 소개 링크 http://bjpublic.tistory.com/191


"웹 서비스 개발 철저공략" 책의 내맘대로 평가 및 정리


내맘대로 평가

이 책은 일본사람들이 주로 사용하는 웹서비스인 "쿡패드(クックパッド)", "니코니코동화(ニコニコ動画)", "pixiv", "라이브도어(ライブドア, 이후 Naver Japan 이였다 현재는 Line Cooperation), 2ch에서 개발 및 운영을 하다 생긴 문제나 해결방법 등을 흥미롭게 작성했습니다.

웹 서비스를 제공하는데 사용하는 회사의 인프라스트럭쳐(Infrastructure), 서버, 웹 기술등의 핵심 내용을 짚어나가며 개발 및 운영하다 생긴 문제 및 이슈, 조직 구축 및 운영 및 그리고 시스템 향상을 어떻게 꽤하는지, 모바일 유행에 따라 서비스가 변화에 어떻게 대응했는지 등을 보여줍니다.


이 책에서는 애자일(Agile) 개발 방법론 이야기를 서론에 두고, 일본에서 유명한 웹 서비스들이 어떤식으로 애자일을 적용하여 서비스의 문제점을 개선하여 시스템을 향상시켰는지에 대한 초점을 맞춰서 서술하고 있습니다.

여기서는 기술뿐만 아니라 조직 운영에 대해서도 소개를 하여 개발을 하는데에 협업이 중요하다는 것도 보여줍니다.

(뭐 개발이 혼자서 개발하는 것이 아니라 여러 사람들이 모여서 개발하니깐 협업 중요함)


이 책에서 특이한 사항으로는 제가 모르는 라이브러리(오픈소스 라이브러리이든 상용 라이브러리이든)가 너무 많다는 것이다. 역시 "세상은 넓고 라이브러리는 넘쳐다더라"란 생각을 했습니다.

책에 나오는 라이브러리들을 보면 Perl, Ruby on Rails, PHP쪽 라이브러리가 많이 나오던데, 일본에서는 한국과 다르게 Ruby on Rails, Perl, PHP를 주로 쓰는 경향이 있는 것 같다는 생각을 하였다.


이 책이 좋은 점은 바다 건너 이웃나라인 일본에서 어떻게 웹서비스를 운영하고 개선 향상시키는지에 대한 귀중한 정보들을 얻을 수 있다는 점?


책에 나오는 내용들을 보면 Slideshare등 슬라이드 공유 사이트에서 얼핏 보거나 컨퍼런스 영상에서 들었던 내용들이 나오긴 한데, 이 내용들을 책으로 기술하다보니 정리가 잘 된 느낌이 든다.

만약에, 대형 웹 서비스를 접하고, 운영해본다면 어떻게 운영하겠다는 가이드라인(Guideline)을 제시해주는거라 보면 된다.


책의 단점이라면, 내용이 옛 기술이다보니 완벽하게 이해하는 것보단 어떻게 해결했다 정도 가이드 정도로 봐야한다고 생각합니다, (그래도 웹 서비스의 구축 및 운영 방향제시를 해주는 귀중한 정보를 출판한 것이라 흐름을 관심있게 봐야한다고 생각합니다)


저는 단순 SI(System integration)업을 하는 사람이라 보니 웹서비스들은 어떻게 구축되는지에 대한 호기심을 자극하네요.

SI(System integration)업 특성상, 고객의 필요로 인해 발주받은 내용을 토대로 시스템을 구축을 해주지만, 이후의 운영은 SM(System Management)업 또는 현행부서에서 하다보니 운영에 대한 지식이 거의 전무한데다, 시스템 구축도 주먹구구식 납기일에 맞춰 납기를 하다보니 기술이 딱히 좋은 것도 아니고 -_-;;

SI(System integration)업을 하는 본인으로서는 웹서비스들이 어떻게 구축되고 운영하여 돌아가는지에 대한 지식을 어느정도 알려주는 좋은 책이라고 생각한다.
그리고 SI업 추세가 웹+모바일이기때문에 웹 서비스 구축에 대하여 관심있게 봐야하기때문에 이 책을 꼭 봐야한다고 생각한다고 보는 1인.


여담으로 책을 보다 느끼는 것인데, 일본의 스타트업(startup)기업에서 웹서비스를 처음부터 만들고 대형 웹서비스를 운영하기까지 어떤 과정을 경험했더라는 경험담을 책으로 정리하여 출판하니, 부럽다 정도?

자세한 기술정보를 잡지와 책으로 냈다는 것 자체가 자부심이 있다는 것 같단 생각을 해봄.

일본사람들이 문서화 하는 걸 중요하게 여기는 문화 및 장인정신의 때문에, 일본 업체들의 서비스 문제 및 개선사항에 대한 내용을 일본 잡지나 책에 내놓는 생각을 한다. 그러나 한국에선 이런 서비스 문제 및 개선사항에 대한 내용을 잡지나 책에 낼 수 있을까?

일단 책이라는 것도 수요가 있어야 출판하는것일텐데, 일본은 그래도 수요가 있으니 책을 내겠다만, 한국에선 수요가 한정되어 있다보니 책을 낼수 있을까란 생각을 해본다.


ps. 한국의 대형 포털 2개 업체 중 하나인 NHN에서 "Hello World"(http://helloworld.naver.com/)라는 블로그를 통해서 기술 내용을 소개하고 있고, 다음(Daum)에선 DNA개발자네트워크(http://dna.daum.net/)라는 사이트에서 기술 내용 소개를 하고 있습니다.

ps2. 책을 보다보니 운영체제(Operating System)과 네트워크(Network), 데이터베이스 관리 시스템(DBMS, DataBase Management System)에 대한 지식이 너무 얇음을 느꼈고, 컴퓨터공학과에서 배웠던 위의 내용을 다시 보고 기본기를 쌓을려는 목표를 세웠습니다.




책에서 인상깊은 구절을 적은 내용 정리

린스타트업에 대한 소개

린스타트업에 대한 소개는 아래의 글에 정리를 함.

2014/07/03 - [독서(讀書)] - 린 스타트업(lean startup) 정리



일본에서 유명한 요리 제조 알려주는 웹서비스인 쿡패드

쿡패드는 일본 최대의 요리법 공유 사이트인 동시에 Ruby on Rails로 구축된 일본 최대의 웹 서비스이기도 하다. (생략) 200밀리초 이내에 사용자에게 응답하는 인프라부터, 대규모 서비스임에도 불구하고 단시간에 많은 서비스를 출시할 수 있는 개발 기반, 철저한 사용자 중심 서비스 개발, 효율적인 스마트폰 개발, 울타리를 넘어선 팀 구축 등 모두 놓쳐선 안 될 것들이다.

"DevOps 자체는 Dev와 Ops관계에 대해 이야기 하고 있지만, 그 내용을 비약해 생각해보면 엔지니어에 국한된 것이 아니라 입장이나 전문성이 다른 멤버 간 협력을 위한 연습을 이야기한다고 할 수 있다."

"쿡패드는 엔지니어 수도 늘었고 기술 기반도 향상돼서 수많은 새 기능과 새 서비스를 개발할 수 있었다. 그렇다고 효율적인 서비스 개발의 모든 장벽이 제거된 것은 아니다. 개발 속도는, 단순히 개인의 기술력이나 툴 문제가 아닌, 조직 차원에서 해결해야 할 문제다."


니코니코 동화(ニコニコ動画)

사용자가 동영상 위에 쉽게 댓글을 달 수 있는 서비스 '니코니코 동영상'은 매일같이 애용되고 있는 일본의 웹서비스중 하나다. 2006년에 서비스를 출시한 후 7년 동안 폭발적으로 증가한 사용자 수, 우수한 가용성, 독특한 커뮤니티, 기술력 등 내세울 자랑거리는 많지만, 서비스 출시 당시에는 많은 장애물이 있었다.

애자일 개발 방식과 니코니코 개발

  • 프로세스나 툴보다 사람 간의 상호작용을 중시한다
  • 포괄적인 문서보다 동작하는 소프트웨어를 중시한다
  • 계획상의 협상보다 고객과의 협력을 중시한다
  • 계획을 따르기보다 변화에 대응하는 것을 중시한다


소프트웨어 장인 기질

 장인(匠人)기질 : 장인 사회에 존재하는 특유의 기질. 자신의 기술에 자신이 있고, 완고하지만 근면하고 정직한 성질 - 일본 『코우지엔 5판』(1998, 2004)

職人気質: 職人社会に特有の気質。自分の技術に自信を持ち、頑固だが実直であるというような性質。 - 日本 「広辞苑」(1998, 2004)

장인 기질을 지닌 엔지니어는 자신의 경험이나 주변에서 얻은 정보를 사용해서, 짧은 기간에 실현 가능한 문제 해결법을, DRY원칙(Don't Repeat Yourself)이나 KISS 원칙(Keep It Simple and Small)을 사용해서 빠르게 결정하고, 이를 바탕으로 개발하고, 평가(테스트)한다.

개발해보고 실패해보고 실패하면, 그것을 버리고 다른 방법(평가)으로 도전해본다. 얼핏 시간 낭비로 보일 수 있지만, 실패한 경험은 나중에 유익한 경험으로 선용할 수 있다.

이런 식의 개발 방식은 심플하고 변화에 강하기 때문에 요구 변화에 비교적 빠르게 대응할 수 있다.


pixiv

pixiv는 사용자가 그림을 등록하고 그림과 관련된 다양한 커뮤니케이션을 하는 SNS이다. pixiv서비스 출시부터 주목을 받았고, 사용자 수가 점점 증가해서 결국 서비스를 확장해야했다. 제한된 리소스를 사용해서 나날이 증가하는 트래픽을 제어하기 위해 사용했던 튜닝이나 스케일업/아웃 방법 등 현장에서 일했던 엔지니어들의 노하우를 공개.


"그로부터 5년이 지나 정신을 차려보니 일러스트레이터가 아닌 프로그래머가 돼있었다."

"그림을 하나의 장소에 모아 플랫폼을 만들고 싶다는 열정에 사로잡혀 매일 개발에 몰두한 결과 탄생한 것이 바로 pixiv이다."

시작 당시의 pixiv는 매우 작은 시스템으로 운영됐지만, 사용자 경향이나 의견을 반영해가면서 개발을 통해 사용자 요구를 지원하는 형식으로 많은 기능을 추가했다. 겨로가적으로 대규모 서비스로 발전했다. 튜닝이나 기능 확장 면에서도 많은 고민을 통해 기술 축적을 이루었으며, 낮은 비용으로 서비스 안정화를 도모했다.


라이브도어(Livedoor→Naver Japan→ 현재는 Line Cooperation) 시스템 구축 노하우

라이브도어(Livedoor)는 오픈 소스 소프트웨어를 주로 사용해서 확장 가능한 시스템을 구축하고 있는, 일본 유수의 포털 사이트다.


"새로운 기술을 빠르게 적용하는 것은 엔지니어로서 중요한 임무지만, 한편 오래됐더라도 안정되게 시스템을 운영해 가면서 사업적 요소를 늘려가는 것도 중요한 일이라 생각한다."

"현재 사이트 규모가 작더라도, 몇 주 후 또는 몇 달 후에는 대규모 사이트로 성장할 가능성이 있는 사이트가 많을 것이다."


Yahoo! Japan 메일

PC용으로 개발되서 플래시UI를 가지고 있는 2008년도 당시의 Yahoo!메일(코드명: Hikari)을 살펴보고, 지금까지 진행 중인 개발 뒷단의 숨겨진 이야기를 소개함.

"소프트웨어 고속화에 있어서 중요한 것은 '실측 시간에 기반해야 한다'는 것이다. "

"이렇게 하면 빨라지는 게 아닐까? 이 계산은 의미가 없어 하고 추측만 하지 말고, 해당 코드 처리에 걸리는 시간을 꼭 실측해 보도록 하자. 의외로 1/1000초밖에 걸리치 않는 부분을 고속화하려고 고생하는 경우도 있고, 그 옆에 아무 생각 없이 쓴 코드 한 줄이 몇 초씩 프로그램을 지연시키는 경우도 있다."

"소프트웨어 개발에 있어서 고속화 기법은 누군가에겐 지루할 수 있지만, 쾌적하게 프로그램을 사용할 수 있도록 하는 것은 개발자가 생각하는 것 이상으로 중요하다"


2ch 전송량 줄이기

'2채널'(http://2ch.net)이란 니시무라 씨가 운영하고 있는 일본 최대 규모 커뮤니티 사이트(BBS)(공식적으로 '거대 게시판 집팝')이다.

"현재 광대역 시대가 도래했다고 하지만, 대역 부족은 언제나 고민거리로 이후로도 대역이 콘텐츠를 쫓아갈 수 없는 상태가 계속되리라 생각한다. 막대한 대역 사용료로 날마다 고민하고 있는 사이트 운영자들은 도입을 꼭 검토해보기 바란다."

편집부: "곤란할 때는 전문가를 화나게 화면 되는 거군요.(웃음)"

카나타: "(기술자 중에는) 승부욕이 강한 사람이 많으니까요.(웃음)"



ps. 니코니코(ニコニコ)란 한국어의 '싱글벙글'과 비슷한 의미로, 웃는 모습을 나타내는 일본어라고 하는군요. 새롭게 안 사실.

ps2. 일본 대형 웹서비스 업체의 사례를 보고 들으니, 나도 대형 웹서비스를 구축 및 운영해보고 싶단 생각이 든다. 단순 SI업무만 하다보니 계속 정체되는 느낌이랄까? 뜻과 목표는 높은데, SI업 특성상 단순 서비스 구축에만 신경쓰기 때문에 그런지 쓰던 기술만 계속 쓰는 느낌이 든다. 책을 보고 자극 받아서 계속 발전하고 싶다.

ps3. 나름 책을 읽고 정리하였으니, 책을 읽고 느낀 점을 마구잡이로 쓴거라 책을 다시 읽고 정리해야겠음.

Buy me a coffeeBuy me a coffee

+ Recent posts