
000 | 01244camcc2200349 c 4500 | |
001 | 000045639365 | |
005 | 20110407110435 | |
007 | ta | |
008 | 110406s2011 ggkad 001c kor | |
020 | ▼a 9788994506128 ▼g 13560 | |
035 | ▼a (KERIS)BIB000012358044 | |
040 | ▼a KYOBO ▼c KYOBO ▼d 211046 ▼d 222001 ▼d 211009 | |
041 | 1 | ▼a kor ▼h jpn |
082 | 0 4 | ▼a 005.2 ▼2 22 |
085 | ▼a 005.2 ▼2 DDCK | |
090 | ▼a 005.2 ▼b 2011 | |
100 | 1 | ▼a 伊藤直也, ▼d 1977- ▼0 AUTH(211009)123883 |
245 | 2 0 | ▼a (웹 개발자를 위한) 대규모 서비스를 지탱하는 기술 : ▼b 데이터 구조, 메모리, OS, DB, 서버/인프라 / ▼d 이토 나오야, ▼e 다나카 신지 공저 ; ▼e 진명조 옮김 |
246 | 1 9 | ▼a Web開發者のための大規模サ-ビス技術入門 : ▼b デ-タ構造、メモリ、OS、DB、サ-バ/インフラ |
246 | 3 | ▼a Uebu kaihatsusha no tame no daikibo sabisu gijutsu nyumon : ▼b deta kozo memori oesu dibi saba infura |
260 | ▼a 파주 : ▼b 제이펍, ▼c 2011 | |
300 | ▼a xxii, 369 p. : ▼b 삽화, 도표 ; ▼c 23 cm | |
500 | ▼a 색인수록 | |
500 | ▼a 부록: 현대 웹 서비스 구축에 필요한 실전 기술 | |
700 | 1 | ▼a 田中愼司, ▼e 저 ▼0 AUTH(211009)3044 |
700 | 1 | ▼a 진명조, ▼e 역 ▼0 AUTH(211009)89456 |
900 | 1 0 | ▼a Ito, Naoya, ▼e 저 |
900 | 1 0 | ▼a Tanaka, Shinji, ▼e 저 |
900 | 1 0 | ▼a 이토 나오야, ▼e 저 |
900 | 1 0 | ▼a 다나카 신지, ▼e 저 |
945 | ▼a KLPA |
소장정보
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 중앙도서관/제2자료실(3층)/ | 청구기호 005.2 2011 | 등록번호 111619719 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.2 2011 | 등록번호 121208126 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 3 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.2 2011 | 등록번호 121208127 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 중앙도서관/제2자료실(3층)/ | 청구기호 005.2 2011 | 등록번호 111619719 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.2 2011 | 등록번호 121208126 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.2 2011 | 등록번호 121208127 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
대규모 서비스를 개발.운용하는 기술자를 위한 입문서다. 하테나가 학생을 대상으로 개최하는 인턴십에서 수행하는 실제 기술 강의를 기반으로 구성되어 있다. OS 및 컴퓨터의 동작원리, DB 분산방법, 실전적인 알고리즘을 시스템에 적용하는 방법, 대규모 데이터를 요리하는 검색엔진의 원리와 구조, 시스템 전체를 조망하기 위한 인프라 설계지식 등을 다양한 샘플 코드와 함께 자세하게 소개하고 있다.
이와 같은 기본 지식 외에도 하테나의 서비스 개발 현장에서 엔지니어 간 의사소통 방법과 활용도구에 대한 사용 이유, 목표도 소개하고 있어서 개발뿐 아니라 팀 운영 면에서도 도움이 될 만한 정보들이 가득 차 있다. 또한 향후 서비스 전체를 클라우드로의 이전 여부를 선택할 경우에 있을 수 있는 문제나 자체 서버를 사용하려는 입장에서의 고려사항 및 전망, 글로벌화를 위해 넘어야 할 장벽에 대한 설명도 중대규모 서비스를 운영하는 이들에게 도움이 될 것이다.
베스트셀러 『(24시간 365일)서버/인프라를 지탱하는 기술』의 핵심 저자들이 또 한 권의 역작을 펴냈다. 서버 1대부터 시작하여 1,000대의 호스트를 운영하기까지 수없이 많이 겪었던 시행착오와 해결책, 먼 길을 돌고 돌아서 비로소 체득한 대규모 서비스 개발과 운용에 관한 핵심 노하우들을 이 책은 아낌없이 전달하고 있다.
‘지식 커뮤니티’ 인력검색 서비스, 다이어리(블로그) 호스팅 서비스, 소셜 북마크 서비스 등을 개발해 운영하고 있는 일본의 대표 인터넷 기업 중 하나인 하테나(hatena), 수년 간 축적되어 온 하테나의 서비스 운영 노하우를 살펴보고 우리 현실에 적용할 수 있는 좋은 기회의 장이 될 수 있을 것이다.
이 책은 대규모 서비스를 개발?운용하는 기술자를 위한 입문서다. 하테나가 학생을 대상으로 개최하는 인턴십에서 수행하는 실제 기술 강의를 기반으로 구성되어 있다. 계속해서 성장하고 있는 웹 서비스를 간단히 처리할 수 없는 규모의 데이터에 직면했을 때 어떻게 처리할까? 자신이 작성한 코드가 시스템을 다운시키지 않게 하려면 어떤 점에 주의해야 할까? 확장성을 고려한 시스템을 설계하려면 무엇을 확보해 두어야 할까? 이러한 쟁점들을 해결할 수 있는 다양한 실전 기술들을 다루고 있다.
내용은 OS 및 컴퓨터의 동작원리, DB 분산방법, 실전적인 알고리즘을 시스템에 적용하는 방법, 대규모 데이터를 요리하는 검색엔진의 원리와 구조, 시스템 전체를 조망하기 위한 인프라 설계지식 등을 다양한 샘플 코드와 함께 자세하게 소개하고 있다.
이와 같은 기본 지식 외에도 하테나의 서비스 개발 현장에서 엔지니어 간 의사소통 방법과 활용도구에 대한 사용 이유, 목표도 소개하고 있어서 개발뿐 아니라 팀 운영 면에서도 도움이 될 만한 정보들이 가득 차 있다. 또한 향후 서비스 전체를 클라우드로의 이전 여부를 선택할 경우에 있을 수 있는 문제나 자체 서버를 사용하려는 입장에서의 고려사항 및 전망, 글로벌화를 위해 넘어야 할 장벽에 대한 설명도 중대규모 서비스를 운영하는 이들에게 도움이 될 것이다.
실제로 하루 1,500만 명의 사용자들이 이용하고 있는 하테나이기 때문에 전달할 수 있는 실전적이고 생생한 기술과 현장감. 인턴십에 참가하는 학생을 불과 며칠 동안의 교육만으로 개발현장으로 이끌어야 한다는 필요로부터 얻어진 지식의 체계화. 이것들을 융합함으로써 재미있고 질리지 않게 읽을 수 있고, 아울러 핵심 지식을 얻을 수 있는 책이 될 수 있도록 힘썼다.
도서지원 웹 페이지
스페셜 콘텐츠(일어) http://gihyo.jp/magazine/wdpress/plus
샘플코드 다운로드 http://gihyo.jp/book/2010/978-4-7741-4307-1/support
정보제공 :

저자소개
다나카 신지(지은이)
현재 ㈜하테나의 서비스를 지탱하는 600대 이상의 서버, 시스템 성능 및 인프라 등을 총괄하고 있다. 정보학 박사이기도 하다. 공저로는 『(24시간/365일)서버/인프라를 지탱하는 기술』(제이펍)이 있으며, 기타 다수의 번역서들이 있다.
이토 나오야(지은이)
nifty, 하테나 CTO, GREE 총괄부장을 거쳐 프리랜서로 활동하고 있다. 블로그나 소셜 북마크 등 10년간 소셜 미디어의 발전과 운영에 종사하였으며, 지은 책으로는 《Chef Solo 입문》, 《서버/인프라를 지탱하는 기술》, 《대규모 서비스를 지탱하는 기술》 등이 있다. 2013년 9월부터 KAIZE Platform의 기술고문도 맡고 있다.
진명조(옮긴이)
2018 현재 씨디네트웍스에 근무하고 있으며, 《텐서플로로 시작하는 딥러닝》, 《서버/인프라 엔지니어를 위한 DevOps》, 《대규모 서비스를 지탱하는 기술》, 《서버/인프라를 지탱하는 기술》, 《클라우드의 충격》, 《인프라 엔지니어의 교과서: 시스템 구축과 관리편》 등의 기술 서적을 번역하였다. IT 산업의 미시적인 영역과 거시적인 영역을 아우르는 통찰력을 갖게 되기를 꿈꾸고 있으며, 최근에는 컨테이너 생태계의 급성장과 머신러닝을 비롯한 인공지능(AI)의 대중화에 주목하고 있다.

목차
목차 옮긴이 서문 = XVI 지은이 서문 = XVIII 이책의 구성 = XX 하테나 소개 = XXII CHAPTER 01 대규모 웹 서비스 개발 오리엔테이션 : 전체 그림 파악하기 강의 0 이 책의 근간 = 2 대규모 서비스 개발에 관련된 대학생 대상의 하테나 인턴십 = 2 이 책에서 설명하는 것 = 3 이 책에서 설명하지 않는 것 = 4 앞으로 대규모 서비스를 마주하게 될 여러분에게 = 5 강의 1 대규모 서비스와 소규모 서비스 = 6 하테나의 서비스 규모 = 6 하테나는 대규모, 구글 및 페이스북은 초대규모 = 8 소규모 서비스와 대규모 서비스의 차이 = 9 대규모 데이터량에 대한 대처 = 12 강의 2 계속 성장하는 서비스와 대규모화의 벽 = 14 웹 서비스의 어려움 = 14 하테나가 성장하기까지 = 15 시스템의 성장전략 = 18 강의 3 서비스 개발의 현장 = 20 하테나의 기술팀 체제 = 20 하테나에서의 커뮤니케이션 방법 = 21 실제 서비스 개발 = 22 개발에 사용하는 툴 = 23 정리 = 26 CHAPTER 02 대규모 데이터 처리 입문 : 메모리와 디스크, 웹 애플리케이션과 부하 강의 4 하테나 북마크의 데이터 규모 = 28 하테나 북마크를 예로 본 대규모 데이터 = 28 하테나 북마크의 데이터 규모 = 29 대규모 데이터로의 쿼리 = 30 강의 5 대규모 데이터 처리의 어려운 점 = 32 대규모 데이터는 어떤 점이 어려운가? = 32 메모리와 디스크의 속도차 = 33 디스크는 왜 늦을까? = 34 OS 레벨에서의 연구 = 36 전송속도, 버스의 속도차 = 36 강의 6 규모조정의 요소 = 41 규모조정, 확장성 = 41 규모조정의 요소 = 42 웹 애플리케이션과 부하의 관계 = 42 DB 확장성 확보의 어려움 = 44 강의 7 대규모 데이터를 다루기 위한 기초지식 = 48 프로그래머를 위한 대규모 데이터 기초 = 48 대규모 데이터를 다루는 세 가지 급소 = 48 대규모 데이터를 다루기 전 3대 전제지식 = 50 CHAPTER 03 OS 캐시와 분산 : 대규모 데이터를 효율적으로 처리하는 원리 강의 8 OS의 캐시 구조 = 56 OS의 캐시 구조를 알고 애플리케이션 작성하기 = 56 가상 메모리 구조 = 58 Linux의 페이지 캐시 원리 = 60 VFS = 62 Linux는 페이지 단위로 디스크를 캐싱한다 = 62 메모리가 비어 있으면 캐싱 = 64 메모리를 늘려서 I/O 부하 줄이기 = 66 페이지 캐시는 투과적으로 작용한다 = 67 강의 9 I/O 부하를 줄이는 방법 = 72 캐시를 전제로 한 I/O 줄이는 방법 = 72 복수 서버로 확장시키기 = 73 단순히 대수만 늘려서는 확장성을 확보할 수 없다 = 75 강의 10 국소성을 살리는 분산 = 79 국소성을 고려한 분산이란? = 79 파티셔닝 = 80 요청 패턴을 '섬'으로 분할 = 83 페이지 캐시를 고려한 운용의 기본 규칙 = 85 CHAPTER 04 분산을 고려한 MySQL 운용 강의 11 인덱스를 올바르게 운용하기 : 분산을 고려한 MySQL 운용의 대전제 = 88 분산을 고려한 MySQL 운용, 세 가지 포인트 = 88 OS 캐시 활용 = 89 인덱스의 중요성 = 91 인덱스의 효과 = 95 인덱스가 작용하는지 확인하는 법 = 98 강의 12 MySQL의 분산 = 102 MySQL의 레플리케이션 기능 = 102 마스터/슬레이브의 특징 = 104 강의 13 MySQL의 스케일아웃과 파티셔닝 = 107 MySQL의 스케일아웃 전략 = 107 파티셔닝(테이블 분할)에 관한 보충 = 107 파티셔닝을 전제로 한 설계 = 108 JOIN 배제 = 110 파티셔닝의 상반관계 = 112 제2장∼제4장 정리 = 116 CHAPTER 05 대규모 데이터 처리 실전 입문 : 애플리케이션 개발의 급소 강의 14 용도특화형 인덱싱 = 118 인덱스와 시스템 구성 = 118 용도특화형 인덱싱 = 120 강의 15 이론과 실전 양쪽과의 싸움 = 125 요구되는 기술적 요건 규명하기 = 125 제2장∼제5장 정리 = 127 CHAPTER 06 [과제] 압축 프로그래밍 : 데이터 크기, I/O 고속화와의 관계 인식하기 강의 16 [과제] 정수 데이터를 컴팩트하게 가져가기 = 130 정수 데이터를 컴팩트하게 가져가기 = 130 출제의도 = 130 과제에서 다루는 파일의 내부 = 132 강의 17 VB Code와 속도감각 = 133 VB Code = 133 VB Code의 의사코드 = 135 정렬 완료된 정수를 'Gap'으로 가져가기 = 137 보충① - 압축의 기초 = 138 보충② - 대상이 정수인 경우 = 139 강의 18 과제에 대한 상세설명과 응답 사례 = 141 과제에 대한 상세설명 = 141 참고① : pack() 함수 = 143 참고② : 바이너리의 read/write = 146 참고③ : 프로파일링 = 148 응답 사례와 사고방식 = 149 CHAPTER 07 알고리즘 실용화 : 가까운 예로 보는 이론ㆍ연구의 실전 투입 강의 19 알고리즘과 평가 = 156 데이터 규모와 계산량 차이 = 156 알고리즘이란? = 157 알고리즘을 배우는 의의 = 158 알고리즘의 평가 = 159 티슈를 몇 번 접을 수 있을까? = 161 알고리즘과 데이터 구조 = 163 알고리즘의 실제 활용 = 165 계산량과 상수항 = 164 써드파티 소스를 잘 활용하자 = 167 실제 사례를 보고 실전감각 익히기 = 169 강의 20 하테나 다이어리의 키워드 링크 = 170 키워드 링크란? = 170 최초 구현방법 = 171 문제발생! = 171 패턴매칭에 의한 키워드 링크의 문제점 = 172 정규표현 : Trie = 173 AC법 = 175 Regexp::List로의 치환 = 177 키워드 링크 구현, 변이 및 고찰 = 178 강의 21 하테나 북마크의 기사 분류 = 179 기사 분류란? = 179 기계학습과 대규모 데이터 = 180 대규모 데이터와 웹 서비스 = 181 베이지안 필터의 원리 = 183 알고리즘이 실용화되기까지 = 185 수비 자세, 공격 자세 = 187 CHAPTER 08 [과제] 하테나 키워드링크 구현 : 응용으로 가는 길 깨닫기 강의 22 [과제] 하테나 키워드 링크 만들기 = 192 AC법을 이용해서 하테나 키워드 링크 만들기 = 192 테스트 프로그램 작성 = 195 강의 23 응답 사례와 사고방식 = 198 응답 사례 = 198 CHAPTER 09 전문 검색기술 도전 : 대규모 데이터 처리의 노하우 강의 24 전문 검색기술의 응용범위 = 202 하테나의 데이터로 검색엔진 만들기 = 202 하테나 다이어리의 전문 검색 = 202 하테나 북마크의 전문 검색 = 205 강의 25 검색 시스템의 아키텍처 = 208 검색 시스템이 완성되기까지 = 208 다양한 검색엔진 = 210 전문 검색의 종류 = 212 강의 26 검색엔진의 내부구조 = 217 역 인덱스의 구조 = 217 Dictionary 만드는 법 = 219 지금까지의 내용 정리 = 230 Postings 작성법 = 230 스코어링에 대한 보충 = 233 참고문헌 = 234 CHAPTER 10 [과제] 전문 검색엔진 작성 : 기초, 상세부분 작성, 속도와 정확성 추구 강의 27 [과제] 하테나 북마크 전문 검색 만들기 = 238 전문 검색엔진 개발 = 238 과제내용 = 239 샘플 데이터 형식과 데이터 크기 = 240 사전의 구성 = 241 인터페이스 = 241 기본적인 부분+심화 구현 = 242 속도와 정확성으로 승부 = 243 강의 28 응답 사례와 사고방식 = 244 응답 사례 = 244 indexer.pl 구현 = 245 searcher.pl 구현 = 247 개선할 수 있는 점은? = 250 CHAPTER 11 대규모 데이터 처리를 지탱하는 서버/인프라 입문 : 웹 서비스의 백엔드 강의 29 엔터프라이즈 vs. 웹 서비스 = 254 엔터프라이즈 vs. 웹 서비스 = 254 웹 서비스의 인프라 = 257 강의 30 클라우드 vs. 자체구축 인프라 = 259 클라우드 컴퓨팅 = 259 클라우드의 장단점 = 260 하테나에서의 클라우드 서비스 사용 = 261 자체구축 인프라의 장점 = 262 자체구축 인프라와 수직통합 모델 = 263 하테나의 서비스 규모 = 264 하테나 북마크의 시스템 구성도 = 265 CHAPTER 12 확장성 확보에 필요한 사고방식 : 규모 증대와 시스템 확장 강의 31 계층과 확장성 = 268 확장성에 대한 요구 = 268 계층별 확장성 = 269 강의 32 부하 파악, 튜닝 = 271 부하 파악 = 271 부하를 측정하기 위한 항목 = 273 용도에 맞는 튜닝 = 274 AP 서버/DB 서버의 튜닝 정책과 서버 대수 = 275 서비스 규모와 튜닝 = 276 확장성 확보 = 277 CHAPTER 13 다중성 확보, 시스템 안정화 : 100%에 근접한 가동률을 실현하는 원리 강의 33 다중성 확보 = 280 다중성 확보 - AP 서버 = 280 다중성 확보 - DB 서버 = 281 다중성 확보 - 스토리지 서버 = 284 강의 34 시스템 안정화 = 289 시스템 안정화를 위한 상반관계 = 289 시스템의 불안정 요인 = 290 강의 35 시스템 안정화 대책 = 296 실제 안정화 대책 = 296 CHAPTER 14 효율향상전략 : 하드웨어의 리소스 사용률 높이기 강의 36 가상화 기술 = 300 가상화 기술의 도입 = 300 가상화 기술의 효용 = 301 가상화 서버 구축정책 = 302 가상화로 얻은 장점 정리 = 304 가상화와 운용 = 305 가상화 도입 시 주의할 점 = 308 강의 37 하드웨어와 효율향상 = 310 프로세서의 성능향상 = 310 메모리, HDD의 비용저하 = 311 저가 하드웨어의 유용한 이용법 = 313 SSD = 315 CHAPTER 15 웹 서비스와 네트워크 : 서비스의 성장 강의 38 네트워크 분기점 = 320 서비스 성장과 네트워크 분기점 = 320 1Gbps의 한계 = 320 500호스트의 한계 = 321 네트워크 구조 계층화 = 323 글로벌화 = 324 강의 39 한층 높은 단계로 = 327 10Gbps 이상의 세계 = 327 하테나의 인프라 = 328 APPENDIX A 현대 웹 서비스 구축에 필요한 실전 기술 : 대규모 서비스에 대응하기 위해서 Special 강의 1 작업큐(Job-Queue) 시스템 - TheSchwartz, Gearman = 332 Special 강의 2 스토리지 선택 - RDBMS와 key-value 스토어 = 337 Special 강의 3 캐시 시스템 - Squid, Varnish = 350 Special 강의 4 계산 클러스터 - Hadoop = 358 찾아보기 = 362