알라딘

헤더배너
상품평점 help

분류

이름:이상식

최근작
2019년 6월 <Go 동시성 프로그래밍>

Go 동시성 프로그래밍

오늘날 소프트웨어가 동작하는 환경(고성능 멀티 코어 CPU의 보급과 멀티태스킹 지원, 비동기 분산 서비스 및 클라우드 기반의 마이크로서비스 패러다임)을 살펴보면 동시성을 고려하지 않고 프로그램을 작성하는 것은 불가능해 보인다. 이러한 환경을 반영하듯 동시성을 지원하는 새로운 언어가 계속 등장하고 있으며, 기존의 언어들 역시 다양한 패턴과 라이브러리를 추가해 동시성 프로그래밍을 지원하려는 변화의 노력을 지속하고 있다. 언어들이 동시성을 추상화한 수준은 모두 다른데, 그중에서도 Go 언어의 동시성 지원은 단연 돋보인다. 전통적인 프로세스와 스레드, 잠금 및 동기화 모델, 이어서 등장한 메시지 큐와 비동기 서비스 모델에서의 동시성 프로그래밍과 Go 언어가 제공하는 고루틴과 채널을 활용한 동시성 프로그래밍을 비교해본다면 언어 자체가 지원하는 추상화의 강력함을 느낄 수 있을 것이다. Go 언어는 동시성과 관련된 부수적인 작업들을 추상화함으로써 프로그래머가 문제 해결에만 집중할 수 있도록 도와준다. 이 책은 Go 언어의 특성을 보다 잘 이해하고 활용할 수 있도록 동시성과 병렬성의 개념, Go 동시성 모델의 이론적인 배경부터 실무에서 활용할 수 있는 도구와 테크닉까지 폭넓게 다루고 있다. 이 책을 통해 Go를 활용한 동시성 프로그래밍 기법을 익힐 수 있을 뿐만 아니라 최신 언어가 동시성을 어떻게 지원하는지 살펴보며 동시성 자체에 대한 이해도 높일 수 있을 것이다.

Go 언어를 활용한 마이크로서비스 개발

Go 언어는 구글에서 발표한 언어로, 꾸준히 관심을 얻고 사용자를 늘려 왔다. 이제는 안정화 단계에 들어서 고정 사용자 층을 확보했으며, 구글 내부에서 개발을 위해 사용하는 공식 언어 중 하나로 자리잡고, 도커 컨테이너 개발에도 사용하는 언어가 됐다. 또한 풍부한 라이브러리를 보유하고 있어서 간단한 문법으로도 손쉽게 다양한 기능을 구현할 수 있으며 특히 네트워크, 동시성 등 분산 환경에서 필요한 기능을 강력히 지원한다. 마이크로서비스는 커다란 애플리케이션을 특화된 역할에 따라 분리된 여러 개의 작은 서비스로 쪼개고, 그들 사이의 상호작용을 통해 하나의 시스템처럼 동작하도록 설계하는 방식을 말한다. 사전에 정의된 인터페이스만 따르면 상호 연동이 가능하기 때문에 유연성과 확장성이 좋다. 또한 최근 REST API가 일반화되고 도커(Docker)와 같은 컨테이너 기술, AWS와 같은 클라우드 컴퓨팅 환경이 보급된 덕분에 더 쉽고 빠르게 구현할 수 있다. 이 책의 제목인 『Go를 활용한 마이크로서비스 개발』을 구성하는 두 개의 키워드를 살펴보면 내용을 쉽게 짐작할 수 있다. 최근 서비스 개발 트렌드라고 할 수 있는 마이크로서비스의 설계와 구현 전반에 대해 소개하면서, 이를 지원하는 Go라는 트렌디한 언어의 특성과 라이브러리 및 프레임워크를 보여준다. Go 언어를 바탕으로 마이크로서비스를 배워보려는 독자에게는 마이크로서비스의 개념과 구성 요소 및 설계 기법 등을 제공한다. 마이크로서비스 설계에 대한 지식을 기반으로 마이크로서비스의 구현과 운영상의 세부 사항을 실습해 보고자 하는 독자에게는 안정적이고 간결하며 모범적인 구현 사례를 제공한다. 설령 양쪽 모두 생소하더라도, 마이크로서비스에 대한 충실한 설명과 Go 언어의 간결한 문법 및 깔끔한 예제를 제공하고 있는 이 책은 "Go 언어의 실제 활용"과 "마이크로서비스의 이해"라는 두 마리 토끼를 한 번에 잡을 수 있는 괜찮은 시작점이 되리라고 생각한다. 기본적인 Go 언어 문법을 찾아보는 노력은 필요할 수도 있다. 이 책을 통해 많은 독자들이 빠르게 변화하는 소프트웨어 개발 생태계의 일면을 이해해서 효율적이면서도 안정적인 애플리케이션 개발에 필요한 지식을 익힐 수 있기를 바란다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자