책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9791185890234
· 쪽수 : 348쪽
· 출판일 : 2015-05-28
책 소개
목차
Chapter 1 성능에 대한 기초적인 개념 1
1.1 | 성능을 배우기 위해 필요한 것 2
1.2 | 알고리즘의 장단점과 학습 방법 4
1.3 | 알고리즘의 실제 사례와 성능 차이 9
Column 정보 과학 학습의 중요성 16
1.4 | 응답과 처리량 16
Column 인프라 엔지니어가 프로그래밍을 배워야 하는 이유 18
1.5 | 알고리즘의 구체적인 예 19
Column DBMS는 데이터 구조와 알고리즘의 보고 43
Column [상급자편] 락 구조는 어떻게 구현돼 있을까? 47
Column [상급자편] 성능에는 정상 처리만 있는 것이 아니다 48
Chapter 2 성능 분석의 기본 49
2.1 | 성능의 시작은 측정부터 50
2.2 | 필요한 성능 정보란? 50
2.3 | 성능 분석 시에 중요한 이론 59
Column 성능은 정기적으로 확인해야 한다 65
2.4 | OS 명령 66
Column 시간 동기화는 중요하다 71
Chapter 3 실전 시스템 성능 분석 91
3.1 | 웹/AP 서버와 자바/C 애플리케이션 92
3.2 | DB 서버의 성능 측정 97
3.3 | 저장소 성능 분석 개념 100
Column 배치 성능 측정 100
3.4 | 네트워크 성능 분석 개념 107
3.5 | 원인 조사 110
Column 성능 데이터는 어느 정도 주기로 저장해야 할까? 110
Column 각종 성능 정보 취득 시점을 맞출 것인가? 맞추지 않을 것인가? 116
Column 성능 분석을 위한 꿈의 툴? 119
Chapter 4 성능 튜닝 121
4.1 | 성능과 튜닝 122
4.2 | 성능 튜닝의 정석 127
4.3 | 현장에서 사용할 수 있는 기술 134
Column 컴파일러는 RDBMS와 같은 길을 가는 것일까? 134
4.4 | 실제 업무에서 접하게 되는 성능 문제 150
4.5 | 튜닝 예 154
Column 대기 행렬의 선두는 무엇을 하고 있는가? 161
Chapter 5 성능 테스트 163
5.1 | 성능 테스트 개요 164
5.2 | 자주하는 실패: 아홉 가지 실패 패턴 168
5.3 | 성능 테스트 종류 180
5.4 | 프로젝트 단계별로 고려해야 할 성능 테스트 195
5.5 | 성능 테스트 문제와 필요 노하우 217
Chapter 6 가상화 환경 성능 229
6.1 | 가상화와 성능 230
6.2 | 가상화 개요 231
Column 하드웨어 지원 기능 235
6.3 | 서버 가상화 주요 기술(오버커밋) 236
6.4 | 가상화 환경에서의 성능 개념과 분석 방법 246
Column DRS, 아직도 사용하고 있지 않은가? 260
Column 대기 시간 감도(Latency-Sensitivity) 기능 266
Chapter 7 클라우드 환경의 성능 267
7.1 | 클라우드 환경에서의 성능 개념 268
7.2 | 클라우드와 온프레미스 환경의 차이 269
Column 클라우드 컴퓨팅이 실현하는 궁극의 세계화 273
Column 하이브리드 구성의 비용 관리는 리얼 옵션을 고려한 포트폴리오 관리 275
Column 클라우드에서는 손익 분기점을 항상 플러스로 만들 수 있다(독자적인 SaaS 제공에 최적인 비용 모델) 277
7.3 | 클라우드 환경의 내부 구성과 최적의 애플리케이션 방식 286
Column 추상화된 클라우드 환경을 구체화하는 미국인 - 시각화(그림)의 중요성 293
7.4 | 클라우드 환경의 성능 분석 방법 304
Column 성능 분야는 이공계 엔지니어의 특권? 306
7.5 | 클라우드 환경의 개발 단계 접근법 311
Column 클라우드 환경에서는 경영자도 상세한 성능 데이터를 신경 쓴다? 315
7.6 | 클라우드 환경의 운용 단계 접근법 315
Column 임계 값 설정과 시스템 안전 계수의 표준화 가치 317
Column 클라우드가 실현하는 데브옵스의 성능 튜닝 효율화 322
찾아보기 343
저자소개
리뷰
책속에서
독자들도 이미 알다시피 IT 세계는 점점 블랙박스화되고 있다. 이런 변화와 함께 엔지니어가 피할 수 없는 분야가 바로 ‘성능’이다. 아무리 블랙박스화가 진행되더라도 엔지니어가 구조를 이해해서 성능을 튜닝해야 하기 때문이다. 블랙박스화는 바꿔 말하면 ‘보이지 않는(보지 않고도 할 수 있는) 것’을 의미하며, 또한 엔지니어가 해야 할 일이 사라지는 것을 의미하기도 한다. 하지만 성능만은 내부를 파악해서 튜닝을 해주어야 한다. 이 책에서도 설명하지만, 가상화나 클라우드화 모두 성능 개선에 대해 고려해야 할 것들이 줄기는커녕 오히려 늘어나고 있다. 이러한 난관을 헤치고 엔지니어 여러분들의 밝은 미래를 위해서 반드시 이 책이 도움되길 바란다. _xv
이와 같이 알고리즘에는 떼려야 뗄 수 없는 장점과 단점이 늘 공존한다. 이렇게 ‘한쪽을 얻기 위해 다른 한쪽을 포기해야 한다’는 사고방식이 중요한데, 의외로 이 점을 인식하지 못해서 발생하는 문제가 많다. 예를 들면, 데이터가 온 순서대로 저장했으므로 데이터가 늘어나면 검색에 많은 시간이 걸리게 되는 것은 당연한 일이다. 참고로 이런 생각 방식은 알고리즘뿐만 아니라 아키텍처에서도 중요하다.
참고로 배치 처리는 조금 다르다. 이 처리는 적은 수의 스레드가 연속적으로 처리하는 형태가 일반적이기 때문이다. 따라서 다른 스레드가 끼어들지 않는다. 즉, 처리 시간이 길어지더라도 대기 행렬은 길어지지 않는 것이다. 배치 처리의 경우, 대기 행렬이 짧더라도 성능에 문제가 있는 경우가 있다. 이는 대기 행렬로는 알 수 없으므로, 처리 시간이 긴지를 확인해서 판단하는 것이 일반적인 방법이다.