+ 펴낸 책2019. 10. 16. 12:28



[프로메테우스, 오픈소스 모니터링 시스템]

쿠버네티스와 클라우드 환경을 위한

메트릭 기반 성능 모니터링 도구

브라이언 브라질 지음 | 김영기, 김현진 옮김 | 464쪽 | 32,000원 | 

2019년 10월 28일 출간 | 185*240*23 | ISBN 9791189909079

판매처 [교보문고] [YES24] [알라딘] [인터파크] [반디앤루니스+ 전국 교보문고 매장

 

예제 코드와 구성파일 다운로드: https://github.com/prometheus-up-and-running/examples

정오표: https://www.onlybook.co.kr/entry/prometheus-errata (아직 등록된 정보가 없습니다.)

독자문의: support (at) onlybook.co.kr


클러스터와 컨테이너 운영을 위한 필수 모니터링 도구

프로메테우스에 대한 유일무이 최고의 가이드!

 

프로메테우스(Prometheus)는 쿠버네티스에 이어 CNCF(클라우드 네이티브 컴퓨팅 재단) 프로젝트를 두 번째로 졸업하며 사실상의 표준 모니터링 도구로 자리잡았다. 또한, 쿠버네티스 클러스터를 운영하며 인프라스트럭처와 애플리케이션에 대한 모니터링 시스템을 구축하려거나, 웹이나 애플리케이션에 대한 모니터링을 통해 성능 분석과 문제 예방을 하고자 하는 애플리케이션 개발자와 시스템 관리자, 데브옵스 실무자를 위한 탁월한 도구다.


이 책은 프로메테우스의 개념과 설치부터 설정, 모니터링 예제 프로그램의 활용, 익스포터를 이용한 서드파티 시스템에서의 메트릭 수집, 프로메테우스 쿼리언어인 PromQL, 그라파나를 활용한 대시보드 작성과 알림, 직접 코드 계측, 그리고 컨테이너 모니터링에 이르기까지 프로메테우스에 대한 모든 것을 담은 완벽 실용 가이드다.


[추천의 글]

 

쿠버네티스가 컨테이너 오케스트레이터로 등장하고 클라우드 네이티브라는 단어가 널리 퍼지면서 애플리케이션을 포함한 시스템에 대한 가시성(visibility)이 더욱 중요하게 대두되고 있습니다. 


프로메테우스는 CNCF(클라우드 네이티브 컴퓨팅 재단) 프로젝트 중에서 쿠버네티스에 이어 두 번째로 졸업(graduate)한 프로젝트로, 쿠버네티스 클러스터 및 관련 애플리케이션에 대한 표준 모니터링 툴로 여겨지고 있습니다. 하지만 이상하게도 프로메테우스에 대해 자세히 설명한 책은 거의 찾기 어려웠습니다.


이 책은 프로메테우스의 개념부터, 개발, 구축, 사용법까지 자세하게 설명합니다. 쿠버네티스 클러스터를 운영하며 이와 관련된 모니터링을 구축하고 싶다면 이 책이 적절한 가이드를 줄 수 있습니다. 그뿐 아니라 자신이 개발한 애플리케이션을 커스텀 메트릭으로 모니터링하고 싶을 때도 이 책에서 많은 도움을 얻을 수 있습니다. 프로메테우스를 처음 배우거나, 좀 더 자세히 알고 싶다면 최우선으로 이 책을 보실 것을 추천드립니다.

- 안승규 / SK텔레콤 클라우드 네이티브 개발팀, 쿠버네티스 코리아 그룹 대표

 

프로메테우스는 클라우드 네이티브와 컨테이너 네이티브 환경에서 다양한 시스템 메트릭 데이터를 모니터링하는 목적으로 이미 광범위하게 사용되고 있습니다. 하지만 안타깝게도 그간 한글 자료가 부족하던 차에 적절한 시기에 좋은 책이 번역 출간되어 반가운 마음에 책 리뷰에 참여하게 되었습니다


이 책은 프로메테우스의 역사에서부터 아키텍처, 그라파나, 그리고 PromQL까지 프로메테우스를 활용하기 위한 내용을 알차게 담고 있어, 프로메테우스에 입문하기 위한 책으로 적격이라 생각합니다. 무엇보다도 프로메테우스의 첫 책이라 용어 번역 등의 어려움이 많이 있었음에도 독자들의 이해를 돕는 좋은 책이 출간되었기에 더욱 추천드립니다.

- 강인호 / 한국 오라클 클라우드 엑설런스팀 부장

 

쿠버네티스와 마찬가지로 모니터링 분야에서 프로메테우스의 성장세는 단연 돋보입니다. 운영하는 클러스터나 컨테이너의 개수가 점점 증가하고 있는 오늘날, 저뿐만 아니라 대다수 사용자가 모니터링의 중요성은 인식하지만 원하는 결과물에 접근하기가 쉽지 않을 것입니다


이 책에서는 프로메테우스의 사용법과 함께 그라파나를 통해 가시적으로 확인하는 방법을 설명하며, 알림매니저를 통해 특정 상황에 대한 알림을 받아 시스템 운영자들이 장애에 유연하게 대처할 수 있는 방법을 알려줍니다. 개발자들에게는 웹이나 애플리케이션을 모니터링해 성능을 분석하고 문제를 예방하는 데 큰 도움이 될 것입니다.

- 이호광 / 삼성전자 네트워크사업부 데브옵스 엔지니어

 

다양한 전문 모니터링 도구가 넘쳐나는 지금 '왜 프로메테우스이어야 하는가'에 대한 답을 이 책에서 찾을 수 있었습니다. 전문 모니터링 솔루션인 프로메테우스가 사실상의 표준처럼 사용되는 이유는 CNCF에 소속된 오픈소스 프로젝트 중 두 번째 졸업생이기도 하지만, CNCF의 프로젝트인 쿠버네티스 등과 잘 정합되어 쉽게 모니터링 시스템을 구축할 수 있기 때문입니다


이 책에서는 프로메테우스의 개념과 설치부터 설정, 예제프로그램의 활용 및 익스포터, PromQL, 대시보드인 그라파나에 이르는 매우 방대한 내용을 독자가 따라 할 수 있도록 잘 가이드해줍니다. 웹상의 분산되고 정제되지 않은 정보 검색에 지친 개발자들에게 이 책은 프로메테우스에 대한 좋은 레퍼런스가 될 것입니다.

- 최일환 / 삼성전자 네트워크사업부 소프트웨어 아키텍트

 

모니터링은 엔지니어가 시스템을 정상 상태로 유지할 수 있게 도우며, 주요한 모든 비즈니스 서비스의 기초사항이기도 합니다. 프로메테우스의 출시는 모니터링 분야의 분수령과도 같았으며, 모니터링의 수행 방법을 완전히 변화시켰습니다. 이 책은 프로메테우스의 핵심 팀원들이 참여해 저술하고 검토했습니다. 이 책은 독자들이 손에 넣을 수 있는 공식 레퍼런스에 가깝습니다.

- 리차드 하트만(Richard Hartmann) / 스페이스넷(SpaceNet) 사의 모니터링 책임자

 

이 책에 제시된 모범 사례와 원칙들은 개발자 여러분의 운영 오버헤드를 줄이는 데 도움이 될 것입니다. 프로메테우스를 일일 모니터링 도구로 활용하기 바랍니다.

- 올렉 메이코(Oleg Mayko) / 스위스컴(Swisscom)의 데브옵스 엔지니어

 

 

[이 책의 구성]

 

1부 프로메테우스를 시작하며

1부에서는 일반적인 모니터링 방법에 대해 알아보고 프로메테우스를 구체적으로 다룬다.

 

1장에서는 모니터링의 다양한 의미와 접근 방법, 프로메테우스에서의 메트릭 접근 방법, 프로메테우스의 아키텍처 등을 알아본다. 2장에서는 머신 메트릭의 수집과 쿼리 계산, 알림 통보를 위해 직접 프로메테우스를 설정하고 수행해본다.

 

2부 애플리케이션

모니터링 자신의 애플리케이션에 직접 추가한 메트릭(metric)에 쉽게 접근할 수 있는 경우, 프로메테우스의 모든 혜택을 누릴 수 있을 것이다. 2부에서는 계측(instrumentation) 기능을 추가하고 사용하는 방법을 알아본다.

 

3장에서는 기본적인 계측 기능의 추가 방법과 계측이 갖는 혜택에 대해 배워본다. 4장에서는 프로메테우스에서 애플리케이션의 메트릭을 사용하는 방법을 설명한다. 5장에서는 프로메테우스의 가장 강력한 기능 중 하나를 살펴보고, 계측 시에 해당 기능을 사용하는 방법을 살펴본다. 6장에서는 사용자의 애플리케이션 메트릭이 프로메테우스에 추가되고 난 후, 관련 그래프들을 모두 함께 그룹화하는 대시보드를 생성하는 방법에 대해 살펴볼 것이다.

 

3부 인프라스트럭처 모니터링

세상은 프로메테우스를 중심으로 돌아가지 않으며, 특별히 프로메테우스 메트릭을 별도로 제공하지도 않는다. 익스포터는 다른 시스템의 메트릭을 프로메테우스가 이해할 수 있는 형식으로 변환하는 도구다.

 

7장에서는 가장 먼저 사용할 가능성이 높은 익스포터 중 하나인 노드 익스포터(Node Exporter)에 대해 자세히 다룬다. 8장에서는 프로메테우스로 가져와야 하는 메트릭이 무엇인지 알아내는 방법과 메트릭을 가져오는 방법을 알아본다. 9장에서는 도커(Docker)와 쿠버네티스(Kubernetes) 같은 컨테이너 기술의 모니터링에 대해 자세히 다룬다. 프로메테우스 생태계에는 말 그대로 수백 개의 익스포터가 있다. 10장에서는 다양하고 전형적인 익스포터의 사용 방법에 대해 살펴본다. 이미 다른 메트릭 기반 모니터링 시스템을 사용할 수도 있으니, 11장에서는 이러한 시스템에 프로메테우스를 통합하는 방법에 대해 살펴본다. 익스포터는 갑자기 나타나지 않는다. 원하는 익스포터가 없는 경우, 12장의 내용을 활용해 익스포터를 생성할 수 있다.

 

4PromQL

PromQL, 즉 프로메테우스 쿼리 언어(Prometheus Query Language)는 모든 종류의 집계, 분석, 연산을 할 수 있는 기능을 제공하며, 메트릭을 활용해 우리 시스템의 성능에 대해 더 잘 이해할 수 있게 해준다. 4부에서는 2장에서 생성한 프로메테우스 및 노드 익스포터 설정을 다시 사용하고 쿼리를 실행하기 위해 수식 브라우저를 사용한다.

 

13장은 PromQL의 기본 사항과 표현식을 실행하기 위해 HTTP API를 사용하는 방법을 다룬다. 14장에서는 집계가 동작하는 방법을 심도 있게 살펴본다. 15장은 추가 및 비교 연산자 같은 다양한 연산자를 다루고, 다양한 메트릭을 함께 조인(Join)하는 방법을 다룬다. 16장에서는 시간을 알아내는 함수부터 언제 하드 디스크가 다 채워질지 예상하는 함수까지 PromQL이 제공하는 광범위하고 다양한 함수에 대해 살펴본다. 17장은 프로메테우스 기록 규칙의 특징을 다룬다. 프로메테우스의 기록 규칙을 지키면 PromQL을 사용한 더 빠르고 정교한 쿼리를 사용해 메트릭을 미리 계산할 수 있다.

 

5부 알림

새벽 3시에도 모니터링 시스템에서 알림을 받고 이를 확인하기 위해 잠에서 깨길 원한다면, 이번 장은 바로 그런 내용을 다룬다.

 

앞 장의 내용을 기반으로, 18장에서는 단순히 임계치에 대한 알림 이외의 더 많은 이상 상태에 대한 알림을 가능하게 하는 프로메테우스의 알림 규칙에 대해 다룬다. 프로메테우스에서 알림이 발생하면, 19장에서 설명하는 것처럼 알림매니저는 각 통보를 더 가치있게 하기 위해 그룹화 및 압축하며 알림을 통보로 변환한다.

 

6부 배치

로컬 머신에서 프로메테우스를 다루는 것은 간단한 작업이지만, 실제 운영 시스템에 프로메테우스를 배치하는 것은 또 다른 문제다. 마지막 20장에서는 운영 환경에서 프로메테우스를 실행하는 실질적인 측면과 프로메테우스의 롤아웃(rolling out) 방법에 대해 살펴본다.

  

[이 책의 주요 특징]

■ 애플리케이션 코드 계측의 대상과 방법

■ 레이블을 통한 메트릭의 식별: 고유한 키-값 쌍

■ 대시보드 구축용 인기 도구인 그라파나(Grafana)

■ 인프라스트럭처 모니터링을 위한 노드 익스포터(Node exporter)의 사용 방법

■ 머신 및 서비스에 대한 다양한 뷰 제공을 위한 서비스 검색 활용

■ 프로메테우스와 쿠버네티스의 연동 방법

■ 컨테이너와 함께 사용 가능한 익스포터

■ 다른 모니터링 시스템 데이터를 프로메테우스 형식으로 변환하기

 

[이 책의 독자 대상]

이 책에서는 애플리케이션과 인프라스트럭처 성능에 대한 모니터링, 그래프 작성, 알림 설정 등 프로메테우스 모니터링 시스템의 사용 방법을 자세하게 설명한다. 애플리케이션 개발자, 시스템 관리자, 데브옵스 실무자에게 인프라스트럭처와 애플리케이션의 모니터링, 대시보드 작성과 알림, 직접 코드 계측, 익스포터를 통한 서드파티 시스템에서의 메트릭 수집을 포함해 프로메테우스의 중요한 기능에 대해 실용적인 내용을 소개한다.

 

[지은이 소개]

브라이언 브라질(Brian Brazil)

로버스트 퍼셉션(Robust Perception) 사의 창립자이자 프로메테우스의 개발자로, 초기 단계의 스타트업부터 <포춘> 500대 기업에 오른 회사들과 함께 모니터링 관련 이슈에 대한 업무를 하고 있다. 프로메테우스 커뮤니티에서 이미 잘 알려진 인물로, 여러 컨퍼런스에서 수많은 발표를 했으며, 로버스트 퍼셉션 사의 웹사이트에 개설한 블로그에 프로메테우스와 모니터링의 다양한 측면에 대한 글을 기고하고 있다.

 

[지은이의 말]

모니터링에서는 시스템의 동작 여부를 파악하는 것이 중요하지만 그것이 전부는 아니다. 모니터링의 가장 큰 성과는 시스템의 성능을 이해하는 것이다.

 

성능(performance)이란 각 요청의 응답 시간과 이에 사용된 CPU 사용량뿐만 아니라 더 넓은 의미를 지닌다. 고객의 주문을 처리하기 위해 얼마나 많은 데이터베이스 요청이 필요한가? 처리량이 더 큰 네트워크 장비를 구매해야 할 시점일까? 캐시 미스(cache miss) 를 처리하기 위해 얼마나 많은 머신이 필요한가? 복잡한 기능(feature)을 유지하는 것이 당연할 만큼 사용자가 해당 기능을 충분하게 사용하고 있는가?

 

메트릭 기반 모니터링 시스템은 이런 종류의 질문에 대한 답을 구할 때 도움이 되며, 단지 답을 구하는 것을 넘어서 그런 답이 왜 나왔는지 이유를 살펴보는 데도 도움이 된다. 모니터링이란 고수준의 개요부터 디버깅에 유용한 핵심 세부사항에 이르기까지, 시스템 전반에 걸쳐 통찰을 얻는 것이라 할 수 있다. 디버깅과 분석을 위한 전체 모니터링 도구에는 메트릭뿐 아니라 로그(logs), 추적(traces), 프로파일링(profiling)도 포함된다. 그러나 시스템 수준의 질문에 대한 답을 구하려는 경우에는 메트릭이 첫 번째 항목이 되어야 한다.

 

프로메테우스(Prometheus)를 활용하면 애플리케이션에서 베어 메탈(bare metal)까지 시스템 전반에 걸쳐 자유롭게 계측(instrumentation)을 수행할 수 있다. 계측을 통해 모든 서브시스템과 컴포넌트가 상호작용하는 방법을 관찰하고, 관찰한 내용을 통해 미처 몰랐던 내용을 파악할 수 있다.

 

[옮긴이 소개]

김영기

삼성전자 네트워크 사업부 기술전략 그룹에서 신기술 센싱 및 소프트웨어 혁신 업무를 담당하고 있다. 지능망(IN)과 모바일 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 인프라 관리 등의 업무를 담당했다. 소프트웨어 개발과 개발 문화를 비롯해 개발자 역량 강화와 조직 구성, 애자일과 데브옵스, 자동화 등에 관심이 많다.

 

김현진

삼성전자에서 소프트웨어 엔지니어로 근무 중이다. 문제에 대해 생각하고, 이해하고, 풀이하는 것을 좋아하며, 코딩과 새로운 알고리즘을 배우는 것을 즐긴다. 현재 테스트 자동화를 위한 프레임워크 개발 업무와 자동차 인포테인먼트 시스템의 반도체 소프트웨어 검증 업무를 수행하고 있다.

 

[옮긴이의 글]

소프트웨어라는 용어가 생긴 이후 관련 분야는 점점 더 빠르게 변하고 있고, 변화의 속도는 점점 더 빨라지고 있습니다. 빠르게 변화하는 분야 중 하나가 IT 인프라스트럭처 부분입니다. 관리해야 하는 인프라 구조는 점점 더 복잡하고 더 많은 대상을 더 빠르게 처리해야 합니다.

 

이러한 IT 인프라스트럭처와 함께 빠르게 진화하는 분야 중 하나가 모니터링 분야입니다. 모니터링 분야는 이전에도 있었지만, 지금은 시스템 관리자들이 모니터링 제품 없이 서비스나 서버를 운영하는 것은 상상하기도 어렵습니다. 모니터링의 필요성이 더 크게 부각된 시점은 한정된 자원을 효율적으로 관리해야 하고 자원의 상태가 끊임없이 변화하는 클라우드 환경이 본격적으로 도입되기 시작하면서부터입니다.

 

프로메테우스는 2012년부터 시작된 프로젝트로 쿠버네티스에 이어 2016년에 CNCF(Cloud Native Computing Foundation)의 두 번째 프로젝트가 되었습니다. 이후, 많은 사람들의 관심과 더불어 사실상의 표준 오픈소스 모니터링 시스템으로 자리잡았습니다.

 

이 책은 프로메테우스에 대해 알고 싶어 하는 누구나가 참고할 수 있는 책입니다. 국내에는 이제 막 알려지기 시작한 프로메테우스에 대한 책이라 기술 용어 등을 한글로 옮기는 작업은 다소 어색함도 있었지만, 독자들이 이 책을 모두 읽게 되면 프로메테우스가 상상 이상으로 간단하고 사용하기 편리한 시스템이란 사실에 공감할 것이라 생각합니다. 별도의 빌드 없이 압축만 풀면 끝나는 설치 환경, 모니터링 시스템이라고는 믿어지지 않는 단순하고 명료한 웹 기반 GUI, 그런 단순함을 완벽하게 메워주는 강력한 PromQL과 다양한 모니터링 대상을 지원하는 익스포터에 이르기까지, 이 책은 모니터링에 대한 재미있고 흥미로운 경험을 제공할 것입니다.

 

이 책이 프로메테우스와 함께하는 모니터링 여정에 도움이 되길 바랍니다. 

 

 

[차례]

[1] 프로메테우스를 시작하며

1장 프로메테우스란 무엇인가

__모니터링이란 무엇인가

__프로메테우스 아키텍처

__프로메테우스 사용시 고려사항

 

2장 프로메테우스 시작하기

__프로메테우스 실행

__수식 브라우저 사용하기

__노드 익스포터 실행하기

__알림

 

[2] 애플리케이션 모니터링

3장 계측

__간단한 예제 프로그램

__카운터

__게이지

__서머리

__히스토그램

__단위 테스팅 계측

__계측 적용 방법

 

4장 메트릭 게시

__파이썬

__

__자바

__푸시게이트웨이

__브릿지

__파서

__메트릭 게시 형식

 

5장 레이블

__레이블의 정의

__계측 레이블과 대상 레이블

__계측

__집계

__레이블 패턴

__레이블 사용 시점

 

6장 그라파나를 활용한 대시보드

__설치

__데이터 소스

__대시보드와 패널

__그래프 패널

__단일 상태 패널

__테이블 패널

__템플릿 변수

 

[3] 인프라스트럭처 모니터링

7장 노드 익스포터

__CPU 수집기

__filesystem 수집기

__diskstats 수집기

__netdev 수집기

__meminfo 수집기

__hwmon 수집기

__stat 수집기

__uname 수집기

__loadavg 수집기

__textfile 수집기

 

8장 서비스 검색

__서비스 검색 메커니즘

__레이블 재지정

__수집 방법

 

9장 컨테이너와 쿠버네티스

__cAdvisor

__쿠버네티스

 

10장 일반적인 익스포터

__컨설 익스포터

__HAProxy 익스포터

__그록 익스포터

__블랙박스

 

11장 다른 모니터링 시스템 사용하기

__다양한 모니터링 시스템

__인플럭스디비

__StatsD

 

12장 익스포터 작성하기

__컨설 원격측정

__사용자 정의 수집기

__가이드라인

 

[4] PromQL

13PromQL 활용

__집계 기본 사항

__선택기

__HTTP API

 

14장 집계 연산자

__그룹화

__집계 연산자

 

15장 이진 연산자

__스칼라로 작업하기

__벡터 매칭

__연산자 우선순위

 

16장 함수

__타입 변경

__수학 함수

__시간 및 날짜 함수

__레이블 함수

__카운터 함수

__게이지 변화

__시간의 흐름에 따른 집계

 

17장 기록 규칙

__기록 규칙 사용하기

__언제 기록 규칙을 사용하는가

__기록 규칙의 이름 지정 방법

 

[5] 알림

18장 알림

__알림 규칙

__알림매니저 구성하기

 

19장 알림매니저

__통보 파이프라인

__구성 파일

__알림매니저 웹 인터페이스

 

[6] 배치

20장 배치와 유지보수

__롤아웃 계획하기

__페더레이션 기능을 통한 전역화

__장기 저장소

__프로메테우스 실행

__장애에 대한 계획 세우기

__성능 관리

__변경 관리

__더 읽을거리

Posted by 책만

댓글을 달아 주세요

+ 도서 오류 정보2019. 9. 17. 13:09

p89. (2)번 설명 6째 줄

text_size -> test_size


p194. 표 3행 2열

스마폰은 -> 스마폰은

Posted by 책만

댓글을 달아 주세요

+ 펴낸 책2019. 7. 22. 21:48


[실무가 훤히 보이는 머신러닝 & 딥러닝]

파이썬 실전 코딩으로 배우는 
한글 자연어 처리, 챗봇 개발, 이미지 분류, 데이터 분석 등 
인공지능 서비스의 이해

마창수, 최재철 지음 | 316쪽 | 26,000원 | 2019년 7월 31일 출간 | 180*235*16 | ISBN 9791189909031

판매처 [교보문고] [YES24] [알라딘] [인터파크] [반디앤루니스+ 전국 교보문고 매장

 

예제 코드 다운로드: https://github.com/onlybooks/AI_begin

정오표: https://www.onlybook.co.kr/entry/AI-begin-errata 
독자문의: support (at) onlybook.co.kr

 

실전 인공지능 기술과 서비스를 설계해 실무에 적용하고

머신러닝과 딥러닝 개발을 직접 구현해보기 위해 

다양한 시각의 이해가 필요한 

기획자, 개발자, 관리자 모두를 위한 포괄적인 입문서!

 

파이썬에 기반을 둔 다양한 인공지능 프레임워크 및 서비스를 활용한 한글 자연어 처리, 이미지 분류, 대화 서비스 챗봇 개발, 텍스트 감정 분석 등 

친절한 알고리즘 이론 학습과 풍부한 실전 코딩 예제가 가득한 책!


[추천의 글]

딥러닝, 자연어 처리, 음성 처리, 챗봇 등 다양한 인공지능 활용분야에 대해 간단한 원리와 쉬운 예제들로 알기 쉽게 설명하는 책입니다. 개인 환경에서뿐만 아니라 인공지능 클라우드 서비스를 활용하는 방법도 소개되어 있어서 입문자 분들도 편하게 따라 해보면서 이해할 수 있도록 잘 구성되어 있습니다. 간단하게 인공지능 서비스를 만들어 보고 싶으신 분들이나, 머신러닝, 딥러닝의 활용에 대해 궁금하셨던 분들이 읽으면 많은 도움이 될 것입니다.

- 공용준 / 카카오 클라우드 파트 리드

 

개발자로서 인공지능, 데이터 분석 등은 더 이상 미룰 수 없는 영역이 되었습니다. 하지만 너무 넓고 깊은 분야이기 때문에 어디서부터 시작해야 하는지 막막할 때가 많았습니다. 이 책을 통해 인공지능의 전반적인 분야에 대해 훑어보고, 파이썬을 기반으로 다양한 알고리즘들을 실습해 볼 수 있습니다. 인공지능이나 자연어 처리, 챗봇 등에 대해서 빠르게 실무에 적용해야 하는 분들에게 이 책은 분명히 큰 도움을 줄 것입니다. 이 책을 시작으로 많은 개발자들이 인공지능의 세계에 빠져 들 수 있기를 바랍니다.

- 김기훈 / SDS ACT 팀 개발자

 

이론적 개념부터 핸즈온 실습을 통한 이해까지, 저자들 특유의 꼼꼼하고 잘 정리된 설명이 큰 도움이 되었습니다. 근래 인공지능 관련 서적이 많이 출간되고 있지만, 이렇게 다양한 프레임워크나 서비스들을 상세하게 제시하는 책은 보지 못했습니다. 마치내가 이 책 한 권으로 다 끝내주마라고 말하는 것 같은, 저자들의 패기와 욕심이 느껴집니다. 처음부터 단계별로 하나씩 다지며 실력을 쌓아가기에도 좋고, 필요한 영역을 발췌해 읽어도 좋습니다. 실질적인 인공지능 서비스 구현을 다양한 각도에서 고민하는 독자의 책꽂이에 꼭 필요한 책이 되리라고 감히 말해봅니다.

- 박소희 / SK주식회사 C&C Aibril TF 수석

 

이 책은 완전 백지상태에서 코딩을 어떻게 시작해야 하는지 혹은 파이썬이 무엇인지가 궁금한 분들보다는, 당장 우리 서비스에 인공지능 기술을 적용해야 하거나 관련 실무 프로젝트에 참여하게 되신 분들이 꼭 봐야 할 필독서입니다. 왓슨(Watson) 국내 도입부터 시작해 다양한 최신 AI 서비스를 수년간 다뤄온 저자들의 필드 경험을 바탕으로, 현장에 진입하기 전에 개발 실무를 위해 갖춰야 할 이론과 실습을 제공합니다. 물론 이 한 권으로 방대한 인공지능 영역을 모두 커버할 수는 없겠지만, 협업시 '나의 1인분'을 보장위한 학습 시작점으로 추천드립니다.

- 박수용 / 신한은행 디지털R&D센터 수석

 

뭔가를 배울 때 이론부터 차근차근 공부한 다음에 응용 부문으로 넘어가는 방법과 일단 응용 부문부터 살펴보고 감을 잡고 나서 이론으로 들어가는 방법이 있습니다. 옳고 그른 공부 방법은 없고 각자 성향에 맞는 공부 방법이 있을 뿐입니다. 이 책은 응용 부문부터 감을 잡을 수 있게 머신러닝과 딥러닝의 다양한 부문을 실제 동작하는 짧은 코드로 설명하는 방법을 택했습니다. 머신러닝과 딥러닝에서 궁금한 부분이 있으면 목차를 살펴 관련 페이지로 건너뛴 다음에 코드를 보고 실행해봅시다. 이렇게 실제로 부딪히다 보면 어느 순간 머신러닝과 딥러닝 시스템이 전반적으로 어떻게 동작하는지 감이 잡히기 시작할 것입니다.

- 박재호 / 온오프라인 전문가 교육 플랫폼 샐러리업(salaryup.io) CTO

 

인공지능에 관한 이모저모를 전체적으로 탭핑(tapping)하는 데 최적의 책입니다. 인공지능 역사에서부터 간단한 머신러닝과 딥러닝 이론 등 관련 생태계를 포괄적으로 다룹니다. 특히 번역서에는 없는 우리말 자연어 처리에 관한 내용도 담고 있으며, 우리나라 개발자들의 관심사를 잘 고려한 구성으로 집필된 국내서라 더 의미가 있습니다. 인공지능 분야에 이제 막 입문하려는 초보자라면 이 책의 예제와 함께 첫걸음을 떼보면 좋을 것입니다. 이미 실무를 수행하고 있는 경험자에게도 인공지능 생태계 전반을 돌아보기에 좋은 책입니다.

- 신진철 / SK플래닛 DMP 개발팀, 데이터 모델링

 

인공지능에 관심을 갖게 된다면 꼭 한번은 마주칠 용어와 알고리즘 그리고 여러 개념에 대해 비교적 폭넓게 다루는 책입니다. 처음부터 끝까지 읽은 다음, 빈 종이에 이 책의 목차를 한번 쭉 적어본다면 인공지능 전반에 대해 큰 테두리를 잡을 수 있을 것입니다. 베타 리더로 참여해 이 책을 훑고 나니, 내가 처음 인공지능을 접했을 때 이런 책이 있었다면 훨씬 더 체계적으로 잘 끼워 맞춰 나가며 공부할 수 있었을 텐데 하는 아쉬움이 들었습니다. 그런 의미에서 인공지능 기술에 첫 발걸음을 내딛는 분들을 위한 입문서로 추천합니다. 자들이 마치 사무실 옆자리에 앉아서 하나 하나 가르쳐주는 선배님과도 같이 친절히 설명해주는 책입니다.

- 임정택 / SK주식회사 C&C AI 솔루션 아키텍트

 

머신러닝과 인공지능을 실무에 어떻게 활용할 수 있을지 다양한 기존 사례와 예제 코드를 통해 독자들을 안내하는 책입니다. 초보자를 위한 적절한 수준의 예시뿐만 아니라 최신 기술 사례까지도 포함하여 실용성이 높습니다. 그중에서도 한글 자연어 처리 부분은 내용이 풍부하며 깊이가 있고, 챗봇 구현 사례도 꽤 흥미롭습니다. 선 뭔가를 구현하고 조립해보면서 머신러닝과 딥러닝, 인공지능에 대한 전체적인 이해도를 높이는 방식으로 학습한다면 이 책의 가치를 충분히 살릴 수 있을 것입니다.

- 최재원 / 아주대학교 교수학습개발센터 데이터 분석가



[이 책의 구성]

‘1, 인공지능 서비스와 기술의 이해에서는 인공지능에 대한 배경과 정의, 머신러닝과 딥러닝에 대한 개념과 인공지능 서비스를 도입하기 위한 여러 가지 도구와 기술 요소를 살펴본다.


‘1, 인공지능이란 무엇인가에서는 인공지능, 머신러닝, 딥러닝에 관한 핵심 사항과 배경 지식을 소개한다. 또한, 인공지능을 활용하는 여러 가지 서비스를 소개한다.

‘2, 인공지능을 적용하기 위한 방법에서는 인공지능 기술을 서비스에 도입하기 위해 여러 가지 도구와 기술 요소를 알아본다.

 

‘2, 머신러닝과 딥러닝에서는 머신러닝 기술의 유형의 특징과 차이점을 살펴보고 지도학습과 비지도학습의 대표적인 알고리즘을 알아본다.


‘3, 머신러닝의 이해와 지도학습을 이용한 분류에서는 본격적으로 머신러닝을 구축해보는 시작 단원으로 의사결정나무와 서포트 벡터 머신 알고리즘을 직접 구현해봄으로써 머신러닝에 필요한 기본 개념을 배운다.

‘4, 비지도학습을 이용한 군집화에서는 비지도학습의 개요를 설명하고, K-평균 알고리즘으로 비지도 학습 문제를 해결하는 방법을 살펴본다.

‘5, 딥러닝을 이용한 이미지 분류에서는 딥러닝을 이용해서 이미지를 처리하는 방법을 배우고, 음식이미지를 인식하는 실습을 통해, 딥러닝의 훈련과정을 이해할 수 있다.

‘6, 텐서플로를 이용한 이미지 객체 추출에서는 딥러닝을 이용해서 이미지 객체를 추출하는 방법을 배운다. 딥러닝 프레임워크인 텐서플로를 사용하는 방법을 익힐 수 있다.

 

‘3, 자연어 처리 기술의 이해에서는 자연 어처리가 무엇인지 개요를 알아보고, 자연어 처리를 배우는 목적에 대해 살펴본 다음, 실전 예제로 자연어 처리 기술을 활용해 텍스트에서 감정을 분석하는 방법을 배운다.


‘7, 한글 자연어 처리에서는 자연어 처리의 정의와 기본적인 지식을 알아보고, 한국어 처리를 위한 형태소 분석에 대해 살펴본다.

8, 워드투벡을 이용한 자연어 처리에서는 기존 자연어를 처리하는 방식에서 최근에 사용하게 된 딥러닝을 이용한 자연어처리 방식에 대해 소개한다. 특히 워드투벡(Word2Vec)이라는 기술에 대해 자세히 살펴본다.

‘9, 텍스트 감정 분석하기에서는 한국어 영화 리뷰를 통해 감정을 판단하는 기술을 배운다. 순환신경망(RNN)과 서포트 벡터 머신을 이용해서 구현하는 방법을 익힌다.

 

‘4, 챗봇 서비스와 구현 기술의 이해에서는 챗봇에 대한 기본적인 개념을 익히고, 클라우드 서비스를 이용해서 만드는 방법과 직접 딥러닝 기술을 이용해서 간단한 대화 서비스를 만드는 방법을 소개한다.


‘10, 챗봇 서비스 기술의 소개에서는 최근 주목받는 챗봇 서비스에 대한 이해와 유형, 다양한 사례를 알아본다. 챗봇을 구성하는 기술도 살펴본다.

‘11, 클라우드 서비스를 이용한 챗봇 개발에서는 클라우드 기반의 왓슨을 이용해서 직접 챗봇을 만들어본다.

‘12, RNN을 이용해 대화 서비스 개발하기에서는 제공하는 클라우드 서비스가 아닌 직접 딥러닝 기술을 이용해서 대화 서비스를 구축해본다.

 

마지막으로 부록에서는 이 책의 예제를 실행하기 위한 주요 실행 환경인 파이썬, 넘파이(NumPy)와 사이파이(SciPy), 케라스(Keras) 설치 방법을 설명한다. 그 밖의 환경 설치 및 구축 방법은 본문에서도 자세히 안내한다.

 

[이 책의 주요 특징]


- 이 책 한 권으로 인공지능 서비스의 다양한 분야를 모두 학습하고 실무 예제를 실습해볼 수 있다.

- 머신러닝과 딥러닝의 주요 알고리즘 이론을 배우고 간단한 서비스를 직접 만들어본다.

- 인공지능의 유형, 사례, 적용 기술 등을 파악해 서비스 기획을 위한 기본기를 갖출 수 있다.

- 인공지능 기술로의 확대 및 실무 적용 관점에서 직접 경험해보고 선택할 수 있다.

- 음성 인식, 자연어 처리, 대화 시스템, 영상 처리 등 다양한 인공지능 기술을 맛볼 수 있다.

- 인공지능을 위한 파이썬 기반 패키지인 파이토치(PyTorch), 젠심(Gensim), 텐서플로(TensorFlow), 케라스(Keras), NLTK 등을 사용한다.

 

[이 책의 독자 대상]


- 인공지능을 활용한 신규 IT 서비스를 고민하고 기술적 이해에 목마른 서비스/솔루션 기획자

- 머신러닝, 딥러닝 영역으로 전문성을 넓히고자 하는 IT 업무 종사자

- 컴퓨터 프로그램 경험이 있고 인공지능을 이용한 개발을 경험해보고 싶은 고등학생, 대학생 및 일반인


[지은이 소개]


마창수


학부에서 정보통신공학을 전공한 뒤 졸업할 무렵 대한민국은 IMF의 위기에 놓여 있었다. IT 분야에 입문해서 직장생활을 하다가 대학원에 진학해 인공지능을 전공하고 졸업할 무렵에는 IT 벤처 붐이 일고 있었지만 아직 인공지능의 봄이 오지는 않은 상황이었다. 20년이 넘는 기간 동안 C/C++, 자바, 파이썬 같은 다양한 언어를 이용해 개발을 해왔고 LBS, 그린(Green) IT, 빅데이터, IoT, AI 등 다양한 신기술 영역에서 엔지니어로 또는 기획 및 관리자로 역할을 수행해왔다. 늘 새로운 아이디어를 기술로 풀어내기 위해 고민하고, 부족한 능력을 경험으로 채우기 위해 노력해 왔다. 최근에는 AI 기반 기술 연구, 솔루션 개발, 사업 발굴 및 확산을 위해 분투 중이다.

저서로는 『과학 영재를 만드는 아두이노 교실 2/e(에이콘출판, 2018), 번역서로 『왓슨을 이용한 인공지능 서비스 입문』(책만, 2017), 『자연어 처리와 컴퓨터 언어학』(에이콘출판, 2019) 등이 있다.

 


최재철

언제나 새로운 것에 도전하기 좋아하는 개발자로서, 수년간 금융권에서 서비스 및 애플리케이션 개발을 담당했다. 현재는 SK에서 인공지능 관련 업무를 하고 있으며, 사내 강사를 겸하고 있다. 관심사는 인공지능 기술을 이용한 서비스 개발과 오픈소스 하드웨어 프로젝트와 3D 프린팅이다. 저서로는 『과학 영재를 만드는 아두이노 교실 2/e(에이콘출판, 2018)이 있다.




[지은이의 말]


이 책은 인공지능을 다양한 관점에서 이해할 수 있도록 안내하고 실무에 적용하기 위한 영감과 경험을 제공하는 데 목적이 있다. 그간 인공지능을 주제로 다양한 책이 출간되었다. 인공지능을 트렌드로 이해하기 위한 시장 분석 서적도 있고, 머신러닝이나 딥러닝 알고리즘을 설명하고 학문적으로 도움을 주는 책도 있다. 또한 파이토치나 텐서플로 같은 인공지능 오픈소스를 기반으로 구현 방법에 집중하는 기술 서적이나 자연어 처리와 챗봇같이 특정 영역을 대상으로 하는 서적 들도 쏟아져 나오고 있다.

 

인공지능과 관련된 이해 관계자들은 주로 알고리즘을 연구하는 석•박사 연구가, 프로그램 개발자뿐만 아니라, 사업을 언제 어떻게 추진할지 결정해야 하는 직책자, 서비스와 솔루션을 설계하고 사업화해야 하는 기획자와 개발 리더, 고객을 설득하고 제안하는 영업 담당자 등 다양한 사람들이 연결되어 있다.

 

인공지능 기술을 연구하고 확산해야 하는 담당자로서, 이러한 다양한 역할의 사람들이 서로 다른 언어, 서로 다른 이해의 깊이로 인해 상호 협력하는 데 많은 어려움을 겪는 것을 보아왔다. 인공지능이라는 공통요소를 공유하지만 각기 다른 역할을 하는 각 분야 담당자들이 좀 더 서로의 영역에 대해 이해하는 데 도움이 되기를 바라는 마음에서 책을 쓰게 되었다.


이 책에서는 인공지능을 활용한 다양한 서비스 유형을 이해하고, 머신러닝과 딥러닝을 포함한 대표적인 기술에 대한 설명과 실습을 통해 엔지니어의 실무를 이해할 수 있다. 또한, 직접 알고리즘을 개발하는 것뿐만 아니라 글로벌 기업들이 제공하는 인공지능 서비스와 활용 분야도 이해할 수 있다. 따라서 이 책에서 설명하는 인공지능 시장과 사례 유형, 학문적 이해, 최신 인공지능 알고리즘 개발, 인공지능 서비스 활용 등의 다양한 옵션 중에서, 각자 상황에 맞게 인력 구성이나 회사 상황, 시기 등을 고려해 최선의 선택을 해야 한다는 점을 독자 여러분이 공감할 수 있기 바란다.


[차례]


[1] 인공지능 서비스와 기술의 이해

[1] 인공지능이란 무엇인가

_1.1 인공지능 기술의 태동과 발전

_1.2 인공지능을 활용한 주요 비즈니스 사례

_1.3 정리

 

[2] 인공지능을 적용하기 위한 방법

_2.1 인공지능 적용 기술의 분류

_2.2 인공지능 개발을 위한 분산 플랫폼 환경

_2.3 인공지능 개발을 지원하는 도구

_2.4 딥러닝과 머신러닝 전용 프레임워크

_2.5 인공지능 개발을 위한 프로그램 언어

_2.6 데이터를 효과적으로 다루기 위한 포맷

_2.7 접근과 사용이 용이한 클라우드 기반 인공지능 서비스

_2.8 정리

 

[2] 머신러닝과 딥러닝

[3] 머신러닝의 이해와 지도학습을 이용한 분류

_3.1 머신러닝의 유형

_3.2 의사결정나무

_3.3 서포트 벡터 머신 알고리즘

_3.4 정리

 

[4] 비지도학습을 이용한 군집화

_4.1 K-평균 알고리즘으로 군집화 개념 이해하기

_4.2 K-평균 직접 구현해 보기

_4.3 붓꽃 데이터로 군집화 실습하기

_4.4 와인 데이터로 군집화 실습하기

_4.5 정리

 

[5] 딥러닝을 이용한 이미지 분류

_5.1 딥러닝 기술의 이해

_5.2 CNN이란

_5.3 손글씨 이미지 인식

_5.4 음식 이미지 인식

_5.5 정리

 

[6] 텐서플로를 이용한 이미지 객체 추출

_6.1 객체 추출 개요

_6.2 객체 인식 사용해보기

_6.3 객체 인식 응용하기

_6.4 객체 인식을 위한 이미지 라벨링 도구

_6.5 정리

 

[3] 자연어 처리 기술의 이해

[7] 한글 자연어 처리

_7.1 자연어 처리의 개요

_7.2 텍스트 데이터 전처리

_7.3 텍스트 데이터의 벡터화

_7.4 한글 자연어 처리 과정

_7.5 한글 형태소 분석기 알아보기

_7.6 한글 형태소 분석기 사용해보기

_7.7 토픽 모델링

_7.8 정리

 

[8] 워드투벡을 이용한 자연어 처리

_8.1 자연어 처리의 꽃, 단어 임베딩 이해하기

_8.2 word2vec을 이용한 실습 해보기

_8.3 word2vec을 이용해 영화 후기 분석하기

_8.4 정리

 

[9] 텍스트 감정 분석하기

_9.1 텍스트 감정 분석이란?

_9.2 케라스를 이용한 감정 분석

_9.3 서포트 벡터 머신을 이용한 감정 분석

_9.4 정리

 

[4] 챗봇 서비스와 구현 기술의 이해

[10] 챗봇 서비스 기술의 소개

_10.1 챗봇이란?

_10.2 챗봇의 주요 서비스 형태

_10.3 챗봇을 구성하는 기술

_10.4 정리

 

[11] 클라우드 서비스를 이용한 챗봇 개발

_11.1 왓슨을 이용한 대화 시나리오 개발

_11.2 슬랙 봇 추가하기

_11.3 챗봇 프로그램 실행하기

_11.4 정리

 

[12] RNN을 이용해 대화 서비스 개발하기

_12.1 딥러닝 기반 개발환경 준비

_12.2 RNN으로 대화 엔진 만들기

_12.3 세탁소 챗봇 서비스 개발하기

_12.4 IoT 제어 챗봇 개발하기

_12.5 정리

 

[부록 A] 파이썬 3 설치하기

A.1 우분투에 설치하기

A.2 OS X에 설치하기

A.3 윈도우에 설치하기

 

[부록 B] 윈도우에서 넘파이와 사이파이 설치하기

B.1 넘파이 모듈 설치

B.2 사이파이 모듈 설치

 

[부록 C] 케라스 설치하기

C.1 가상 개발환경 생성하기

C.2 패키지 추가 설치하기

C.3 주피터 노트북 설치하기




Posted by 책만

댓글을 달아 주세요