시중에는 게임 디자인 책이 다수 출간돼 있다. 대부분이 게임 디자인 이론서이거나 게임 레벨 디자인 또는 캐릭터 디자인과 같은 게임 제작 실용서다. 그 중간을 이어주는 책은 아주 드물다. 디자인 이론을 익히고 나서 이론을 게임 제작에 적용하려면 시행착오를 겪으며 경험으로 그 사이 단계를 메꿀 수밖에 없다.
게임 프로토타입 제작서도 드물다. 게임 프로토타입 제작은 아무리 강조해도 지나치지 않다. 게임 프로토타입은 일종의 게임 시제품으로 볼 수 있다. 기획이나 디자인한 게임이 실제 게임으로 제작될 때 어느 정도의 시간과 자원이 필요할지, 재미는 얼마나 있을지 등을 어림잡을 필요가 있다. 이처럼 제품 제작에 앞서 현실적 측면을 다양하게 알아보고자 대략적으로 만드는 것이 프로토타입이다.
이렇게 서로 떨어져 있는 부분들을 하나로 이어주는 통합서가 바로 이 책이다. 이 책은 게임 디자인 이론에서부터 프로그래밍 언어를 거쳐 프로토타입 제작까지 한 권으로 멋지게 엮어 원스톱 쇼핑(한 곳에서 필요한 모든 것을 획득)을 가능케 한 훌륭한 책이다.
국내에 이 책의 1판이 출간된 지 오래 됐는데 이렇게 2판 번역서를 내놓을 수 있게 돼 다행이다. 하지만 여러 사정으로 2판의 출간이 지연됐고 그 사이에 3판 원서가 2022년 9월에 출간되기도 했다. 유니티 버전도 여러 차례 바뀌었기 때문에 나는 2판의 번역을 현재 유니티 최신 버전인 2023.1 버전에 맞게 다시 업데이트했다.
2판 원서는 2017.1 버전으로 쓰여진 것이라 여러 내용이 구식이었다. 2017.3부터는 코드 편집기로 포함됐던 모노디벨롭이 빠지면서 비주얼 스튜디오로 대체되기 시작했다. 당연히 2판의 코드 스타일은 모노디벨롭 스타일이어서 나는 2판 내용을 업데이트하면서 비주얼 스튜디오 코드 스타일로 모두 바꿨다. 2021 버전부터는 내장된 UI 텍스트가 레거시로 내려앉고 TextMesh Pro가 그 자리를 대체하기 시작했다. 따라서 2판 번역에 TextMesh Pro 관련 내용을 추가로 보강하고 내장 UI 텍스트 코드를 전부 TextMesh Pro 코드로 바꿨다. 그 외에 기존 코드를 2023.1 버전에서 실행했을 때 발생되는 경고나 오류를 없앴고 구식의 내용도 최신에 맞게 수정했다.
이 책의 3판이 유니티 2020.3 버전으로 집필됐으니 유니티 2023.1 버전을 적용한 2판 번역서는 버전 적용면에서 훨씬 최신 책이라 자부한다. 아무쪼록 이 책을 통해 유니티 최신 버전에서 게임 디자인과 프로토타입 제작 학습을 하며 소기의 성과를 거두기를 바란다.
내가 생각하는 좋은 기술 입문서란 짧은 시간에 그 기술에 대한 핵심을 파악할 수 있게 하는 책이다. 힘들게 기술을 익혀 놓았는데 자신의 현업에 다른 기술이 더 알맞다는 점을 알게 됐을 때는 정말 낭패다. 이런저런 기술을 적용하다 아까운 시간을 허비하기도 한다.
이 책은 AngularJS를 처음 접하는 닷넷 개발자들에게 단기간에 AngularJS 애플리케이션 제작 방식을 맛볼 수 있게 한 책이다. 저자도 밝혔듯이 이 책을 뚝딱 마치고 나면 어느새 상용 애플리케이션을 만드는 데 적용할 수 있는 자전거 대여 AngularJS 애플리케이션 하나가 완성된다. 이 애플리케이션을 단계별로 만들어가며 필요한 기술을 하나하나 익히게 하는 방식은 부담스럽지도 않고 독자가 즐겁게 책장을 넘길 수 있다.
저자의 빠른 내용 전개는 다소 생략하고 넘어가는 것처럼 보이지만 오히려 내용을 간결하게 해 군더더기 없게 만든다. 독자들은 금방 이 책을 덮고 더 고급 기술로 이행할 수 있을 것이다. 이 책을 통해 비주얼 스튜디오라는 막강한 도구로 수월하게 AngularJS 애플리케이션을 제작할 수 있다는 점에 국내 독자들이 만족할 거라 믿는다.
이 책은 2000년 처음 출간되고 2010년에 10주년 기념판으로 재발간됐다. 이제 출간된 지 22년 만에 이 번역판을 국내 독자에게 선보이게 됐다. 22년이 지났다고 하면 하루하루 새로운 정보와 신기술이 쏟아지는 현재의 상황에서는 구식으로 느끼기에 충분하다. 하지만 이 책은 여전히 양자계산 및 양자정보 분야의 바이블로 대우받고 있다. 세월이 많이 흘렀어도 이 책의 가치가 떨어지지 않는 이유를 알려면 이 책이 나온 시기의 상황을 살필 필요가 있다.
양자역학이 1920년대부터 1930년대에 걸쳐 격동의 세월을 보냈다면 양자 컴퓨팅은 1990년대에 격동기를 겪었다. 1993년 IBM에 근무하던 찰스 베넷 박사 그룹이 얽힘 상태를 이용해 양자 텔레포테이션 개념을 이론적으로 확립했다. 1994년에는 피터 쇼어 박사가 '쇼어 알고리듬'을 발표해 사회에 강한 충격을 주었다. 현재 우리가 사용하는 RSA 암호 체계가 결코 안전하지 않다는 것을 보여준 큰 사건이었다. 또한 쇼어 박사는 같은 해에 오류 증후군 측정 방식을 통해 얽힘 상태를 이용하면 양자 컴퓨팅에서 오류정정이 가능하다는 것도 밝혀냈다. 1996년에는 벨 연구소의 연구원이었던 롭 그로버가 '그로버 알고리듬'을 발표해 탐색 문제의 시간을 크게 단축시키면서 양자 컴퓨터가 고전 컴퓨터를 넘어설 수 있다는 확신을 줬다. 1997년에는 인스부르크대학교의 차일링거 교수 그룹이 4년 전 이론으로 나왔던 양자 텔레포테이션 개념을 실험으로 구현해냈다. 이와 같은 격동기를 거치며 이 책이 집필된 것이므로 그때까지의 생생한 지식들을 담아낸 것이라 볼 수 있다. 현재의 양자 컴퓨팅 기술은 바로 그 지식들을 딛고 올라선 것이다. 따라서 세월이 지났어도 이 책은 구식이 아니라 현재의 기술을 이해할 수 있는 기본서가 되는 셈이다.
2021년 11월에 IBM이 127큐비트 '이글(Eagle)' CPU를 개발했다며 양자 컴퓨터에 새 이정표를 세웠다는 기사가 인터넷에 올라왔다. 물론 이 큐비트 수는 물리적인 큐비트 수일 뿐, 논리 큐비트 수는 아니라서 실제 정보 처리량은 훨씬 줄어든다. 예를 들면 1개 큐비트의 정보를 처리할 때 오류정정을 위해 9개의 큐비트를 사용한다면 127큐비트 양자 컴퓨터라도 실제 정보 처리량은 대략 12큐비트 양자 컴퓨터의 성능을 발휘한 게 된다. 노이즈가 심하거나 더욱 정확성을 기하려면 오류정정에 더 많은 큐비트를 할당해야 하므로 기대한 것보다 훨씬 못 미치는 성능을 낼 수도 있다는 얘기다. 이는 앞으로도 개선의 여지가 크고 그 발전 가능성은 무궁무진하다고 볼 수 있다. 이런 시기에 양자 컴퓨팅의 명저를 번역할 수 있어서 무척 기쁘다. 출간 22주년 한국어 기념판격인 이 번역서에는 그동안 원서에서 보고된 오류에 대한 정정 사항을 모두 적용해 넣었다. 번역 용어는 이 책을 보는 독자들이 대개 영문 원서나 영문 논문을 참조할 것이므로 영문 용어를 쉽게 유추할 수 있거나 그대로의 용어를 선택하고 각주에 그에 대한 교재 용어를 추가했다. 한 예를 들자면, code와 encoding에 대해 정보이론 교재에서는 '부호'와 '부호화'라고 번역하지만 이 책에서는 '코딩'과 '인코딩'으로 원어 그대로의 용어를 사용했다. 각 장의 '역사와 추가자료' 절에는 역사와 함께 참고자료를 체계적으로 잘 정리해둬 독자들에게는 보물을 얻은 느낌을 주리라 믿는다. 역자는 '역사와 추가자료' 절만으로도 행복한 느낌을 받는다. 아무쪼록 독자가 이 책을 바탕으로 우리나라의 양자 컴퓨팅 발전에 크게 기여하기를 바란다.
게임 제작에서 많은 중복 코드를 줄이는 것은 개발자들의 수고를 덜 뿐만 아니라 자질구레한 일에서 해방시켜 더 많은 시간을 창조적인 작업에 힘쓰게 해준다. 맵의 자동 생성, NPC 동작, 아이템 랜덤 발생과 조합 등이 좋은 예라고 할 수 있다. 이러한 자동화 기법은 최근에 인공지능과 결합되면서 엄청난 잠재력을 보여준다. 그런 자동화 기법 중에서 절차적 콘텐트 생성(PCG) 기술은 과거 RPG 게임에서부터 게임 개발자들이 널리 애용해 온 것이다.
하지만 PCG 기술에 대해 변변한 서적이 없고 문서로는 C/C++에 편중돼 있는 데다가 인터넷에서는 단편적인 정보들이 여기저기 흩어져 있어 전반적인 PCG 지식을 얻기까지 언어 장벽과 함께 시간과 노력이 크게 들 수 밖에 없었다. 이제 이렇게 한 권의 책으로 유니티 개발자들에게 전할 수 있어 이 역자는 기쁘게 생각한다.
독자가 생소하게 느낄 만한 전문용어에 대해서는 주석을 달아 놓아 손쉽게 관련 용어를 접하게 했다. 이 책으로 PCG 기술을 습득해 자신의 게임에 멋진 기능을 구현하길 바란다. 아울러 게임 제작에 대한 사고의 틀이 더욱 넓어질 것을 기대한다.
최근 갑작스럽게 데이터 양이 증가해 시스템이 먹통이 되는 뉴스를 종종 접할 수 있다. 얼마 전, 경주에서 발생한 지진으로 카카오톡 사용량이 급증해 장애가 발생한 사태도 일어났었다. 한 예로 들었지만 그만큼 트래픽과 데이터 급증은 언제든지 발생할 수 있는 문제다.
다량의 데이터를 처리하기 위해서는 좀 더 많은 컴퓨터를 이용해 분산 컴퓨팅을 수행할 수밖에 없다. 게임과 인공지능 등의 분야에도 분산 컴퓨팅은 필수가 되었다. 하지만 프로그래밍 언어에 따라 분산 컴퓨팅 구현이 상당한 복잡하고 어려울 수도 있다. 소수의 전문가 영역이기도 했으나 고성능 PC와 네트워크 기술의 발달로 이제 그 문턱이 낮아졌다. 이런 때에 파이썬의 분산 컴퓨팅을 소개하는 이 책을 번역하게 돼 아주 기쁘게 생각한다. 책의 적은 분량으로도 핵심적인 부분들을 두루 다룬 저자의 필력에 감탄하면서 번역했다.
파이썬 독자라면 이 책에서 짧은 시간 내에 분산 컴퓨팅을 파악하고 바로 적용해 나갈 수 있는 힘을 찾을 것이다. 특히 6장은 파이썬의 확장력을 잘 보여주는 좋은 장이다. 분산 컴퓨팅의 안내서로써 우리나라 독자들에게 큰 도움이 되리라 여긴다.
자연어 처리는 인공지능과 맞물려 현대 생활의 중심으로 들어오고 있다. 광고에는 사람의 말을 알아듣는 제품이 등장하고, 시중에는 말로 제어하는 가전기기가 출시돼 있다. 인간형 로봇의 경우에는 인간과 의사소통을 하기 위해 자연어 처리가 필수다. 이제 컴퓨터 관련 분야에 종사하거나 관심 있는 사람들이 자연어 처리를 알아야만 하는 상황이 된 것이다.
하지만 자연어 처리는 복잡한 영역이라 아주 많은 자료가 존재하며, 학습자가 자연어 처리를 익히려면 여기저기 발품을 팔아야 하는 실정이다. 저자는 그런 현실을 깨닫고 한 권의 책으로 파이썬 자연어 처리의 전반을 이해할 수 있도록 집필했다.
한정된 지면에 많은 지식을 넣기 위해 저자는 링크를 활용했다. 안내서로의 역할도 충분해서 독자가 해당 링크를 방문해 학습한다면 이 책 한 권으로 여러 권 분량의 지식을 쌓는 성과를 얻을 수 있다. 생소하게 느낄 수도 있는 전문용어에는 주석을 달아 손쉽게 관련 용어를 이해할 수 있게 했다. 이 책에서 익힌 지식을 한국어 자연어 처리에 잘 응용할 수 있기를 바란다.
스위스 제네바 소재 유럽입자물리연구소에 근무하던 팀 버너스리(Tim Berners-Lee)가 1989최근 우리나라에 보안 사고가 끊이지 않고 있다. 은행과 통신사를 비롯한 기업체에서 개인에 이르기까지 자료 유출과 훼손은 그 심각성에도 불구하고 잊을 만하면 터져 나온다. 비단 우리나라에 국한된 것도 아니다. 이 글을 작성하는 지금도 TV 뉴스에서 미국 소니 픽처스의 보안이 뚫려 미개봉작들이 유출된 소식이 흘러나오고 있다. 각 업체는 앞다퉈 보안을 강화하고 있지만 쉽사리 완벽한 대비를 못하고 있다. 공격자는 어떻게든 새 방법을 동원해 허점을 찾으려 하기 때문에 프로그램 개발자는 조금도 방심할 수 없는 입장이다.
이런 때에 이 책을 번역하게 돼 기쁘게 생각한다. 이 책의 저자인 시코드는 현업에서는 물론이고 인터넷에서도 보안 전문가로 명성이 높다. 그가 시큐어 프로그래밍을 위한 제반 사항을 한 권의 책에 담으려 노력한 흔적이 곳곳에 보인다. 이 책의 내용은 프로그래밍에 어느 정도 경험이 있는 독자를 위한 것으로, 프로그래밍 초보자가 보기에는 어려운 부분들이 더러 있다. 하지만 프로그래밍 걸음마부터 안전한 프로그래밍 습관을 들이는 것이 중요하다는 점에서 프로그래밍을 시작하는 초보자도 이 책을 곁에 두길 권한다. 어느 수준의 독자가 이 책을 읽든 프로그램 보안 참고서로 활용한다면 그 가치를 충분히 해내리라 믿는다.
최근 기사에 따르면 React 기술을 원하는 기업주는 37%인데 비해 기술력을 갖춘 개발자는 19%에 불과하다고 한다(출처. http://www.itworld.co.kr/news/108020). 현장에서는 React 기술을 필요로 하는데 그만큼 이 기술을 갖춘 이가 적다는 뜻이다. 이 책의 필요성을 잘 대변해주는 말이기도 하다.
React는 페이스북과 인스타그램의 UI를 위해 만들어진 자바스크립트 라이브러리지만 이제는 웹 개발에 갖춰야 할 기술로 확대되고 있다. 특히 저작권 문제를 해결한 16버전부터는 React 16이라는 새 제품명으로 더욱 사용자층을 넓혀갈 것이다. 이 책으로 국내 개발자들이 React 16을 빠르게 접할 계기를 만들어줄 것으로 생각한다.
1장은 React를 처음 대하는 독자를 어리둥절하게 만들 수 있다. 사실 1장은 기존에 React를 사용해 온 독자를 위한 장이다. 따라서 2장에서 시작해도 좋을 것이다. 독자가 생소하게 느낄 만한 전문 용어에 대해서는 주석을 달아 놓아 손쉽게 관련 용어를 접하게 했다. 이 책으로 React 기술을 습득해 자신의 웹 개발에 멋진 기능을 구현하길 바란다. 아울러 React 활용에 대한 사고의 틀이 더욱 넓혀질 것을 기대한다.
이 책을 쓴 아담 보두치는 일전에 내가 번역한 『React 16 핵심 정리 2/e』의 공저자이기도 하다. 그래서 이 책을 번역하는 내내 이전 책을 이어서 번역하는 느낌을 받았다. 내용도 자연스레 이어져 있어서 React 16에 관심이 있는 독자에게는 또 하나의 좋은 책이 될 것이다.
'React 16 Tooling'이라는 제목 그대로 도구 활용에 초점을 맞춘 책이다. 저자가 말했듯 어떤 기술도 도구가 있어야 한다. 물론 도구 없이도 작업을 진행할 수 있지만, 도구를 사용할 때와 비교하면 땅과 하늘 차이다. 이런 점을 알기에 React 16을 뒷받침하는 도구들을 독자에게 소개한다는 기쁨을 갖고 즐겁게 번역할 수 있었다.
독자가 생소하게 느낄 만한 전문용어에 관해서는 주석을 달아놓아 손쉽게 관련 용어를 접하게 했다. 이전 번역서인 『React 16 핵심 정리 2/e』의 서문에서 밝힌 바와 같이 기사에 따르면 React 기술을 원하는 기업주는 37%인 데 비해 기술력을 갖춘 개발자는 19%에 불과하다고 한다(http://www.itworld.co.kr/news/108020). 이 책을 통해 React 16 기술을 더욱 탄탄하게 갖춰 어디에서나 환영받는 인재가 되길 바란다.
모바일 기기는 웹 환경을 폭발적으로 성장시키는 데 큰 기여를 했다. 이런 상황은 웹을 통한 서비스를 다양하게 만들었고 웹 제작은 그만큼 복잡해졌다. 따라서 웹 개발자는 훨씬 더 많은 일을 떠맡게 됐다. 이럴 때 힘들게 일하고 싶은 사람은 없을 것이므로 RESTful API와 장고 등의 웹 프레임워크의 출현은 불가피했을 것이다.
이 책은 지금까지 힘들게 웹 작업을 했던 개발자들에게 희소식을 알려주는 책이다. REST란 단어는 표현 상태 전송을 뜻하는 'REpresentational State Transfer'의 약어인데 여기에 형용사를 만드는 접미사 'ful'을 붙여 RESTful로 불렀다. 영단어인 'restful'를 흉내 낸 것이며 단어 의미 그대로 '편안한' 웹 서비스를 만들 수 있게 하는 API인 것이다.
이 책에서는 파이썬으로 장고, 플라스크, 토네이도라는 웹 프레임워크를 사용해 RESTful 웹 서비스 제작을 쉽게 해주는 방법을 알려준다. 현재 시점에서 국내 출판 도서로는 장고에 관한 책이 더러 눈에 띌 뿐 이렇게 3개의 웹 프레임워크를 한꺼번에 다룬 책은 없다. 따라서 3개 프레임워크 간의 차이를 파악할 수 있고 확고한 개념이 정립돼 있지 않은 국내 독자에게는 더 없이 좋은 책이 될 거라고 믿는다.