logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

오픈소스 소프트웨어 성능 최적화 보고서

오픈소스 소프트웨어 성능 최적화 보고서

(속도, 정밀도, 그리고 약간의 행운)

일리아 그리고릭, 마닉 수르타니, 마이클 스노이먼, 가즈 야마모토, 안드레아스 보엘미, 에번 마틴, 브라이스 하워드, 카일 휴이, 클린트 탤버트, 조엘 마어, 오드리 탱, C. 타이터스 브라운, 에릭 맥도널드, 더글러스 C. 슈미트, 아니루다 고칼레, 윌리엄 R. 오테, 아세니 카풀킨, 아르얀 스헤르페니서, 마크 워렐 (지은이), 테이비시 암스트롱 (엮은이), 류광 (옮긴이)
제이펍
15,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

오픈소스 소프트웨어 성능 최적화 보고서
eBook 미리보기

책 정보

· 제목 : 오픈소스 소프트웨어 성능 최적화 보고서 (속도, 정밀도, 그리고 약간의 행운)
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9788994506906
· 쪽수 : 308쪽
· 출판일 : 2014-05-21

책 소개

오픈소스 소프트웨어의 느린 코드, 메모리 누수, 제어할 수 없는 잠복지연과 싸워야 했던 십여 명의 개발자들이 저술했다. 이 책을 통해 그들은 자신의 실수와 성공담을 공유하고, 주어진 도전과제에 자신이 어떻게 접근했는지를 독자가 어깨 너머로 볼 수 있게 한다.

목차

제1장 크롬의 고성능 네트워킹
1.1 구글 크롬의 역사와 기본 지침 1
1.2 성능의 여러 측면 2
1.3 현대적인 웹 응용 프로그램의 특징 4
1.4 네트워크 자원 요청 하나의 일생 5
1.5 “충분히 빠르다”의 의미 8
1.6 3천 미터 상공에서 본 크롬의 네트워크 스택 10
1.7 브라우저 세션의 일생 19
1.8 크롬은 사용하면 할수록 빨라진다 33
제2장 SocialCalc에서 EtherCalc로
2.1 초기 원형 38
2.2 첫 번째 병목 39
2.3 Node.js로 이식 41
2.4 서버 쪽 SocialCalc 42
2.5 Node.js 프로파일링 43
2.6 다중 코어 규모 확장 46
2.7 교훈 48
제3장 Ninja
3.1 크롬의 간단한 역사 54
3.2 Ninja의 설계 56
3.3 Ninja가 하는 일 58
3.4 Ninja의 최적화 60
3.5 결론 및 설계 대안 67
3.6 감사의 글 68
제4장 빛의 속도로 XML 파싱하기
4.1 소개 69
4.2 XML 파싱 모형들 70
4.3 pugixml 설계상의 선택들 71
4.4 파싱 72
4.5 DOM 자료구조 85
4.6 스택 기반 메모리 할당 89
4.7 스택 기반 할당자의 메모리 해제 지원 93
4.8 결론 95
제5장 MemShrink
5.1 소개 97
5.2 기반구조의 개요 98
5.3 잰 만큼 얻는다 101
5.4 달성하기 쉬운 과제들 105
5.5 내 잘못은 아니지만 내 문제 108
5.6 영속성은 탁월함의 대가 110
5.7 공동체 112
5.8 결론 113
제6장 최적화 원리 패턴들을 구성요소 배치와 구성 도구들에 적용하기
6.1 소개 115
6.2 DAnCE의 개요 119
6.3 최적화 원리 패턴들을 DAnCE에 적용하기 123
6.4 결론 140
제7장 Infinispan
7.1 소개 145
7.2 개요 146
7.3 Infinispan의 벤치마킹 149
7.4 Radar Gun 150
7.5 성능 문제의 잠재적 근원 153
7.6 결론 159
제8장 Talos
8.1 개요 162
8.2 측정 대상의 이해 164
8.3 재작성 대 리팩터링 167
8.4 성능 문화 만들기 168
8.5 결론 171
제9장 Zotonic
9.1 Zotonic 소개 173
9.2 왜 Zotonic인가? 왜 Erlang인가? 174
9.3 Zotonic의 구조 177
9.4 문제 해결: 슬래시닷 효과에 맞서기 180
9.5 캐싱 계층들 183
9.6 Erlang의 가상 기계 190
9.7 Webmachine 라이브러리 변경 사항 194
9.8 자료 모형: SQL 기반 문서 데이터베이스 196
9.9 벤치마크, 통계치, 최적화 197
9.10 결론 199
9.11 감사의 글 200
제10장 이동통신망 성능의 비밀
10.1 소개 201
10.2 잠복지연의 근원들 202
10.3 셀 방식 이동통신망의 특성 203
10.4 네트워크 프로토콜 성능 208
10.5 TCP(전송 제어 프로토콜) 209
10.6 HTTP(하이퍼텍스트 전송 프로토콜) 213
10.7 TLS(전송층 보안) 216
10.8 DNS(도메인 이름 시스템) 219
10.9 결론 221
제11장 Warp
11.1 Haskell의 네트워크 프로그래밍 224
11.2 Warp의 구조 229
11.3 Warp의 성능 231
11.4 핵심 착안 233
11.5 HTTP 요청 파서 235
11.6 HTTP 응답 조합기 242
11.7 타이머를 이용한 정리 245
11.8 향후 작업 249
11.9 결론 251
제12장 생물정보학의 거대 자료 다루기
12.1 소개 253
12.2 khmer의 구조와 성능상의 고려사항 257
12.3 프로파일링과 측정 261
12.4 조율 265
12.5 전반적인 조율 266
12.6 병렬화 271
12.7 결론 275
12.8 향후 개선안 275
12.9 감사의 글 276
참고문헌 277
찾아보기 282

저자소개

일리아 그리고릭 (지은이)    정보 더보기
구글에서 웹 성능 엔지니어 겸 개발자 대변인으로 일하며 우수 성능 사례 도입을 통한 신속한 웹 개발에 앞장서고 있다.
펼치기
마닉 수르타니 (지은이)    정보 더보기
레드햇의 JBoss의 핵심 연구 개발 엔지니어이며 현재 리드하고 있는 인피니스팬 프로젝트의 창시자다. JSR-347(자바 플랫폼 데이터그리드)를 리드하고 있으며 JSR-107(자바 캐시)의 전문가 그룹에서 레드햇을 대표하고 있다. 클라우드, 분산 컴퓨팅, NoSQL, 빅데이터, 자율 시스템, 고가용적 컴퓨팅에 관심이 있다. 학계에 있을 때에는 인공지능과 신경망을 경험했으며, 그 이후로는 자바와 관련된 기술을 사용해여 일해왔다. 처음에는 지식관리와 정보교환에 집중하는 스타트업에서, 나중에는 런던의 큰 컨설팅 회사에서 자바EE와 P2P 기술에 기반한 전자 상거래 애플리케이션의 기술 리더로서 일했다. 마닉은 오픈소스 개발 방법론, 정신, 협력 프로세스의 강력한 지지자이며 처음부터 오픈소스와 관계를 맺어왔다.
펼치기
마이클 스노이먼 (지은이)    정보 더보기
FP Complete의 수석 소프트웨어 공학자이며, 안정적이고 성능 높은 웹 응용 프로그램을 작성하는 수단들을 제공하는 Yesod Web Framework의 창시자이자 수석 개발자이다.
펼치기
가즈 야마모토 (지은이)    정보 더보기
IIJ Innovation Institute의 선임 연구원이다. 그는 약 20년간 오픈소스 소프트웨어 분야에서 일해 왔다. 그가 만든 소프트웨어로는 Mew, KAME, Firemacs, mighty가 있다.
펼치기
안드레아스 보엘미 (지은이)    정보 더보기
Yale University의 전산학 박사(PhD) 후보생이며, GHC 프로젝트에 기여하였고, GHC의 입출력 관리자의 유지보수자이다.
펼치기
에번 마틴 (지은이)    정보 더보기
Google에서 9년 동안 프로그래머로 일했다. 그전에는 전산학과 언어학에서 학위를 받았다.
펼치기
브라이스 하워드 (지은이)    정보 더보기
뭔가를 더 빠르게 만드는 데 집착하는 소프트웨어 아키텍트이다. 그는 15년 이상 업계에서 일했으며, 현재는 저술에 꽂혀서 O’Reilly Associates를 위해 AWS 입문서를 쓰고 있다.
펼치기
카일 휴이 (지은이)    정보 더보기
Mozilla Corporation에서 파이어폭스 웹 브라우저에 쓰이는 Gecko 렌더링 엔진에 대한 일을 하고 있다.
펼치기
클린트 탤버트 (지은이)    정보 더보기
근 10년간 Mozilla 프로젝트에 참여해 왔다. 현재 그는 자동화할 수 있는 모든 것의 자동화를 지상명령으로 삼는 Automation and Tools 팀을 이끌고 있다.
펼치기
조엘 마어 (지은이)    정보 더보기
소프트웨어 자동화에 15년 이상의 경력을 가지고 있다. 지난 5년간 조엘은 Mozilla의 자동화와 도구들을 이동전화기로 확장하는 작업을 수행했다.
펼치기
오드리 탕 (지은이)    정보 더보기
대만 행정원의 디지털 담당 정무위원(디지털 장관)이자 유명 프로그래머. 어려서부터 천재성을 보였으며, 일찍이 중학교를 떠나 대만과 실리콘밸리에서 개발자로 일했다. 프로그래밍 언어 ‘Perl6(현 Raku)’ 개발에 공헌하며 명성을 얻었다. 2016년 대만 사상 최연소인 35세의 나이로 정무위원에 임명되었다. 트랜스젠더로서 중앙 정부의 행정각료가 된 세계 최초의 사례이기도 하다. 코로나19 펜데믹 위기 때 디지털 기술을 활용해서 잘 대처한 덕분에 전 세계에서 칭송을 받았다. 2019년 미국 유명 잡지 《포린 폴리시》에서 ‘세계의 두뇌 100인’에 선정되기도 하고, 2020년 《타임》지 ‘올해 영향력 있는 100인’에 선정되기도 했다.
펼치기
C. 타이터스 브라운 (지은이)    정보 더보기
물리 기상학, 발생 생물학, 유전학 등의 분야에서 일해 왔다. 현재는 Michigan State University의 조교수이며, Python Software Foundation의 일원이다.
펼치기
에릭 맥도널드 (지은이)    정보 더보기
그가 지난 13년간 주로 관여했던 고성능 컴퓨팅에 강조를 둔 과학 소프트웨어 개발자이다.
펼치기
더글러스 C. 슈미트 (지은이)    정보 더보기
Vanderbilt University의 전산학 교수이자 전산학 및 공학 프로그램의 부의장이며 선임 연구원이다. 10권의 책을 저술했고 다양한 소프트웨어 관련 주제들에 대한 기술 논문을 500편 넘게 출판했다.
펼치기
아니루다 고칼레 (지은이)    정보 더보기
Vanderbilt University의 전기공학 및 전산학과의 조교수이자 Vanderbilt University의 Institute for Software Integrated Systems(ISIS)의 선임 연구 과학자이다. 그는 140편이 넘는 기술 논문을 저술 또는 공동 저술했다.
펼치기
윌리엄 R. 오테 (지은이)    정보 더보기
Vanderbilt University의 Institute for Software Integrated Systems(ISIS)의 연구 과학자이다. 분산 실시간 내장 시스템에 대한 오픈소스 미들웨어와 모형화 도구 개발에 10년이 넘는 경력을 가지고 있다.
펼치기
아세니 카풀킨 (지은이)    정보 더보기
경력 전체를 작은 틈새 타이틀에서부터 FIFA Soccer 같은 다중 플랫폼 AAA급 블록버스터에 이르기까지 다양한 비디오 게임의 그래픽 프로그래밍과 저수준 시스템 프로그래밍으로 보냈다.
펼치기
아르얀 스헤르페니서 (지은이)    정보 더보기
Zotonic의 주 아키텍트들 중 한 명이며, 다른 십여 개의 프로젝트들(주로는 Zotonic과 Erlang을 사용하는)도 관리하고 있다.
펼치기
마크 워렐 (지은이)    정보 더보기
Erlang 공동체에서 존경받는 일원이며 Zotonic 프로젝트의 창시자이다. 마크는 대형 Erlang 프로젝트의 컨설팅과 Zotonic 개발에 시간을 보내며, MaxClass와 LearnStone을 만든 Maximonster의 CTO이다.
펼치기
테이비시 암스트롱 (엮은이)    정보 더보기
Concordia University에서 소프트웨어 공학을 공부하고 있으며, 2014년 봄에는 졸업할 예정이다.
펼치기
류광 (옮긴이)    정보 더보기
커누스 교수의 《컴퓨터 프로그래밍의 예술》 시리즈를 비롯해 90여 권의 다양한 IT 전문서를 번역한 전문 번역가다. 이 책과 연관된 번역서로는 《파이썬으로 배우는 자연어 처리 인 액션》 《마스터링 트랜스포머》 《실전! RAG 기반 생성형 AI 개발》 《LLM 인 프로덕션》 등이 있다. 홈페이지 '류광의 번역 이야기'(https://occamsrazr.net)와 IT 및 게임 개발 정보 공유 사이트 GpgStudy(https://gpgstudy.com)를 운영한다.
펼치기

책속에서

소프트웨어에서 단순함은 하나의 미덕이다. 항상 문제는 단순함을 얼마나 오래 유지할 수 있는가이다. Ninja는 특정한 값비싼 과제들을 다른 도구(GYP나 CMake)에 위임함으로써 빌드 시스템의 복잡성을 상당 부분 잘라 냈다. 그리고 그 덕분에 애초에 Ninja를 염두에 두고 만든 프로젝트가 아닌 다른 프로젝트들에서도 Ninja를 유용하게 사용할 수 있다. 나는 Ninja의 단순한 코드가 기여자들을 격려했으리라고 믿는다.


소프트웨어를 최적화하기란 어렵다. 성공적인 최적화를 위해서는 거의 항상 저수준 미시적 최적화와 고수준 성능 지향적 설계 결정, 세심한 알고리즘 선택과 조율, 메모리와 성능, 구현 복잡도 사이의 절충 등 다양한 노력이 필요하다. pugixml은 아주 빠른 현업 수준 XML 파서를 제공하기 위해(그러한 목표를 위해 몇 가지 희생한 것들도 있긴 하지만) 이 모든 접근방식이 필요한 라이브러리의 예이다. 구현 세부사항의 상당 부분은 다른 프로젝트나 과제에 맞게 개조가 가능하다. 다른 프로젝트는 또 다른 파싱 라이브러리일 수도 있고, 아예 다른 뭔가일 수도 있겠다. 이 글에서 제시한 요령들이 독자의 흥미를 끌어당겼다면, 그리고 다른 프로젝트들에 유용하게 쓰인다면 좋겠다.


파이어폭스 4는 웹 브라우저의 개방적 동영상 지원, JavaScript 성능, 그래픽 가속 같은 영역에서 커다란 진전을 이룩했지만, 안타깝게도 메모리 사용량 면에서는 크게 후퇴했다. (중략) 그로부터 약 1년 반이 지난 지금, 그들의 일치된 노력은 파이어폭스의 메모리 소비량과 평판을 급속도로 바꾸었다. 대부분의 사용자들의 머리에서 ‘메모리 누수(memory leak)’는 과거의 일이 되었으며, 이제는 파이어폭스가 다른 브라우저들과 비교할 때 가장 가벼운 브라우저들 중 하나로 간주되는 경우가 많다. 이번 장에서는 파이어폭스의 메모리 사용량을 개선하기 위한 노력들을 살펴보고 그 과정에서 배운 교훈들을 소개하고자 한다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책