본문 바로가기
장바구니0

전문가가 알려주는 웹 퍼포먼스 튜닝 > 웹사이트

상품간략정보 및 구매기능

전문가가 알려주는 웹 퍼포먼스 튜닝

기본설명

상품 선택옵션 0 개, 추가옵션 0 개

제조사 위키북스
원산지 국내산
브랜드 위키북스
시중가격 28,000원
판매가격 28,000원
배송비결제 주문시 결제
최소구매수량 1 개
최대구매수량 999 개
  • 전문가가 알려주는 웹 퍼포먼스 튜닝
    +0원

관련상품

등록된 관련상품이 없습니다.

  • 상품 정보

    상품 상세설명

    전문가가 알려주는 웹 퍼포먼스 튜닝

    9791158394752.jpg

    도서명:전문가가 알려주는 웹 퍼포먼스 튜닝
    저자/출판사:후지와라 슌이치로 , 바바 토시아키 , 나카니시 켄토/위키북스
    쪽수:364쪽
    출판일:2024-01-03
    ISBN:9791158394752

    목차
    ▣ 1장: 튜닝의 기초 지식
    1-1 현재 웹 서비스의 필수 요건인 ‘속도’
    ___웹 서비스의 경쟁력과 직결되는 ‘속도’
    ___SEO에도 영향을 주는 ‘속도’
    1-2 속도가 빠른 웹 서비스
    ___비용 절감에도 영향을 미치는 ‘속도’
    ___속도가 빠른 웹 서비스란?
    ___웹 서비스 속도 단위
    ___웹 서비스의 구조 이해
    1-3 웹 서비스 부하
    ___웹 서비스의 부하가 높은 상태
    ___속도와 용량
    ___성능 튜닝
    1-4 웹 서비스 용량
    ___필요 충분한 용량
    ___필요 충분한 용량을 예측하는 방법
    1-5 성능 튜닝의 시작(1)
    ___추측하지 않고 계측
    ___공정한 비교
    ___하나씩 비교
    1-6 성능 튜닝의 시작(2)
    ___병목 현상 해소
    ___병목을 식별할 때는 바깥쪽에서 안쪽으로
    ___병목 현상에 대처하는 3가지 방법
    1-7 성능 튜닝의 시작(3)
    ___부하 테스트의 과정 개요
    1-8 정리

    ▣ 2장: 모니터링
    2-1 모니터링이란 - 인프라에서의 테스트
    2-2 모니터링 개념
    2-3 모니터링 종류
    ___외형 감시
    ___내부 감시
    2-4 수동 모니터링
    2-5 모니터링 도구
    2-6 모니터링 도구의 구조
    ___에이전트 node_exporter
    ___node_exporter로 얻을 수 있는 메트릭
    2-7 모니터링 실시
    2-8 모니터링 시 주의점
    ___올바른 측정 결과 확인
    ___2개의 그래프를 비교할 때 다른 조건 맞추기
    ___부하가 높은 상태 모니터링
    ___모니터링 해상도
    2-9 로그 모니터링
    2-10 정리

    ▣ 3장: 부하 테스트의 기초
    3-1 private-isu
    ___private-isu 사양 및 운영 환경
    ___직접 private-isu를 동작
    ___Amazon EC2에서 private-isu 시작
    ___Docker에서 private-isu 시작
    ___private-isu 실행
    3-2 부하 테스트 준비
    ___부하 테스트 환경 준비
    ___nginx의 액세스 로그 집계
    ___액세스 로그를 JSON 형식으로 출력
    ___JSON 형식의 액세스 로그 집계
    ___alp를 설치하는 방법
    ___alp를 사용한 로그 해석 방법
    3-3 벤치마커로 부하 테스트 실시
    ___ab 명령 설치
    ___ab 명령 사용법
    ___ab의 결과와 alp의 결과 비교
    ___액세스 로그 로테이션
    3-4 성능 튜닝 시작
    ___부하 테스트 실시 - 첫 번째 결과 확인
    ___부하 테스트 중 부하 모니터링
    ___MySQL 병목을 발견할 준비
    ___슬로우 쿼리 로그 구문 해석
    ___튜닝 결과를 확인하는 부하 테스트
    ___새로운 병목 찾기
    3-5 벤치마커의 병렬성
    ___서버의 처리 능력을 전부 사용할 수 있는지 확인
    ___왜 CPU를 사용하지않는가?
    ___여러 CPU를 효과적으로 사용하기 위한 설정
    ___서버 병렬성을 높여 부하 테스트 실시
    3-6 정리

    ▣ 4장: 시나리오 부하 테스트
    4-1 부하 테스트 도구 k6
    ___k6 설치
    4-2 k6로 간단한 부하 테스트
    4-3 k6로 시나리오 작성
    ___시나리오에서 공통으로 사용하는 함수를 정의
    ___웹 서비스 초기화 처리 시나리오 작성
    ___sleep() 함수: 일정시간 대기
    ___사용자가 로그인해 댓글을 작성하는 시나리오 작성
    ___check() 함수: 응답 내용 확인
    ___parseHTML() 함수: HTML 내의 요소를 취득
    ___파일 업로드가 포함된 양식 제출
    ___시나리오에서 사용할 외부 데이터 준비
    4-4 여러 시나리오를 결합한 통합 시나리오 실시
    ___통합 시나리오 실행 결과 예
    4-5 부하 테스트에서 얻은 액세스 로그 해석
    4-6 정리

    ▣ 5장: 데이터베이스 튜닝
    5-1 데이터베이스의 종류 및 선택
    ___일관성을 강조하는 RDBMS
    ___응용 프로그램 요구에 맞춘 NoSQL
    ___일관성과 분산을 모두 충족하는 NewSQL
    ___데이터베이스 선택
    5-2 데이터베이스 부하 측정
    ___OS에서 부하를 모니터링
    ___MySQL 프로세스 목록
    ___pt-query-digest로 슬로우 쿼리 로그 분석
    ___query-digester를 사용한 프로파일링 자동화
    ___pt-query-digest 결과 확인
    5-3 인덱스로 데이터베이스를 고속화
    ___데이터베이스에서 결과를 빠르게 얻으려면
    ___데이터베이스에서 인덱스의 역할
    ___인덱스로 인해 검색이 빨라지는 이유
    ___MySQL에서 인덱스 사용
    ___복합 인덱스 및 정렬에 사용되는 인덱스
    ___클러스터 인덱스 구성 및 클러스터 인덱스에서 인덱스 튜닝
    ___너무 많은 인덱스 생성으로 인한 안티 패턴
    ___MySQL이 지원하는 기타 인덱스
    5-4 N+1이란?
    ___쿼리 수가 증가하면 응용 프로그램이 느려지는 이유
    ___N+1을 찾고 해결하는 방법
    ___데이터베이스 이외에도 있는 N+1 문제
    5-5 데이터베이스와 자원을 효율적으로 사용
    ___FORCE INDEX와 STRAIGHT_JOIN
    ___필요한 열만 취득해 효율화
    ___프리페어드 스테이트먼트와 Go 언어에서의 연결 설정
    ___데이터베이스와의 연결 지속성 및 최대 연결 수
    5-6 정리

    ▣ 6장: 리버스 프락시 사용
    6-1 응용 프로그램 및 프로세스 스레드
    6-2 리버스 프락시를 이용하는 장점
    6-3 nginx란?
    6-4 nginx 구조
    6-5 nginx로 전송할 때 데이터 압축
    6-6 nginx에 의한 요청 응답 버퍼링
    6-7 nginx와 업스트림 서버의 연결 관리
    6-8 nginx의 TLS 통신 속도 향상
    6-9 정리

    ▣ 7장: 캐시 활용
    7-1 캐시 데이터 저장에 사용되는 미들웨어
    7-2 캐시를 KVS에 저장할 때의 주의점
    7-3 언제 캐시를 사용할까?
    ___TTL을 충분히 짧게 설정
    7-4 구체적인 캐시 구현 방법
    ___캐시에 데이터가 없으면 캐시를 생성해 생성 결과를 저장하는 방법
    ___캐시가 없다면 기본값이나 이전의 캐시를 반
    ___비동기적으로 캐시 갱신 처리를 실시
    ___일괄 처리 등으로 정기적으로 캐시를 갱신
    ___Private-isu에서 실제로 캐시 사용
    7-5 캐시 모니터링
    7-6 정리

    ▣ 8장: 알아 두면 좋은 고속화 방법
    8-1 외부 명령 실행이 아닌 라이브러리 사용
    8-2 개발용 설정에서 불필요한 로그를 출력하지 않는다
    8-3 HTTP 클라이언트 사용 기법
    ___적절한 타임아웃 설정
    ___동일한 호스트에 대량의 요청을 보내는 경우 호스트의 연결 수 제한 확인
    8-4 정적 파일을 리버스 프락시에서 직접 전달
    8-5 클라이언트 측에서 캐시를 활용하기 위해 HTTP 헤더를 사용
    8-6 CDN상에 HTTP 응답을 캐시
    ___CDN은 전 세계 어디서 액세스하더라도 빠른 서비스를 제공
    ___Cache-Control을 사용해 CDN 또는 Proxy에 캐시
    8-7 정리

    ▣ 9장: OS 기초 지식과 튜닝
    9-1 흐름 파악하기
    9-2 리눅스 커널의 기초 지식
    9-3 리눅스의 프로세스 관리
    9-4 리눅스의 네트워크
    ___네트워크 메트릭
    ___리눅스 커널에서 패킷 처리 효율성
    9-5 리눅스의 디스크 I/O
    ___스토리지 종류
    ___스토리지 성능이란 - 처리량, 지연 시간, IOPS
    ___스토리지 성질 조사
    ___디스크 마운트 옵션
    ___I/O 스케줄러
    9-6 CPU 사용률
    ___us - User: 사용자 공간에서 CPU 사용률
    ___sy - System: 커널 공간에서의 CPU 사용률
    ___ni - Nice: nice 값(우선순위)이 변경된 프로세스의 CPU 사용률
    ___id - Idle: 사용되지 않는 CPU
    ___wa - Wait: I/O 처리를 기다리는 프로세스의 CPU 사용률
    ___hi - Hardware Interrupt: 하드웨어 인터럽트 프로세스의 사용률
    ___si - Soft Interrupt: 소프트 인터럽트 프로세스의 사용률
    ___st - Steal: 하이퍼바이저가 사용하는 CPU 사용률
    9-7 리눅스에서의 효율적인 시스템 설정
    ___ulimit
    9-8 리눅스 커널 매개변수
    ___net.core.somaxconn
    ___net.ipv4.ip_local_port_range
    9-9 MTU(Maximum Transmission Unit)
    ___기타 커널 매개변수
    9-10 정리

    ▣ 부록A: private-isu 공략 실천
    A-1 준비한 대회용 환경
    A-2 벤치마커 실행 방법
    A-3 각 장에서 소개한 방법 적용
    ___초기 상태(약 640점)
    ___comments 테이블에 인덱스 추가(약 5,500점)
    ___unicorn worker 프로세스를 4로 설정(약 13,000점)
    ___정적 파일을 nginx로 전달(약 17,000점)
    ___업로드 이미지를 정적 파일화(약 22,000점)
    ___GET /을 분석
    ___posts와 users를 JOIN해 필요한 행 수만 취득(약 90,000점)
    ___벤치마커가 사용하는 파일 디스크립터 상한을 증가
    ___프리페어드 스테이트먼트를 개선(약 110,000점)
    ___comments 테이블에 인덱스 생성 (약 115,000점)
    ___posts에서 N+1 쿼리 결과 캐시(약 180,000점)
    ___적절한 인덱스를 사용할 수 없는 쿼리를 해결(약 200,000점 )
    ___외부 명령 호출 중지(약 240,000점)
    ___MySQL 설정 변경 (약 250,000점)
    ___memcached에 대한 N + 1 제거 (약 300,000 점 )
    ___Ruby의 YJIT를 활성화(약 320,000점)
    ___처음에 생성한 인덱스를 삭제(약 10,000점)
    A-4 정리

    ▣ 부록B: 벤치마커 구현
    B-1 ISUCON의 벤치마커는 무엇인가?
    ___부하 테스트 도구로서의 벤치마커
    ___웹 서비스 구현에 대한 E2E 테스트로서의 벤치마커
    ___점수와 에러를 제공하는 정보원으로서의 벤치마커
    ___벤치마커에 요구되는 행동에 주의할 것
    B-2 자주 사용되는 벤치마커 구현 패턴
    ___context.Context
    ___time과 context에 의한 루프 패턴
    ___sync 패키지 사용
    ___sync/atomic 패키지 사용
    ___Functional Option 패턴
    B-3 private-isu를 대상으로 한 벤치 마커 구현
    ___입출력 설계
    ___데이터 갖기
    ___초기화 처리 구현하기
    ___로그인하는 처리 작성
    ___이미지를 게시하는 처리 만들기
    ___최상위 페이지 검증
    ___점수 계산
    ___실제로 실행하고 동작을 확인
    B-4 정리
    delivery.jpg
  • 사용후기

    사용후기가 없습니다.

  • 상품문의

    상품문의가 없습니다.

  • 배송/교환정보

    배송정보

    배송업체 : 한진택배 (1588-0011)
     배송비
     2,500원 (25,000원 이상 구매 시 무료 배송/일부상품제외) 군부대 및 도서산간 지역은 추가 배송비가 발생할 수 있습니다.
     ◆배송기간
     : 평일 오전 7시 이전 주문 시 당일 발송 (2~3일 소요) : 단, 공휴일, 연휴, 천재지변 등으로 인해 발송이 지연될 수 있습니다.
     ◆배송추적
     : 당일 발송건에 한해 익일 오전 9시 이후 확인 가능합니다.


    교환/반품

     ◆반품/교환을 원하는 경우 반드시 고객센터로 연락 후 신청하시기 바랍니다.
     ◆반품/교환은 상품 수령일로 부터 7일 이내에만 가능합니다. 단, 상품이 훼손되지 않았거나, 속 비닐이 있는 경우 듣지 않았을    때 가능합니다.
     •고객님의 변심 또는 잘못 주문하신 경우에는 왕복 배송비는 고객님의 부담입니다.
     ◆오배송, 파본, 불량 상품에 대해서는 고객센터로 연락주시면 상담 후 교환해 드립니다.
     ◆오배송, 파본, 불량상품의 배송비는 환불처에서 부담합니다.
     교환/반품
     ◆환불은 상품이 환불에 도착 시 처리됩니다. (카드 취소는 3~5일이 소요될 수 있습니다.)

고객센터 1234-5678

회사명 (주)꼭대기 주소 서울 특별시 마포구 연희로 11,5층 S-537호
사업자 등록번호 795-87-00429 대표 오주봉 전화 02-356-5779 팩스 02-356-5779
통신판매업신고번호 제2017-서울마포-0052호 개인정보 보호책임자 dhwnqhd

Copyright © 2001-2013 (주)꼭대기. All Rights Reserved.

상단으로