Top

지능형 클라우드 애플리케이션 구축 [Azure 서버리스 아키텍처를 활용한 확장성 있는 AI 모형 개발하기]

  • 원서명Building Intelligent Cloud Applications: Develop Scalable Models Using Serverless Architectures with Azure (ISBN 9781492052326)
  • 지은이비센테 헤레라 가르시아(Vicente Herrera García), 존 빅스(John Biggs)
  • 옮긴이우병오, 우요셉
  • ISBN : 9791161753874
  • 20,000원
  • 2020년 01월 31일 펴냄
  • 페이퍼백 | 212쪽 | 188*235mm
  • 시리즈 : 클라우드 컴퓨팅

책 소개

요약

바야흐로 IT의 대변혁 시대다. 클라우드(Cloud), AI, 서버리스(Serverless), 컨테이너(Container) 등 새롭고 복잡한 용어와 서비스가 쏟아지고, 수십 년간 IT 업계에 몸담아 온 베테랑도 따라잡기 힘들 정도로 IT 기술은 급변하고 있다. 대변혁으로 인한 혼돈에 모두가 어리둥절한 시대다. 이러한 혼돈 속에서 Microsoft Azure 클라우드를 기반으로 서버리스 아키텍처를 활용한 확장성 있는 AI 모형을 개발하는 방안을 제시하는 훌륭한 실무 지침서다. 변혁과 혼돈 속에서 신기술을 실무에 적용하는 방안에 목말라 하던 프로그래머들의 기대를 이 책이 충족시켜 주길 기대한다.

이 책에서 다루는 내용

■ 클라우드 기반 개발: 머신러닝, FaaS(서비스형 함수) 및 API를 사용해 서버리스 컴퓨팅의 기본 사항 배우기
■ 지능 추가: Azure Functions를 사용한 서버리스 애플리케이션 제작, 미리 빌드된 머신러닝 및 모형 사용법 학습
■ 배포 및 지속적인 제공: Azure Kubernetes Service, Azure Security Center, Azure Monitoring으로 속도 내기

이 책의 대상 독자

머신러닝의 관점에서 함수형 프로그래밍에 익숙해지고자 하는 숙련된 프로그래머를 위한 책이다. 시스템을 개발하는 데 Microsoft의 Azure 플랫폼과 Python을 사용한다.

이 책의 구성

Microsoft의 클라우드 플랫폼인 Azure에 초점을 맞춘다. 이 책에서 설명하는 개념은 보편적이지만 예제는 Azure에서 구현하는 방법을 따른다. 이 책은 3부로 이뤄져 있으며 총 8장으로 구성돼 있다.
1부, ‘클라우드 기반 개발’에서는 ‘서버리스 애플리케이션’에 관련된 아이디어를 제시하고 이벤트 기반 앱이 클라우드에서 호스팅되는 독립형 함수 호출을 이용해 어떻게 구축되는지 설명한다. 또한 로컬에서 실행되는 프로그램과 클라우드 기반 머신러닝 및 데이터 취급 서비스 사이의 인터페이스인 API를 설명한다.
2부, ‘지능 추가’에서는 데이터의 역할과 프로그램에서 데이터를 사용할 수 있게 해주는 방법을 설명한다. 클라우드 기반 애플리케이션에서 ‘지능’의 본질은 다양한 머신러닝 기술과 모형을 사용해 대용량 데이터 집합을 조사하는 것부터 시작한다. 이때 자신의 모형을 스스로 구축할 필요는 없고 해결하려는 문제를 어느 모형이 가장 잘 설명하는지 이해하면 된다. 즉, 함수가 이미 작성됐으므로 언제 어떻게 적용할지만 이해하면 되는 것이다. 3부, ‘배포 및 지속적인 제공’에서는 신뢰할 수 있고 비용 효율적이며 안전하고 테스트할 수 있는 방식으로 서버리스 애플리케이션을 세계에 출시해 성능을 모니터링하고 지속적으로 개선하는 방법을 설명한다.

저자/역자 소개

지은이의 말

서버리스 컴퓨팅은 응용 프로그램을 구축하고 배포하는 방식을 근본적으로 변화시키고 있다. 클라우드 공급자는 서버를 실행하고 기계 리소스를 관리하고, 기업은 응용 프로그램의 비즈니스 논리와 기능에만 집중하면 된다.
이 책에서는 숙련된 프로그래머가 Microsoft Azure에서 서버리스 아키텍처를 사용해 확장성 있는 머신러닝 및 딥러닝 모형을 빌드하고 배포하는 방법을 제시한다.
Python과 이미지 인식, 음성 인식 및 분류 등과 같은 도구가 포함된 사전 훈련 모형을 사용해 프로젝트에서 머신러닝을 단계적으로 코딩하는 방법을 학습한다. 또한 확장, 보안 및 모니터링을 포함해 배포 및 지속적인 제공과 관련된 문제도 검토한다.

지은이 소개

비센테 헤레라 가르시아(Vicente Herrera García)

소프트웨어 및 웹 개발 경험이 많은 소프트웨어 엔지니어다. 세비야대학교(University of Seville)에서 컴퓨터과학 석사 학위를 취득했고 기술, 비즈니스 및 재무 목표를 달성하기 위해 클라이언트와 협력하고 있다. 공정을 개선하고 생산성 수준을 향상시키며 제품 개발을 강화하는 새로운 방법론을 도입하는 데 능숙하다. 공인 전문가 수준의 스크럼 마스터(Certified Expert Level Scrum Master)이고, 스크럼 매니저(Scrum Manager)에서 인증 강사 및 심사관으로 활동하고 있으며, 세비야대학교 및 기타 민간 기관에서 소프트웨어, 웹 개발과 프로젝트 관리를 가르치고 있다.

존 빅스(John Biggs)

창업가, 컨설턴트, 작가, 제작자다. 15년간 기즈모도(Gizmodo), 크런치기어(CrunchGear) 및 테크크런치(TechCrunch)의 편집자로 근무했고 하드웨어 스타트업, 3D 프린팅 및 블록체인 분야의 배경 지식을 보유하고 있다. 그의 작품은 「Men’s Health」, 「Wired」, 「New York Times」 등에 실리기도 했다. 더 나은 미래에 관련된 ‘Technotopia’라는 팟캐스트를 운영하고 있다. 블로그를 다룬 책인 『Bloggers Boot Camp』(Focal Press, 2011)와 가장 비싼 시계에 관한 『Marie Antoinette’s Watch』(CreateSpace, 2015)를 포함해 총 다섯 권의 책을 썼다. 뉴욕주 브루클린에 살고 있다.

옮긴이의 말

“이세돌, 알파고 패배 충격으로 은퇴”
“이세돌의 은퇴를 부른 AI”
“1인자의 자긍심을 꺾은 AI…. 은퇴 앞당긴 이세돌”

프로바둑 기사인 이세돌 9단이 은퇴한다는 뉴스가 2019년 11월 마지막 주의 헤드라인을 장식했다. 조훈현, 유창혁, 이창호 등 선배 국수들에 이어 대한민국 바둑계의 자존심을 지켜온 이세돌 9단이 알파고에게 패한 충격으로 프로바둑계를 은퇴한다는 기사들이다.
3년 전 알파고에게 패한 충격이 30대의 이세돌 9단이 프로바둑계를 떠나는 큰 이유 중의 하나인 모양이다. 이 기사들을 보고 2016년 봄에 개최된 구글 딥마인드 챌린지 매치(Google Deepmind Challenge Match)를 떠올린 독자가 많을 것이다. 이 대회는 이세돌이 승리할 것이라는 예상을 깨고 구글 딥마인드(Google Deepmind)의 AI 바둑 프로그램인 알파고(AlphaGo)가 제4국을 제외하고 모두 이겨 전 세계를 놀라게 했던 세기의 대결이었다.
이제까지 듣도 보도 못한 AI 소프트웨어가 바둑의 최고수를 내리 이긴 이 대결은 대한민국에 큰 충격을 안겨줬고 온 국민이 AI에 관심을 갖게 된 계기가 되기도 했다. 이 대결 직후에 쏟아진 뉴스와 사설을 살펴보자.

“[알파고 충격] AI, 마침내 인간을 넘어서다.”
“'알파고 충격'에서 배워야 할 교훈”
“'알파고 충격' AI 시장 들썩, 아직 갈 길 먼 한국AI”
“'충격 3연패' 인간대표 이세돌, 알파고에 '무릎'…IT강국 한국 '비상'”
“'알파고' 충격...한국의 AI 수준은?”

‘충격’이라는 단어가 대부분을 차지하고 있다. 이 충격으로 ‘IT 강국’이라는 명성이 허울일 뿐이라는 반성이 쏟아져 나오고 AI를 향한 관심이 폭발적으로 증가했다. 이 행사가 대한민국 IT 기술의 현재를 되돌아보고 미래의 전략을 일정 부분 수정하게 된 중요한 동인이 됐다고도 한다. 정부와 학계, IT 업계가 늦게나마 AI를 4차산업혁명이나 디지털 트랜스포메이션(Digital Transformation)의 핵심으로 보고 앞다퉈서 육성에 나섰다는 점은 매우 긍정적인 변화라 할 수 있겠다.
이런 반성과 변화가 ‘AI’ 분야에서만 나타난 것은 아니다. ‘IT 강국’이라는 자만과 반도체나 모바일 기기 등에서 최고의 기술로 전 세계 IT 산업을 이끌고 있다는 착각에 뒤처져 버린 ‘클라우드(Cloud)’ 분야도 마찬가지다.
대한민국의 클라우드 정책순위가 상당히 뒤처졌고(http://www.ciokorea.com/t/32/14766/37484), 클라우드나 AI 등 사업 접목 및 '디지털 전환' 속도가 늦으며(https://www.hankyung.com/it/article/2019070134611), 기업용 클라우드 서비스 사용률이 OECD 회원국 중 최하위권 (https://www.hankyung.com/it/article/2019070134611)이라는 국내외의 지적이 이어졌다. 클라우드 벤더에 관한 종속성, 데이터 보안, 클라우드 데이터센터 현지화, 국내 IT 산업 보호 장벽 등 여러 가지 이유로 클라우드 도입이 늦어지면서 받게 된 따끔한 지적들이 이어졌다.
그러나 이렇게 클라우드 확산이 지연되는 도중에 긍정적인 변화도 나타나고 있다. 삼성SDS, LGCNS, SKC&C 등 재벌그룹 IT 자회사들이 과점하던 IT 업계의 판도를 클라우드 분야에서 성장한 신생 업체들이 뒤흔들고 있다. 창업 3년만에 연 매출 1000억을 돌파한 베스핀글로벌과 웹 에이전시에서 연매출 4000억원을 전망하는 강자로 성장한 메가존이 그 주역들이다. 대기업 IT 자회사들이 온프레미스(On-Premise) 시장에서 모기업들의 IT 수요를 독점하다시피 하며 안주하고 있는 사이에 신생 업체들은 AWS(Amazon Web Service) 등이 주도한 클라우드 시장의 추세를 미리 내다보고 클라우드 관리 서비스(Cloud Managed Service) 분야에서 급성장했다. 국내외 대형 투자기관들이 이 두 회사에 수백억 원씩 투자한 것을 보면 클라우드 분야가 이미 IT 산업의 대세로 자리잡았다는 것을 증명한다고 볼 수 있겠다.
그렇다면, 이렇게 ‘AI’와 ‘클라우드’ 기술로 촉발된 IT 업계의 판도 변화가 일선 애플리케이션 영역에서는 어떻게 전개될까?
아마도 AI를 클라우드 환경에서 구현하는 손쉽고 값싼 방법이 애플리케이션 구축 영역에서는 가장 현실적인 접근법이 될 것이다. 특정 환경에 종속되지 않는 컨테이너(Container) 및 서버리스 컴퓨팅(Serverless Computing) 기술을 적용해 머신러닝(Machine Learning)이나 딥러닝(Deep Learning)을 클라우드 환경에서 구현하는 것이다.
AWS, Microsoft Azure, GCP(Google Cloud Platform) 등 클라우드 서비스에서 제공되는 다양한 AI 기술을 활용해 기존 또는 신규 애플리케이션의 기능을 쉽게 확장할 수 있게 될 것이다.
즉, 대형 선도 업체들이 알파고나 왓슨(Watson) 같은 엔진이나 이미지 인식, 음성 인식 및 분류 등과 같은 사전 훈련된 모형을 클라우드 환경에서 서비스하면, 애플리케이션에서는 이들을 API로 간단히 호출함으로써 AI의 기능이 부가되는 것이다.
이 책은 Microsoft의 Azure 클라우드 환경에서 AI 애플리케이션을 서버리스 컴퓨팅 방식으로 구축하고 배포하는 방법을 안내하는 실무 지침서다. 클라우드 공급자인 Microsoft Azure가 서버를 실행하고 리소스를 관리하므로 프로그래머는 애플리케이션의 비즈니스 논리 및 기능에만 집중하면 된다. 이 책에서는 프로그래머가 Microsoft Azure에서 서버리스 아키텍처를 사용해 확장성 있는 머신러닝 및 딥러닝 모형을 구현하고 배포하는 방법을 제시한다. Azure 환경을 처음 접하는 프로그래머에게 Azure 계정을 개설하고 Azure에서 제공하는 다양한 AI 기능을 함수 앱 형태로 호출해 애플리케이션에 적용하는 방안을 다양한 예제와 함께 안내한다.

옮긴이 소개

우병오

서울대학교와 동 대학원에서 산업공학을 전공했고 대우그룹 연구원을 시작으로 Oracle, SAP, HP, AMAT 등 세계적인 IT 기업에서 29년간 컨설팅 및 기술 영업 업무를 담당한 소프트웨어 전문가다. 2016년에 (주)틴드럼시스템즈를 창업해 클라우드/서비스형 소프트웨어(Software-as-a-Service, SaaS), 인공지능(Artificial Intelligence, AI) 및 사물인터넷(Internet of Things, IoT) 분야의 신기술을 국내에 활발히 소개하고 있다.

우요셉

현재 세종대학교 전자정보통신공학과에 재학 중인 학생이다. 논리 회로, 전기/전자 회로 과목을 좋아하며 온라인 게임을 즐긴다. 대학 입학 후 경험 삼아 응시한 첫 TOEIC 시험에서 970점을 기록했다.
반도체와 AI 융합 기술 분야에서 연구원이나 학자가 되고자 이 분야의 신기술을 관심 있게 공부하고 있다.

목차

목차
  • 1부 - 클라우드 기반 개발

  • 1장. 클라우드에서의 머신러닝 및 딥러닝 모형
  • __머신러닝 소개
  • __딥러닝 소개
  • __신경망
  • __구조 정의 및 머신러닝 모형 교육의 어려움
  • __서버리스 머신러닝 소개
  • __머신러닝 모형과 함께 컨테이너 사용
  • __머신러닝을 위한 서버리스 컴퓨팅의 이점

  • 2장. 서비스형 함수 및 이벤트 기반 프로그래밍
  • __서비스형 소프트웨어, 클라우드 컴퓨팅 및 서버리스
  • __마이크로 서비스 아키텍처
  • __함수형 프로그래밍의 등장
  • ____객체 대신 함수 사용하기
  • ____비동기 프로그래밍
  • __서버리스
  • __함수 구현
  • __이벤트 기반 아키텍처
  • __실시간 처리의 의미
  • __요약 및 미리 보기

  • 3장. Microsoft Azure의 서버리스 응용 프로그램 인터페이스
  • __서버리스 플랫폼의 API
  • __Azure 소개
  • __Azure 일반 서비스

  • 2부 - 지능 추가

  • 4장. Microsoft Azure Functions 시작
  • __Azure Functions
  • ____Azure Portal을 사용해 함수 앱 만들기
  • ____로컬 개발 환경
  • ____핵심 도구를 사용해 함수 프로젝트 만들기
  • ____Visual Studio Code 사용
  • ____Visual Studio Code를 사용해 Python 디버깅
  • __Azure Blob Storage
  • ____스토리지 계정 만들기
  • ____Blob 전송
  • __요약 및 미리 보기

  • 5장. 머신러닝 및 딥러닝 모형 사용하기
  • __Azure Cognitive Services
  • ____Cognitive Services에서 서비스 설정 및 사용
  • ____서버리스 Azure 함수 프로젝트에서 Cognitive Services 사용
  • __일반 머신러닝 도구, 라이브러리 및 프레임워크
  • ____Microsoft Cognitive Toolkit
  • ____ML.NET
  • ____Jupyter Notebook
  • ____TensorFlow
  • ____Keras
  • ____Scikit-learn
  • __Azure를 사용하는 클라우드 머신러닝 솔루션
  • ____Microsoft Machine Learning Studio
  • ____Azure Machine Learning 서비스

  • 3부 - 배포 및 지속적인 제공

  • 6장. 배포 및 확장
  • __배포 옵션
  • ____Azure DevOps
  • ____Docker
  • ____Azure Container Registry
  • ____kubelets
  • ____kubelets를 위한 머신러닝 도구
  • ____단일 컨테이너 머신러닝
  • ____TFJob을 이용해 분산된 머신러닝

  • 7장. 보안
  • __Azure Functions 권한 부여 수준
  • __API 관리
  • __Azure 보안
  • ____운영
  • ____응용 프로그램
  • ____스토리지
  • ____네트워크 계층 제어
  • ____네트워킹

  • 8장. 모니터링
  • __Azure Monitor
  • __메트릭 및 로그
  • __데이터 원본
  • __Application Insights
  • ____컨테이너 및 VM용 Insights
  • __Log Analytics
  • ____데이터 탐색기 질의어
  • ____경고
  • ____스마트 그룹

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안