2024 전산직·군무원 소프트웨어공학 이론+기출 세트 또는 전문가가 알려주는 웹 퍼포먼스 튜닝 > NEW도서

본문 바로가기

NEW도서

2024 전산직·군무원 소프트웨어공학 이론+기출 세트 또는 전문가가 알려주는 웹 퍼포먼스 튜닝

시니
2024-02-02 11:31 681 0

본문




2024 전산직·군무원 소프트웨어공학 이론+기출 세트
9791162193372.jpg


도서명 : 2024 전산직·군무원 소프트웨어공학 이론+기출 세트
저자/출판사 : 박태순,저자,글,, 탑스팟
쪽수 : 562쪽
출판일 : 2024-01-02
ISBN : 9791162193372
정가 : 38000

-이론편-
PART 01 소프트웨어공학의 개념
LESSON 01 소프트웨어의 개념
LESSON 02 소프트웨어의 위기
LESSON 03 소프트웨어 개발 프로세스 모형(폭포수 모형)
LESSON 04 소프트웨어 개발 프로세스 모형(나선형 모형)
LESSON 05 소프트웨어 개발 프로세스 모형(점증적 모형)
LESSON 06 소프트웨어 개발 프로세스 모형(애자일 기법)Ⅰ
LESSON 07 소프트웨어 개발 프로세스 모형(애자일 기법)Ⅱ
PART 02 프로젝트 관리
LESSON 08 프로젝트 범위
LESSON 09 비용 계획
LESSON 10 일정 계획
LESSON 11 위험 관리

PART 03 품질보증
LESSON 12 품질보증의 개념
LESSON 13 제품 품질
LESSON 14 프로세스 품질
LESSON 15 소프트웨어 매트릭스&신뢰성

PART 04 형상관리
LESSON 16 형상관리의 개념

PART 05 요구사항 분석
LESSON 17 요구사항 분석의 개념
LESSON 18 구조적 분석 기법

PART 06 소프트웨어 설계
LESSON 19 설계의 개념
LESSON 20 소프트웨어 아키텍처
LESSON 21 설계의 원리

PART 07 객체지향 패러다임
LESSON 22 객체지향의 개념
LESSON 23 객체지향 개발 단계

PART 08 UML
LESSON 24 UML의 개념
LESSON 25 UML의 다이어그램

PART 09 Design Pattern
LESSON 26 Design Pattern

PART 10 테스트
LESSON 27 테스트의 개념
LESSON 28 테스트 기법
LESSON 29 테스트 전략

PART 11 유지보수와 재공학
LESSON 30 유지보수의 개념

PART 12 클라이언트/서버 소프트웨어공학
LESSON 31 클라이언트/서버의 아키텍처

PART 13 정형적 방법
LESSON 32 정형적 방법의 개념

PART 14 최신 소프트웨어공학
LESSON 33 최신 소프트웨어공학

참고문헌
찾아보기

-기출편-
단원별 기출문제
PART 01 소프트웨어공학의 개념
PART 02 프로젝트 관리
PART 03 품질보증
PART 04 형상관리
PART 05 요구사항 분석
PART 06 소프트웨어 설계
PART 07 객체지향 패러다임
PART 08 UML
PART 09 Design Pattern
PART 10 테스트
PART 11 유지보수와 재공학
PART 12 클라이언트/서버 소프트웨어공학
PART 13 정형적 방법
PART 14 최신 소프트웨어공학




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


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

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

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색