저자

니콜라스레이바,마이클카신

저자:니콜라스레이바(NicolasLeiva)
레드햇(RedHat)의스태프솔루션아키텍트(staffsolutionsarchitect)로,사업규모에상관없이IT인프라와서비스,애플리케이션의프로비저닝(provisioning)과운영자동화를지원한다.이전에는15년동안네트워크업계에서일하면서시스코공인설계전문가(CCDE,CiscoCertifiedDesignExpert)와시스코공인인터네트워크전문가(CCIE,CiscoCertifiedInternetworkExpert)자격을취득했다.현재클라우드기술에많은관심을갖고Go언어로오픈소스소프트웨어를개발하는데열정을바치고있다.접기

저자:마이클카신(MichaelKashin)
현재NVIDIA네트워크사업부의클라우드인프라솔루션아키텍트(cloudinfrastructuresolutionsarchitect)로,네트워크운영부터소프트웨어개발그리고시스템아키텍처와설계에이르기까지다양한역할을수행했다.다른분야간의경계를허물고사업의요구사항을만족시키면서가장최적의방법으로기술적문제를해결하는것을즐긴다.또한클라우드네이티브인프라cloud-nativeinfrastructure)와자동화,오케스트레이션(orchestration)에집중하는오픈소스기여자이자저자로활동하고있다.접기

역자:엄진국
고려대학교정보보호대학원에서석사학위를취득했으며,20년간CERT업무외NW보안업무를담당해왔다.행정안전부정부종합청사에서국가망의외부공격들을분석하면서보안업무를시작했다.이후신한금융그룹에서보안관제센터를처음만들때막내로함께했으며금융권최초로모든계열그룹사를통합해통합보안관제센터를구축하면서CERT를운영했다.이후신한금융그룹에서7년간통합보안관제센터장을역임하면서여러가지침해사고와위협들을경험했다.이경험을바탕으로현재는SK하이닉스에서보안관제센터를업그레이드했고,SK계열사최초로SOAR를구축해여러가지보안관제업무플로를자동화하는플레이북(Playbook)을만들었으며지금은NW보안총괄을맡아업무의효율성을높이고있다.NW보안과침해위협에대한예방방법에대해많은연구를했고SIEM을이용한침해위협탐지방법론을논문으로작성했다.또한웹공격을선제적으로방어하기위해세계에서가장빠르게방어패턴을만들수있는시스템을만들어특허를출원(출원번호:KR102048141B1)했다.

역자:서태진
고려대학교정보보호대학원에서석사학위를취득했다.국민은행전산부를시작으로현재까지30년간IT업무에종사한보안및개발업무전문가이다.현재는주식회사크라비스커뮤니티대표로,Opentext,모바일보안,Chinalaysis,TrustArc의제품군을취급하고있으며애플리케이션보안업무의전문가로활동하고있다.최근에는금융사클라우드전환시보안의전반적인업무를맡아성공적으로오픈했고암호화화폐,AI등신기술에대한연구를하고있으며보안,개발등의업무를책임지고있다.

역자:김우석
여러개발프로젝트를수행하면서광운대학교에서공학석사를취득했고정보보안을체계적으로배우기위해고려대학교정보보호대학원박사과정을수료했다.경찰청사이버테러대응센터에서사이버수사를지원하는인터넷추적시스템을개발했고한전KDN에서운영하는사이버안전센터에서에너지·산업·무역의보안관제총괄및침해사고대응업무와보안솔루션개발에참여해해킹에대응하는기술을연구했다.현재는전력ICT분야에서전력효율화를위한EMS(EnergyManagementSystem)개발담당으로서전력수요예측및발전예측등에인공지능기술을접목시키고있다.에이콘출판사에서출간한『적대적머신러닝』(2020)과『사이버보안을위한머신러닝쿡북』(2021)을번역했다.

역자:장기식
경희대학교에서대수학을전공했으며고려대학교정보보호대학원에서박사학위를취득했다.이후약10년간경찰청사이버안전국디지털포렌식센터에서디지털포렌식업무를담당했다.경찰대학치안정책연구소에서데이터분석을접한이후데이터분석을기반으로한머신러닝기술을연구했고이경험을바탕으로스타트업에서인공지능기반데이터분석업무부터CCTV용영상분석에이르기까지다양한머신러닝및인공지능업무를수행했다.현재모빌리티보안전문업체인㈜시옷의CTO로서자동차사이버보안및데이터분석솔루션개발및연구를책임지고있다.
번역서로는『보안을위한효율적인방법PKI』(인포북,2003),『머신러닝리스크관리with파이썬』(한빛미디어,2024)을비롯해에이콘출판사에서출간한『EnCase컴퓨터포렌식』(2015),『인텔리전스기반사고대응』(2019),『적대적머신러닝』(2020),『사이버보안을위한머신러닝쿡북』(2021),『양자암호시스템의시작』(2021),『스크래치로배워보자!머신러닝』(2022),『Pandas를이용한데이터분석실습2/e』(2022),『그래프머신러닝』(2023)이있다.

목차

1부.Go프로그래밍언어

1장.소개
__기술요구사항
__네트워킹과Go
__왜Go인가?
____비기술적인이유
__Go의미래
____기술적인이유
____네트워킹을위한Go
__Go와파이썬
____코드실행
____타입시스템
____성능
____사용편의성
____메모리관리
____구문
____장애처리
____동시성
____커뮤니티
__Go설치하기
____윈도우즈
____맥
____리눅스
__요약
__참고문헌

2장.Go의기초
__기술요구사항
__Go란무엇인가?
__Go의격언
__Go소스코드파일
____패키지
____Go모듈
____패키지임포트하기
____주석
____이름
____Go코드실행하기
__온라인에서Go프로그램실행하기
____GoPlayground
____GoPlaySpace
____미래엿보기
__Go소스코드관리를위한go도구
____build
____run
____mod
____get
____install
____fmt
____test
____env
__요약
__참고문헌

3장.Go시작하기
__기술요구사항
__Go의타입시스템
____기본타입
____컨테이너형
____사용자정의타입
__산술,비교,논리연산자
____산술연산자
____논리연산자
____비교연산자
__제어흐름
____for루프
____조건문
____goto문
__함수
____함수인수
____에러처리
____메서드
____가변인수함수
____클로저
____디퍼
__인터페이스
____네트워크자동화예제
____표준라이브러리의예
____계약으로서의인터페이스
__I/O연산
____io.Reader인터페이스
____io.Writer인터페이스
____io.Copy함수
____합성
__디코딩과인코딩
____디코딩
____인코딩
__동시성
____고루틴
____채널
____채널과타이머
____공유데이터액세스
____동시성주의사항
__요약
__참고문헌

4장.Go를사용하는네트워킹(TCP/IP)
__기술요구사항
__링크계층
____네트워크인터페이스
____이더넷
__인터넷계층
____net패키지
____새로운netip패키지
____IP주소로작업하기
____경로조회
__전송계층
____UDP핑애플리케이션
__응용계층
____HTTP클라이언트작업
____HTTP서버작업
__요약
__참고문헌

2부.일반적인도구와프레임워크

5장.네트워크자동화
__기술요구사항
__네트워크자동화란?
____네트워크자동화가필요한이유
____상향식관점
____하향식관점
__네트워크운영작업자동화
____구성관리
____네트워크상태분석
____네트워크감사및보고서작성
__시스템접근방식
____폐루프자동화
____데모애플리케이션
__요약
__참고문헌

6장.구성관리
__기술요구사항
__환경설정
____토폴로지만들기
__SSH를통해네트워크장치와상호작용하기
____네트워크장치구성설명하기
____Go의SSH패키지를사용해네트워크장치에액세스하기
____일상적인SSH작업자동화하기
__HTTP를통해네트워크장치와상호작용하기
____Go의HTTP패키지를사용해네트워크장치에액세스하기
____HTTP를통해다른시스템에서구성입력가져오기
__상태확인
____라우팅정보확인하기
____장치간도달가능성확인하기
__요약
__참고문헌

7장.자동화프레임워크
__기술요구사항
__앤서블
____앤서블구성요소
____앤서블모듈로작업하기
____앤서블모듈개발하기
____플레이북실행하기
__테라폼
____테라폼의구성요소
____테라폼사용하기
____테라폼제공자개발하기
____네트워킹제공자
__기타자동화프레임워크
____Gornir
____Consul-Terraform-Sync
____mgmt
____미래전망
__요약
__참고문헌

3부.API활용하기

8장.네트워크API
__기술요구사항
__API데이터모델링
__OpenAPI
____데이터모델링
____데이터입력
____장치구성
__JSON-RPC
____코드생성
____구성빌드하기
____장치구성
__RESTCONF
____코드생성
____구성빌드하기
____장치구성
__상태확인
____작동상태모델링
____작동상태처리하기
__gRPC
____Protobuf
____gRPC전송
____gRPC서비스정의하기
____gRPC로네트워크장치구성하기
____gRPC로네트워크장치에서원격측정스트리밍하기
__요약
__참고문헌

9장.OpenConfig
__기술요구사항
__장치프로비저닝
____SetRPC
____gNMI로네트워크인터페이스구성하기
__스트리밍원격측정
____SubscribeRPC
____gNMI를사용한스트리밍원격측정처리파이프라인
____이벤트관리지샘플프로그램
____데이터가시화하기
__네트워크운영
____TracerouteRPC
____경로검증기애플리케이션
__요약
__참고문헌

10장.네트워크모니터링
__기술요구사항
__데이터평면원격측정처리
____패킷캡처
____패킷필터링
____패킷처리
____트래픽만들기
__Go프로그램디버깅
____IDE에서디버깅하기
__데이터평면원격측정집계
____상위토커
____Go프로그램테스트
__제어평면성능측정
__BGP업데이트전파시간측정
____이벤트기반BGP상태기계
____BGP메시지인코딩및디코딩
____측정지표수집및노출
____측정지표저장및시각화
__분산애플리케이션개발
__요약
__참고문헌

11장.전문가의식견
__데이비드바로소
__스튜어트클락
__클라우디아드루나
__알렉시스드탈루엣
__존도크
__로만도딘
__데이비드지
__다니엘헤르츠버그
__마커스하인즈
__스네하인구바
__안토니오오헤아
__칼몬타나리
__브렌트솔즈베리
__막시밀리안빌헬름
__매트오스왈트
__참고문헌

12장.부록:테스트환경구축
__테스트환경이란?
____1단계-테스트환경구축하기
____2단계-컨테이너이미지업로드하기
____3단계-테스트환경과상호작용하기
__가상네트워크토폴로지시작하기
____장치에연결하기
____네트워크토폴로지삭제하기
____4단계-클라우드호스팅환경정리하기
__참고문헌

출판사 서평

이책에서다루는내용

네트워크관련예제를통한Go프로그래밍언어의기본개념
네트워크자동화를위한Go의강력한기능
네트워크자동화의목표와이점그리고일반적인사용사례
다양한기술을사용해네트워크장치와상호작용하는방법
Go프로그램을자동화프레임워크에통합하는방법
Go를OpenConfig생태계에활용하는방법
네트워크가시성을위해분산및확장가능한시스템구축

이책의대상독자

네트워크자동화가무엇인지,Go프로그래밍언어가네트워크자동화솔루션을개발하는데어떤도움이되는지알고자하는모든네트워크엔지니어,관리자그리고기타실무자를위해설계된책이다.전반부에서는Go언어의주요기능을설명하므로프로그래밍의기본지식을갖춘초보자에게적합하다.

이책의구성

1장,‘소개’에서는네트워킹과Go언어,Go언어의장점그리고파이썬과의차이점을살펴본다.
2장,‘Go의기초’에서는Go언어를정의하고기본원칙을소개한다.그리고Go소스코드파일구조를설명하고Go프로그램을컴파일하는방법을알아본다.
3장,‘Go시작하기’에서는제어흐름,입출력연산,디코딩과인코딩그리고동시성과같은네트워크자동화와관련된Go의다양한특성을소개한다.
4장,‘Go를사용하는네트워킹(TCP/IP)’에서는TCP/IP모델의각계층에서Go를사용하는실제사용사례를살펴본다.
5장,‘네트워크자동화’에서는네트워크자동화가네트워크운영에미치는영향그리고비즈니스에서의장점에대해설명한다.또한개별사용사례를네트워크자동화시스템으로확장하는방법도알아본다.
6장,‘구성관리’에서는SSH와HTTP를통해다양한네트워킹공급자의네트워크장치와상호작용해서네트워크장치를구성하고운영상태를수집해모든변경사항을확인하는실제예를살펴본다.
7장,‘자동화프레임워크’에서는앤서블(Ansible)과테라폼(Terraform)을중심으로자동화프레임워크를Go와통합하는방법을설명한다.
8장,‘네트워크API’에서는네트워크자동화를가능하게하는네트워크장치를관리하기위한기기간인터페이스(RESTCONF와OpenAPI부터gRPC까지)를살펴본다.
9장,‘OpenConfig’에서는장치프로비저닝(provisioning)이나원격측정스트림(telemetrystream)그리고라우팅추적(traceroute)과같은행위를실행하는등원격OpenConfiggRPC서비스로일반적인운영작업을수행하는방법을알아본다.
10장,‘네트워크모니터링’에서는Go를사용해네트워크패킷을캡처하거나,데이터평면원격측정(dataplanetelemetry)을처리하거나,네트워크성능을측정하기위해능동형프로브(activeprobe)를실행하고측정지표를시각화하는등네트워크를다양한각도로모니터링하는방법을자세히알아본다.
11장,‘전문가의식견’에서는네트워크자동화에대한실무경험이있거나네트워크관련업무와활동을위해Go를사용하는사람의관점을공유한다.
12장‘부록:테스트환경구축’에서는이책의모든예제를원활하게실행할수있도록호환되는컨테이너랩(Containerlab)의버전과관련종속성을포함하는테스트환경을구축하는과정을설명한다.

옮긴이의말

현대사회의필수기반시설인네트워크인프라를안정적이고효율적으로운영하는것은매우중요한과제입니다.그러나과거의수작업기반운영방식은인적오류의발생가능성이높았을뿐만아니라비효율적이었습니다.이에프로그래밍방식의네트워크자동화가그대안으로주목받고있습니다.

Go언어는간결한구문,뛰어난성능,강력한동시성지원등과같은장점을가진네트워크자동화분야에서각광받는프로그래밍언어입니다.이책은Go를활용한실전네트워크자동화지식과기술을상세히다룹니다.

이책은Go언어의기본문법과주요개념을알려주고TCP/IP모델전반에걸친실제프로그래밍예제를통해네트워크프로토콜에대한이해도를높이는데도움을줄수있습니다.또한SSH,HTTP등주요프로토콜의활용,데이터추출및파싱,장치구성및상태관리등네트워크자동화실무에필수적인주제를다양한예제를바탕으로익힐수있습니다.

이밖에도앤서블(Ansible),테라폼(Terraform)등주요자동화프레임워크의연동방법과OpenConfig기반gNMI/gNOI활용법,패킷캡처및모니터링자동화기술등최신네트워크운영트렌드를심도있게다룹니다.외부시스템연동,프레임워크직접개발등실무환경에맞는전략적기술도포함돼있습니다.

저자를비롯해네트워크자동화분야에서Go언어를사용하는전문가들이오랜기간실무를통해고민했던문제와해결방안을친절히설명하고있으므로이분야의입문자와전문가모두에게큰도움이될것입니다.Go기반네트워크자동화역량을한층업그레이드하는데에도움이되길바랍니다.