간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (23,940원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (17,640원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (20,160원)
(최대할인 4만원 / 2만원 이상 결제)
Close

전문가가 알려주는 웹 퍼포먼스 튜닝 : 빠르고 가벼운 웹 서비스를 위한 성능 최적화 기법

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 17
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 역 : 김민호
  • 출판사 : 위키북스
  • 발행 : 2024년 01월 03일
  • 쪽수 : 364
  • ISBN : 9791158394752
정가

28,000원

  • 25,200 (10%할인)

    1,400P (5%적립)

할인혜택
적립혜택
  • S-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 7/19(금) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(44)

  • 상품권

AD

책소개

웹 서비스 고속화를 위한 성능 개선 방법과 노하우를 알기 쉽게 설명합니다!

《전문가가 알려주는 웹 퍼포먼스 튜닝》은 일상적으로 사용되는 웹 서비스의 성능 개선 방법을 소개하는 실용적인 안내서입니다. 이 책은 LINE 주식회사(현재 LINE야후 주식회사로 변경)가 주최하는 ‘ISUCON’이라는 웹 서비스 성능 개선 대회를 중심으로, 실제로 사용되는 문제들을 통해 웹 서비스의 성능 문제를 해결하는 방법을 깊이 있게 다룹니다.

웹 응용 프로그램이 사용자의 요청에 빠르게 반응하고, 데이터베이스와 효율적으로 상호작용하는 것은 웹 서비스의 성능 향상에 결정적인 역할을 합니다. 이 책은 코드 최적화, 미들웨어 설정, 운영체제 설정 변경 등과 같은 다양한 성능 개선 전략을 제시하며, 필요에 따라 웹 응용 프로그램의 프로그래밍 언어 변경과 같은 고급 기술도 다룹니다.

또한, 웹 서비스의 개발 및 운영에 종사하는 모든 전문가에게 유익한 내용을 담고 있습니다. 특히 성능 개선의 필요성을 느끼는 개발자와 엔지니어에게 필수적인 지침서로, ISUCON 대회 참가를 고려하고 있거나 성능 문제 해결에 어려움을 겪고 있는 이들에게 매우 유용할 것입니다. 저자들은 자신들의 실제 현장 경험과 ISUCON 대회에서의 성공 사례를 바탕으로, 웹 서비스의 성능을 효과적으로 개선하는 데 필요한 실질적인 조언을 제공합니다.

목차

▣ 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 정리

관련이미지

저자소개

김민호 [역] 신작알림 SMS신청
생년월일 -

대학에서 사이버 해킹 보안을 전공하고 보안 교육을 시작으로 보안 업계에 첫발을 내디뎠다. 여러 인터넷 기업의 사내 보안을 담당했으며 현재는 소프트뱅크 그룹의 온프레미스 및 클라우드 환경의 보안 사고 감시ㆍ분석ㆍ대응 업무를 주로 담당하고 있다.

이 상품의 시리즈

(총 45권 / 현재구매 가능도서 45권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주)KG이니시스 구매안전서비스서비스 가입사실 확인

    (주)인터파크커머스는 회원님들의 안전거래를 위해 구매금액, 결제수단에 상관없이 (주)인터파크커머스를 통한 모든 거래에 대하여
    (주)KG이니시스가 제공하는 구매안전서비스를 적용하고 있습니다.

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용