몇 년 전부터 도커를 비롯한 컨테이너 기술이 주목받기 시작하면서 최근에는 배포 환경을 도커와 같은 컨테이너 기반으로 구축하는 사례가 크게 늘었습니다. 컨테이너를 바라보는 시선도 유행하는 최신 기술이 아닌, 개발 및 운영을 위한 기본 환경으로 인식되고 있습니다. 개인적으로는 LXC를 통해 업무에 컨테이너를 활용함으로써 얻을 수 있는 장점에 대해 잘 알고 있었기에, 이보다 좀 더 다듬어진 환경을 제공하는 도커의 등장이 상당히 반가웠습니다.
모든 기술이 그렇듯이, 언론 매체나 다른 이들로부터 전해 듣는 것만으로는 그 본질을 제대로 이해하기 힘듭니다. 개념만 잘 이해하고 있으면 어디 가서 설명할 수는 있겠지만, 현업에서 제대로 활용하려면 아무리 쉬운 기술이라도 어느 정도 직접 다뤄봐야 합니다. 이 책은 완전 초보뿐만 아니라, 개념은 어느 정도 알고 있거나 한 번쯤 도커 컨테이너를 실행해본 경험이 있는 이들이 초급 이상의 수준에 도달하는 데 필요한 내용을 구체적인 예제와 함께 차근차근 설명하고 있습니다. 특정 기술을 현업에서 활용할 때는 당장 필요한 기능만 부분적으로 익히고 넘어가기 쉬운데, 이 책을 번역하면서 도커의 전반에 대해 제대로 정리하고 다시 생각해볼 수 있어 역자로서도 굉장히 유익한 시간이었습니다.
도커로 대표되는 컨테이너 기술은 이제 시스템의 기본 요소로 자리잡았습니다. 이제는 단순히 컨테이너를 사용하는 것을 넘어 마이크로서비스 아키텍처로 시스템을 구성하는 방향으로 가고 있습니다. 이 책은 이러한 흐름에 맞춰 독자들에게 마이크로서비스의 개념을 설명합니다. 중반부터는 도커 컨테이너를 시작으로 마이크로서비스를 실제로 구축하고 예전 시스템을 마이크로서비스 방식으로 전환하는 방법을 자세히 소개하고 있습니다.
도커와 마이크로서비스 분야는 다른 IT 분야와 마찬가지로 변화가 매우 빠른 편입니다. 번역을 하는 도중에 이나 프레임워크가 사라지거나 바뀐 사례도 많습니다. 나름 현재 상황을 반영하려고 했지만, 이 책 역시 얼마 지나지 않아 바뀌는 부분이 나타나기 마련이므로 항상 최신 웹 정보를 참조하기 바랍니다.
서점이나 인터넷을 둘러보면 아두이노와 라즈베리 파이 같은 메이커 보드의 기초를 설명하는 자료는 넘쳐나지만, 정작 만드는 대상을 움직이는 데 빼놓을 수 없는 부품인 모터에 대한 설명은 찾아보기 힘듭니다. 처음에는 보드의 기본 사용법만으로도 충분하지만, 실제로 뭔가를 만들어보려면 생각보다 모르는 것이 많다는 것을 깨닫게 됩니다. 특히 드론이나 로봇처럼 모터를 잘 다뤄야 하는 프로젝트를 진행하려면 부품을 구매하고 메이커용 보드에 연결하는 단계부터 막히는 부분이 많습니다. 모터에 관련된 수학과 물리 이론을 다루는 서적은 많지만 파고들기에 난해할 뿐만 아니라 양도 방대하고, 무엇보다 부품을 선정하고 설정하는 데 그다지 도움이 되지 않습니다.
이 책은 메이커용 보드에서 사용하는 대표적인 액추에이터인 모터에 대해 기초부터 활용 방법까지, 저자의 풍부한 경험과 노하우를 반영해 쉽게 설명하고 있습니다. 개인적으로도 궁금했지만 찾기 어려웠던 부분을 명쾌하게 설명해주는 덕분에 번역 작업의 고단함을 거의 잊게 해줄 만큼 이 책의 내용은 유익했습니다. 기초 이론과 실제 보드에서 사용하는 방법을 동시에 제공할 뿐만 아니라, 드론이나 ESC에 대해 부품 구성부터 설계, 제작까지 전 과정에 대해 간략하게나마 개념을 소개한 것은 이 책의 가장 큰 장점이라 생각합니다. 이 책이 기본 보드 사용법만으로는 만족하지 못하고 그다음 단계를 원하는 이들에게 조금이나마 갈증을 해소하는 계기가 되길 바랍니다.
내용의 빠른 이해와 정확한 전달에 초점을 맞추고 번역했으며, 내용과 의미를 최대한 보존하는 선에서 문체와 용어를 현실적으로 표현했습니다. 그래서 때로는 용어의 한글화보다는 원어의 음차 표기를 채택했습니다. 어색한 한자 표현이라도 이미 굳어진 용어는 아쉽지만 그대로 사용했습니다. 나름 완벽을 추구했지만, 본의 아니게 놓친 부분에 대해 미리 양해를 구합니다.
최근 IoT, 사물인터넷에 대한 관심이 부쩍 늘어난 것을 느낄 수 있습니다. 특히 아두이노나 라즈베리 파이처럼 손쉽게 접할 수 있는 플랫폼이 저렴한 가격으로 등장하면서 더욱 부담없이 접할 수 있는 여건이 마련된 것도 큰 영향을 미치지 않았나 생각합니다.
소프트웨어 관련 분야에서 그 동안 겪은 경험에 비춰볼 때 IoT는 새로우면서도 새롭지 않은 주제이기도 합니다. 임베디드 시스템과 네트워크 프로그래밍을 개발해본 경험이 있거나, M2M이나 센서 네트워크 분야를 오랫동안 연구하던 사람이라면 한 번쯤은 IoT와 관련된 영역 중 최소한 한 가지 이상은 경험해 본 적이 있을 것입니다. 저처럼 주로 소프트웨어만 다루고, 그나마 다뤄본 임베디드 시스템도 소프트웨어 쪽에 비중을 두고 개발해본 이들에게는 전기 및 전자공학 관련 지식을 좀 더 다뤄줬으면 좋았겠다는 아쉬움이 있을 수 있으나, 사실 이러한 내용에 대한 자료는 서점과 웹에 넘쳐나고 있습니다. 오히려 기존 자료나 도서들은 사물인터넷의 관점에서 '인터넷'보다는 '사물'에 더 치우쳐 설명하지 않았나 하는 느낌이 들기도 했습니다. 이런 관점에서 볼 때 사물 자체에 대한 설명보다는 이들을 연결해주기 위한 방법에 대해 네트워크 프로토콜 중심으로 설명한다는 점에서 이 책이 꽤 신선하게 느껴졌습니다. IoT를 위한 최선의 기술을 제시해주진 못하더라도, 최소한 이러한 기술을 찾거나 최적의 솔루션을 구성하는 안목을 높이는 데 도움이 될 것이라고 생각합니다.
이 책에서는 다양한 통신 프로토콜로 IoT 장치를 엮는 기술에 초점을 맞추다 보니, 라즈베리 파이나 C# 언어를 비롯한 이 책에 나온 설명과 예제를 이해하는 데 필요한 요소 기술에 대해서는 자세한 설명은 생략하고 간략히 설명하고 넘어갑니다. 아두이노나 라즈베리 파이에 대한 기본 설정과 조립에는 어느 정도 자신 있으면서, 아직 여러 대의 기기를 네트워크에 맞물려 작동하는 시스템을 만들어본 경험은 없는 독자에게 가장 잘 맞는 책이라 볼 수 있습니다. 그러나 IoT 분야를 처음 접하고 배경 지식도 충분히 갖추지 않은 독자라 하더라도, 기본적인 전산 지식만으로도 부록에 나온 보충 설명을 참고해 충분히 따라갈 수 있습니다. 관련 기술에 대한 자료가 이미 웹이나 서점에 많이 나와 있기 때문에, 부록의 설명만으로 충분하지 않더라도 큰 어려움이 없이 이 책을 읽을 수 있을 것입니다.
간혹 표현이 난해하기도 하고, 이를 보완하기 위해 원서의 저자도 뒤늦게 원문의 절반에 육박하는 부록을 추가하기도 했습니다. 5개 장에 걸친 부록을 통해 본문의 내용을 보충해주는 여러 자료들을 참조할 수 있습니다. 독자들도 이 책을 통해 더 많은 것을 느끼고 배우길 바랍니다.
자바 7에서는 평소 바라던 기능이 대거 추가됐습니다. 특히 try-with-resource 구문처럼 언어 차원에서 추가된 부분은 코드 작성 과정에 껄끄럽게 느끼던 부분이 사라져 개인적으로 기쁘기도 합니다. 대학교 1학년 때 처음 접한 후, 지금까지도 종종 사용하게 된 자바 언어가 현재까지도 지속적인 발전을 거듭하고 있어서 다행이기도 하고, 한편으로는 끊임없이 배워야 하는 부담도 있습니다.
언어와 기본 클래스에 대해 어느 정도 익숙한 자바 개발자에게는, 이 책과 같이 주요 기능에 대해 예제 코드 중심으로 간결하게 설명하는 방식이 학습 시간도 절약할 뿐만 아니라, 장황한 설명보다 훨씬 친숙하게 느껴질 것입니다. 좋은 주제와 구성을 갖고 있지만 사소한 오탈자가 종종 발견되는 아쉬움이 있었지만, 이 책의 역자로서 최대한 걸러내려고 노력했으며, 혹시라도 편집 과정에서 걸러지지 않은 부분이 있으면, 언제든지 에이콘 홈페이지를 통해 피드백을 주시면 감사하겠습니다. 아무쪼록 자바 개발자들이 자바 7에서 개선된 기능을 쉽고 빠르게 익히는 데 미약하게나마 도움이 되길 바랍니다.
최근 스칼라에 대한 관심이 부쩍 늘어난 것을 느낄 수 있습니다. C나 자바 같은 명령형 언어를 선호하고, 스칼라처럼 생소한 함수형 언어가 인기를 얻기 힘든 국내 분위기에 비춰볼 때, 생각보다 빠르게 퍼져 나가는 것 같습니다.
스칼라에 관한 책이 많이 나와 있지만, 기존에 자바를 주력 언어로 사용하던 개발자가 빠르게 스칼라로 갈아탈 수 있도록, 자바와 다른 점을 알려주고, 자바 코드와 섞어서 프로젝트를 개발하기 위한 방법을 간결하게 설명하는 점이 이 책의 두드러진 특징인 것 같습니다. 어느 정도 내공이 있어서 두꺼운 교과서나 레퍼런스 형태의 책은 부담스럽고, 스칼라의 핵심만 재빨리 익히려는 자바 프로그래머가 읽기 쉽게 구성되어 있습니다.
다른 책을 번역할 때도 그랬지만, 최대한 번역서라는 느낌을 받지 않도록 억지스런 한글 용어나 어색한 한자어 표현을 가급적 자제하고, 개발자의 입장에서 내용에 집중하는 데 방해되지 않고 술술 읽을 수 있도록 번역하고자 노력했습니다. 원서는 어느 정도 배경 지식을 갖춘 독자를 대상으로 집필했는데, 번역하는 과정에서 초보자 입장에서 언뜻 이해하기 힘든 부분에 가급적 설명을 보충했습니다.
자율 주행 기술이란 말을 처음 들은 지는 꽤 됐지만 정말 빠르게 발전하고 실제로도 적용되는구나라고 생각하게 된 것은 최근 몇 년 사이였습니다. 막연한 상상으로, 그리고 믿고 탈 수 있을까라는 의심을 갖고 있던 터라 현재 자율 주행 자동차의 수준을 보면 더욱 놀랍습니다. 이번 책은 자율 주행 자동차에 관련된 기본 기술부터 구현 원리까지 얇지만 핵심 주제를 모두 다루고 있습니다. 특히 퍼셉트인(PerceptIn)을 창업한 공저자의 경험이 담긴 부분은 인상적이었습니다. 로컬라이제이션을 비롯한 일부 장은 근본적으로 수식이 많이 들어가고 논문 같은 딱딱함이 남아 있지만, 전반적인 기술을 파악하는 데는 부족함이 없었습니다.
자율 주행 기술은 근본적으로 다양한 기술의 융합이 필요해서 이번 번역은 다양한 배경을 가진 역자들이 공동으로 작업했습니다. 항상 그렇듯이 빠른 이해에 중점을 두고 번역했습니다. 그래서 용어도 완벽한 한글화를 추구하기보다는 이해에 도움된다면 과감히 음차 표기로 진행했습니다.
자율주행 기술이란 말을 들은 지는 꽤 됐지만, 정말 빠르게 발전하고 실제로도 적용된다고 생각하게 된 것은 최근 몇 년 사이였습니다. 막연한 상상으로, 그리고 믿고 탈 수 있을지에 관해 의심을 갖고 있던 터라 현재 자율주행 자동차의 수준을 보면 더욱 놀랍습니다. 이번 책은 자율주행 자동차에 관련된 기본 기술부터 구현 원리까지 얇지만 핵심 주제를 모두 다루고 있습니다. 특히 퍼셉트인(PerceptIn)을 창업한 공저자의 경험이 담긴 부분은 인상적이었습니다. 로컬라이제이션을 비롯한 일부 장은 수식이 많이 들어가고 논문 같은 딱딱함이 남아 있지만, 전반적인 기술을 파악하는 데는 부족함이 없었습니다.
자율주행 기술은 근본적으로 다양한 기술의 융합이 필요해서 이번 번역은 다양한 배경을 가진 역자들이 공동으로 작업했습니다. 항상 그렇듯이 빠른 이해에 중점을 두고 번역했습니다. 그래서 용어도 완벽한 한글화를 추구하기보다는 이해에 도움된다면 과감히 음차 표기로 진행했습니다.
- 남기혁
2018년에 출간된 자율주행 관련 서적을 함께 번역했던 팀과 또 다시 작업할 기회를 갖게 돼 즐거웠습니다. 각자 회사 일로 바쁘고 COVID-19로 어수선한 상황임에도 온라인 협업을 통해 무사히 출간돼서 더 기쁩니다. 지난 책의 경험을 반영해 나름 정성을 쏟은 만큼 독자들에게 작게나마 도움이 되길 바랍니다.
- 남기혁
코코아 터치는 아이팟, 아이폰, 아이패드용 애플리케이션을 제작하기 위해 애플에서 제공하는 프레임워크로서, 이름에서 알 수 있듯이 기존 맥 OS용 코코아 프레임워크를 iOS에 맞게 재구성한 것이다. 단순히 다양한 기능을 API로 표현하는 데 그치지 않고 오랜 기간 축적된 노하우와 디자인 패턴이 절묘하게 녹아 들어 있어서, 아이폰 앱 개발에 없어서는 안 될 필수 도구로 손꼽힌다.
이처럼 코코아 터치가 차지하는 큰 비중에 비해, 코코아 터치란 무엇인지조차 모르는 사람이 많아 코코아 터치의 개념 자체를 묻는 질문을 종종 받는다. 물론 앱스토어에서 엄청난 다운로드 수를 자랑하는 뛰어난 앱을 제작하면 그만일 수도 있지만, 코코아 터치에 대한 충분한 이해가 뒤따라 준다면 뛰어난 기획부터 앱스토어 등록에 이르는 시간을 단축시킬 수 있을 뿐만 아니라 애플리케이션의 품질도 향상시키는 데 도움이 될 거라 믿는다.
이 책에서는 오브젝티브C와 엑스코드 기반 개발 환경을 어느 정도 접해 본 개발자를 대상으로 코코아 터치 프레임워크에서 제공하는 전반적인 기능을 하나씩 설명한다. 하지만 예제 코드가 단계별로 소개되므로 처음 아이폰 개발에 뛰어든 독자도 직접 손과 눈으로 확인하면서 책에서 설명하는 내용을 쉽게 이해할 수 있으리라 생각한다. 예제 코드는 2010년 9월 중순 기준으로 최신 버전인 Xcode 3.2.4와 iOS SDK 4.1을 대상으로 했으며, 에이콘출판사 도서 정보 페이지(http://www.aconrpub.co.kr/book/cocoatouch)에서 다운로드 할 수 있다.
물론 완전 초보를 위한 그대로 따라하기 스타일의 책이 아닌 만큼, 책을 읽고 생각하면서 코드를 직접 다뤄보면 훨씬 도움이 될 것이다. 마지막으로, 책을 읽으면서 애플 개발자 사이트의 iOS 레퍼런스 라이브러리(http://developer.apple.com/library/ios/navigation/)를 참조해 이 책에서 미처 다루지 못한 부분과 최신 iOS 버전에 맞는 정보를 보완해 이 책을 200% 활용하길 바란다.
도커로 대표되는 컨테이너 기술은 이를 주로 사용하는 분야에서는 더 이상 신선한 주제가 아닌, 일상 업무에서 당연히 사용하는 요소로 자리 잡은 분위기입니다. 도커 컨테이너의 등장 배경과 기본 개념, 기초 기능의 사용법을 다루는 글에 슬슬 하품이 나올 즈음, 다소 실용적인 관점에서 도커를 소개하는 이 책을 번역하게 됐습니다. 지난 몇 년 동안 도커는 설치 방법만 수차례 변경될 정도로 빠르게 성장하고 있습니다. 이러한 상황에서 이 책은 도커를 활용하다 부딪힐 만한 문제들을 중심으로 도커를 소개한다는 점이 신선했고, 개인적으로 네트워킹 부분을 상세히 설명하는 점이 마음에 들었습니다. 도커가 무엇인지 알고 싶은 분들부터 실전에서 마이크로서비스 구현을 고민하는 독자들까지 모두 만족시킬 만한 다양한 주제를 다루는 책입니다.
이번 번역도 빠른 이해와 정확한 전달에 우선순위를 뒀습니다. 지금 이 순간에도 수없이 밀려 들어오는 신기술을 빠르게 익혀 현업에서 활용할 수 있도록 문체와 용어를 현업에서 쓰이는 방향으로 번역했습니다. 그래서 원어의 음차 표기를 적절히 활용했습니다. 개인적으로는 100% 동의하지 않지만 현장에서 이미 굳혀진 용어가 다소 아쉽더라도 그대로 사용하기도 했습니다. 최선의 표현을 찾고자 항상 노력하지만, 독자 입장에서는 아쉬운 부분이 얼마든지 나올 수 있습니다. 이 점에 대해 미리 양해를 구합니다.
최근 딥러닝을 비롯한 AI 기술에 대한 인기는 놀라울 정도다. 주기적으로 유행처럼 찾아오는 기술과 달리 다양한 분야의 IT 개발자로 하여금 AI를 공부하게 만들 정도로 큰 영향을 미치고 있으며, 이미 컴퓨터 서적 순위의 상위권은 머신 러닝이 점령했다. 세계적인 IT 선두 업체 중에서 AI에 관심 없는 회사는 찾아보기 힘들다. 이러한 현상이 영원하지는 않겠지만 생각보다 길게 이어지고 있다. 결론적으로 AI의 전문가가 아닌 개발자라도 AI의 기초는 갖출 필요가 있다.
이 책은 한마디로 AI의 기초를 다지고 싶은 프로그래머를 위한 것이며, 그 장점으로는 크게 두 가지를 꼽을 수 있다. 첫 번째는 AI 관련 기술을 전반적으로 다루고 있다는 것이다. 목차를 보면 AI 교과서의 축소판과 같다. 최근 유행하는 특정한 세부 기술에 치우치지 않고, 지금까지 축적된 다양한 AI 기술을 고루 섭렵할 수 있다. 두 번째는 철저히 실습 위주라는 것이다. 모든 개념과 기법마다 파이썬 예제를 제공한다. 복잡한 이론과 수식에 너무 빠져들면 정작 핵심은 보지 못하거나 응용 기법을 놓치기 쉽다.
이 책은 이론은 최대한 쉽고 간략하고 직관적으로 표현하고, 파이썬 프로그램을 통해 개념을 직접 확인하는 방식으로 구성돼 있다. 당장 AI 기법을 활용해 응용프로그램을 작성하려는 개발자 입장에서 굉장히 효율적이다.
번역의 기준은 내용을 빠르게 이해시키고 정확히 전달하는 데 초점을 맞췄다. 원서의 내용과 의미를 최대한 보존하는 선에서 문체와 용어를 현실적으로 표현했다. 때로는 용어의 한글화보다는 원어의 음차 표기를 채택했다. 예제 코드는 직접 확인하면서 오류를 최대한 걸러내도록 노력했다. 완벽을 추구해 번역했지만, 본의 아니게 놓친 부분에 대해서는 미리 양해를 구한다. 실행 및 개선 사항이 있다면, 언제든지 연락 바란다.
최근 몇 년 동안 네트워크 분야에서 SDN, NFV, IoT라는 굵직한 키워드가 등장했습니다. 개인적으로는 2010년부터 미래인터넷 연구 및 국제 표준화 과제에 참여하면서 이러한 기술이 등장하고 발전하는 과정을 지켜볼 수 있었습니다. 처음에는 스탠포드 대학의 한 연구실에서 시작한 오픈플로우가 SDN이라는 기술로 성장하면서 관련 업계에 큰 영향을 미치고, NFV의 탄생에도 영향을 미친 과정은 굉장히 흥미진진하면서도 실리콘밸리의 저력을 여실히 보여줬습니다.
단기간에 급성장한 탓인지 이러한 기술을 상세히 다루는 네트워킹 교재나 기술 서적은 찾기 쉽지 않았는데, 마침 에이콘에서 이 책을 기획하고 있다는 소식에 기쁜 마음으로 번역에 참여했습니다. 방대한 기술을 기본 개념부터 표준 현황에 이르기까지 꼼꼼하게 정리했다는 점은 이 책의 가장 큰 장점이라고 생각합니다. 공역자로 참여하신 강지양 상무님 덕분에 쉽지 않은 작업을 무난히 마칠 수 있었습니다. 그리고 좋은 책을 만날 기회를 주신 에이콘 출판사 관계자 분께도 감사드립니다.
시스템 소프트웨어 개발 경험이 풍부해야만 깨달을 수 있는 노하우가 이 책 한 권에 잘 정리되어 있습니다. 실전 고 프로그래밍에 굉장히 유익한 내용으로 가득 차 있어서 번역하는 입장에서도 즐거웠습니다. 이 책의 실습을 검증한 환경은 둘로 나눌 수 있습니다.
(1) 시스템 독립적인 예제의 실행 환경: Go Playground
- https://go.dev/play
- 예: 슬라이스 연산 등 코어 기능
- 고 언어: 1.20
(2) 시스템 종속적인 예제의 실행 환경: Go 1.20.5 / 맥OS(M1)
- 프로세서: M1(ARM 기반, darwin/arm64)
- 운영체제: macOS 12.5 Monterey
- 예: I/O, 고루틴 성능 비교 등
- 고 언어: 1.20.5
C 언어는 간결하고 효율적이지만 요즘 나온 언어에 비해 기능이 좀 아쉽고, C++는 C처럼 효율적이면서도 기능은 정말 풍부하지만 언어 자체에 대해 부담감이 든다. 이 때문에 이들 언어를 괜히 최후의 대안으로 미루고 싶다. 자바는 C++에 비해 간결하고 활용도도 높고 학부 시절부터 익숙하게 썼지만 요즘 들어 회의감이 좀 들고, 파이썬은 들여쓰기가 거슬려서 아쉽던 중 Go라는 언어가 내 마음속의 미묘한 틈새를 파고 들어왔다. 아직 주변에서 Go 언어를 주로 사용하는 사례를 찾기는 쉽지 않다. 하지만 신생 언어치고는 그 생태계가 상당히 빠르게 커지고 있다. 쿠버네티스와 같은 대표적인 구현 사례도 있고, 아두이노도 Go 언어로 다룰 수 있게 된 지 오래다.
사실 어떤 프로그래밍 언어를 처음 접할 때는 항상 그 언어를 만든 사람의 책만 봤다. Go에 관심이 있어 선뜻 번역을 맡았지만 처음에는 다른 실용서와 비슷할 거란 생각에 큰 기대 없이 작업했다. 하지만 원서가 570 페이지에 달한다는 생각이 들지 않을 정도로 시간이 순식간에 지나갔다. 언어 자체에 대한 소개뿐만 아니라, 저자의 경험과 노하우가 곳곳에 스며 있고, 무엇보다도 기초 이론도 가볍지 않게 다뤄준다는 점에서 단순히 Go 언어 입문서가 아닌 프로그래밍 입문서라고 봐도 손색이 없다.
이번 번역도 예전 책과 마찬가지로 빠른 이해와 정확한 전달에 우선 순위를 뒀다. 지금 이 순간에도 새로운 기술이 수없이 밀려 들어오고 있다. Go만 봐도 한 해에 여러 차례 업데이트되는 상황을 감안했을 때, 새 기술을 빨리 익혀 현업에 적용하려는 독자 입장에서 바람직한 한글 표현보다 음차 표기가 머리에 빨리 들어올 것 같다면, 아쉽더라도 후자를 선택했다. 미묘한 뉘앙스 차이가 누적되면 아무리 기술서라도 알게 모르게 피로도가 쌓이고 본 뜻도 변질되기 쉽다. 최대한 원서의 본질을 보존하고자 노력했지만 독자 입장에서 아쉬운 점은 얼마든지 나올 수 있다. 이 점에 대해 미리 양해를 구한다.
초판 번역을 한 지 불과 2년이 안 된 지금, 급격히 성장한 Go 언어와 생태계가 놀랍습니다. C, C++, Java, Python을 비롯한 주요 언어의 각자 주력 분야를 제외한 나머지 영역을 Go가 하나둘씩 빼가는 느낌입니다. 그래서 이 책처럼 다양한 주제를 실습 예제 위주로 훑어보면 흥미를 유지하면서 꾸준히 Go 언어를 익히기에 좋은 것 같습니다.
이번 번역도 예전 책과 마찬가지로 빠른 이해와 의미 전달에 우선순위를 뒀습니다. 변화의 속도에 발맞추기가 중요한 만큼 빠른 이해를 위해 의도적으로 음차 표기를 선택한 용어도 많습니다. 그래서 독자 입장에서 아쉬운 부분은 얼마든지 나올 수 있다는 점에 대해 미리 양해를 구합니다.
국내에 아이폰이 출시된 초창기 시절, 한때 탈옥이 유행했는데, 보안에 취약하다는 이유 하나만으로 수많은 장점(?)을 포기하고 순정품 그대로 쓴 기억이 있다. 지금은 예전보다는 보안 기능이 크게 향상됐는데, 그 사이 내부적으로 어떤 일들이 있었고, 어떤 기술이 사용됐는지, 한번 그 속을 들여다보고 싶었던 차에, 이 책을 번역할 기회를 얻게 됐다.
이 책에서는 지금 출시된 최신형 아이폰을 공격하는 데 필요한 직접적인 방법을 알려주지는 않는다. 시스템 내부에 대한 사전 지식과 전문 용어가 많이 등장하지만, 어디까지나 상세한 설명을 위한 것이지, 시스템 전문가나 보안 관련 종사자만을 대상으로 하는 것은 아니고, 오히려 일반 사용자에게 특히 유용할 것이다. 여기서 소개하는 iOS 기반 기기에 대한 공격과 방어의 사례를 살펴봄으로써, 최신형 제품에 여전히 존재하는 보안의 허점을 해결하는데 필요한 내공을 쌓는 데 큰 도움이 될 것이다.
최근 몇 년간 오픈스택의 뉴트론 프로젝트는 급성장했다. 오픈스택 서밋에 참석해봐도, 뉴트론 관련 세션에 거의 대부분의 참석자가 몰리는 경향이 두드러졌다. 일반 사용자와 클라우드 관리자부터, 오픈스택 관련 솔루션 제조사와 장비 업체에 이르기까지, 이렇게 많은 사람들이 관심을 보이는 것은 현장에서 네트워킹과 관련하여 각자가 필요성을 절실하게 느꼈고, 뉴트론에 기대하는 바도 크기 때문일 것이다.
이러한 인기에 비해 처음 뉴트론에 입문하는 사람들이 참고할 만한 자료는 그리 많지 않다. 그동안 뉴트론 입문 서적이 거의 없는 상황에서 오픈스택 공식 사이트에서 제공하는 문서나 여러 발표 자료에만 의존해야 했는데, 오픈스택도 그렇지만 뉴트론은 설치와 설정 작업 자체만으로도 상당한 노력이 필요하다. 이런 상황에서 지난 10월 팩트 출판사에서 뉴트론을 주제로 책이 발간된 것을 보고 굉장히 반가웠다. 랙스페이스 블로그와 오픈스택 관련 사이트에서 종종 글을 올리던, 뉴트론 관련 경력이 풍부한 저자가 썼다는 점에 기대도 컸다.
흔히 우분투 기반으로 설치하는 것과 달리, 이 책은 CentOS를 기반으로 작성되었다. 그래도 기본 개념과 내부 동작에 대해 자세히 설명하고 있기 때문에, CentOS를 사용하지 않던 독자라도 이 책을 잘 따라가면 쉽게 적응할 수 있을 것이다. 오픈스택 버전이 상대적으로 빨리 변경되어, 이 책에서 사용하는 하바나는 벌써 예전 버전이 되어버렸다. 또한 현재는 ML2를 기반으로 사용하는 데 반해, 이 책에서는 기존에 사용하던 LinuxBridge와 OVS 플러그인을 사용하고 있다. 최신 버전이 아니라는 점은 아쉽지만 뉴트론의 구조와 개념, 내부 동작에 대해 이해하는 데는 충분하며, 이 책에서 설명하는 내용을 확실히 머릿속에 담고 있다면, Juno 같은 상위 버전으로 쉽게 전환할 수 있을 것이다. 이 책에서 사용하는 환경에 대한 모든 부분이 모두 독자의 입맛에 맞지 않더라도 뉴트론의 기본 개념과 동작에 대해서는 잘 설명하고 있기 때문에, 이 책의 설명을 따라가면서 세부적인 환경 설정이나 직접 설명하지 않은 부분은 적절히 외부 자료를 참고하면 큰 도움이 될 것이다.
제 학부 시절에 머신 러닝은 과거에 잠시 주목받았지만 대학원 전공으로 삼기에는 전망이 좋지 않다는 인식이 지배적이었습니다. 그러나 졸업 후 몇 년도 채 지나지 않아서 분위기가 완전히 달라진 것을 보니 어안이 벙벙할 정도입니다. 이제는 전문가가 되기 위해서가 아니라, 기본 교양으로 머신 러닝을 배워야 하는 시대가 됐습니다. 특히 현재 기술의 효과와 한계를 명확히 이해하는 것이 무엇보다 중요합니다. 자칫 공상 과학 소설과 현실을 혼동하거나, 본의 아니게 과장과 거짓말을 할 위험도 있기 때문입니다. 개인적으로는 처음부터 정의와 의미를 정확히 짚고 넘어가는 것이 도움이 된다고 생각합니다. 물론 수식 하나 없이 친구가 얘기해주는 것 같은 설명이 처음에는 편하더라도 결국 딱딱한 정의와 수식을 찾아가게 됩니다. 프로그램에 대한 최고의 문서가 코드이듯, 아쉽지만 머신 러닝도 기반 수학 이론에 익숙해질 필요가 있다고 느꼈습니다.
이 책은 머신 러닝에 대해 어렴풋이 들어본 입문자가 핵심 이론을 확실히 익히면서 최근 동향에 대해 감을 잡기에 좋습니다. 원서가 100페이지 정도의 적은 분량으로 중요한 내용만 다루고 있어서 언제든 책상 곁에 두고 틈틈이 참고하기에 좋습니다. 압축된 표현과 수식에 당황할 수 있지만, 군더더기 없어서 오히려 본질에 집중할 수 있습니다. 책은 얇지만 원서 웹사이트와 깃허브에서 풍부한 관련 자료와 다양한 파이썬 예제를 제공하고 있습니다.
이전에 번역했던 다른 책과 마찬가지로 빠른 이해와 정확한 전달에 우선순위를 뒀습니다. 그래서 용어나 표현도 가급적 널리 사용하는 것을 따르거나 부득이한 경우 음차 표기했습니다. 특히 이 분야는 오래전에 정립된 통계학 용어와 영문 용어가 혼재돼 있습니다. 좀 아쉽더라도 익숙함을 기준으로 용어를 통일했습니다. 최대한 자연스럽게 표현하고 본래 의미도 보존하려 노력했지만, 미처 걸러내지 못한 미흡한 부분이 있다면 미리 양해를 구합니다.