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