알라딘

헤더배너
상품평점 help

분류

이름:김세중

최근작
2018년 1월 <직접 해보는 텐서플로를 이용한 딥러닝>

유니티 4 게임 프로그래밍

PC가 게임 시장의 주도권을 아케이드 게임기에서 뺏어왔듯이, 이제는 모바일 기기가 그 주도권을 가져오고 있다. 수많은 게임이 모바일로 쏟아져 나오고 PC 게임 못지않게 많은 수익을 얻고 있기도 하다. 이러한 모바일 게임 시장에서 제1의 엔진을 꼽자면 단연 유니티 3D라고 할 수 있다. 유니티 3D는 그 압도적인 편리함으로 대부분의 3D 모바일 게임 개발에 이용되며, 최근 들어서는 2D 게임에도 유니티 엔진을 도입하고 있다. 이러한 추세에 맞추어 유니티도 2D 기능을 지속적으로 강화하고 있으니 유니티 엔진의 독주는 당분간 계속될 것으로 보인다. 유니티 3D는 편리한 C# 환경 위에서 개발을 하고 그 결과물을 PC와 안드로이드, iOS 등 대부분의 플랫폼에서 실행할 수 있다는 장점이 있다. 또한 아티스트 친화적인 통합 UI를 제공하며, 엔진 자체가 리소스 제작 방법을 몇 가지로 강제하고 있어서 엔진 활용의 자유도는 떨어지는 대신 매우 빠르게 배울 수 있다. 프로그래머에게도 각 플랫폼마다 따로 개발하는 수고로움을 어느 정도 덜어준다. 유니티 3D는 모바일 게임 시대 이전부터 꾸준히 개발되어 왔으나, 그동안은 큰 인지도를 얻지 못하다가 모바일 시장이 커짐에 따라 급격히 발전했다. 따라서 활용해야 하는 곳은 많은데 정작 숙련된 사람은 그렇게 많지 않은 것이 현실이다. 그렇다고 엔진에 익숙해지기 위해 맨바닥에서부터 시행착오를 거치며 학습하는 방법을 택하기엔 시간이 너무 많이 든다. 이 책은 그런 사람을 위해 유니티 3D 엔진을 사용함에 있어 흔하게 맞닥트리는 상황과 그 해결법을 간단히 제시한다. 따라서 유니티 3D에 익숙해지고 싶은 독자는 이 책을 한 번 쭉 훑어보고, 실제로 개발하는 도중에 문제가 발생하면 책의 내용을 참고하며 실마리를 얻을 수 있을 것이다. 즉 한 번 보고 말 것이 아니라, 항상 가까이에 두고 뒤져보기에도 좋은 책이다. 나는 실제로 유니티 3D를 이용해 게임을 개발했으며, 지금도 나날이 발전하는 기능을 놓치지 않고 이용하고자 노력 중이다. 이 책이 유니티 3D를 사용하려는 사람과 이미 이용 중인 초심자에게도 도움이 되기를 바란다. 김세중, 전성빈

유니티 5 가상현실 VR 프로젝트

이 책이 한국에서 출간된 2016년 현재, 가장 뜨거운 IT 분야라면 단연 가상현실(VR)/증강현실(AR)과 AI를 들 수 있다. 가장 뜨겁다는 것은 곧 식을 것이라는, 즉 이미 시장에 뛰어들기에는 늦었다는 뜻으로 받아들여질 수도 있겠다. 하지만 VR은 한순간의 유행으로 끝날 만한 분야는 아니므로, 이 책을 이제서야 접한 독자들도 늦었다고 볼 수는 없다. 사람들이 좀 더 현실적인 것을 원하는 덕분에 사각형 화면 안에서 표현되는 그래픽 수준은 점점 발전해왔다. 그런데 아예 그 사각형 화면조차 깨부수려 하는 것이 바로 VR이다. 이 흐름은 막을 수 없으며 VR을 위해 머리에 뒤집어 써야 하는 기기가 좀 더 가벼워질수록, 해상도가 좀 더 올라갈수록, 가격이 좀 더 내려갈수록 VR은 급격히 대중화될 것이다. 아직 VR 기기가 많이 보급되지 않은 점을 이유로 정말 VR 산업이 유망할지 고민하고 있다면, 실리콘밸리의 투자자들이 어디에 투자하고 있는지 확인해보면 될 것이다. 사실 딱히 고민할 필요도 없이, 투수나 타자, 또는 포수의 시점에서 보여주는 야구 중계 방송만 떠올려봐도 이 분야가 절대 쉽게 무너지지 않을 영역임을 짐작해볼 수 있다. 이 책은 그 편의성 덕분에 현재 가장 널리 쓰이는 유니티 엔진을 바탕으로 미래 산업이 될 VR을 다룬다. 이 책의 내용을 바탕으로 독자들이 자신만의 작은 VR 게임을 만들어봐도 좋고, 관련 직종에 취업해도 좋다. 중요한 것은 이 책이 미래 산업을 자신의 손으로 일구어 내는 첫걸음이 될 수 있다는 사실이다. 물론 이 책 하나만 읽고 미래를 선도할 수는 없을 테니 다른 책도 많이 읽으면서 스스로 열심히 공부해야 할 것이다.

유니티 NGUI 게임 프로젝트

최근 대부분의 모바일 게임은 유니티 3D 엔진으로 개발되고 있다. 그리고 모든 게임에는 유저 인터페이스(UI)가 들어가고, 그 인터페이스를 만드는 데 가장 많이 쓰이는 라이브러리가 NGUI다. 따라서 NGUI를 공부하는 것은 모바일 게임을 만들기 위해서는 필수라고 볼 수 있다. 유니티 3D에 기본으로 탑재된 GUI 시스템은 매우 후진적이고 납득할 수 없을 정도로 효율이 낮았다. 물론 유니티 테크놀로지스 사도 이 문제를 인지했기 때문에 최근에 유니티 GUI를 새로 정비하면서 많은 개선을 보인 것이 사실이다. 하지만 기본으로 제공되는 GUI 시스템은 개선을 위해서 엔진 업데이트를 기다려야 하고, 실제 게임 라이브 서비스 중에는 고작 GUI 기능 개선 때문에 엔진을 쉽게 업데이트할 수 없는 상황이 많다. 유니티 기본 GUI 시스템이 지속적인 업데이트를 하는데도 여전히 NGUI가 인기를 끄는 이유라고 볼 수 있다. UI 분야는 사람들이 흔히 기피하는 분야로, 신입 프로그래머와 아티스트에게 업무가 주어지게 된다. 하지만 UI는 게임에서 엄청난 부분을 차지하는 영역으로서 그저 하기 귀찮다거나 쉬운 작업이라고 하찮게 여기면 좋은 게임을 만들 수 없다. 따라서 UI 프로그래머와 아티스트는 스스로의 일에 자긍심을 갖고 조금이라도 더 나은 UI를 만들기 위해 노력해야 한다. 무엇보다도 라이브러리에 대한 지식을 습득하고 많은 게임을 해보는 것이 중요하다. 이 책은 NGUI를 처음 배우는 사람부터 실제 프로젝트에 NGUI를 사용하는 실무자까지 다양한 문제를 해결할 수 있도록 도움을 준다. 이 책은 따라하기 형태로 구성되어 있기 때문에 초심자가 아니라면 한번 훑어보고 문제가 생겼을 때 목차에서 해당 컴포넌트를 설명하는 페이지를 찾아서 읽는 식으로 이용하면 될 것이다. 이 책이 NGUI를 배우거나 더 잘 이용하고 싶어 하는 독자들에게 도움이 되기를 바란다.

직접 해보는 텐서플로를 이용한 딥러닝

세계는 지금 비트코인 광풍에 휩싸여 있다. 이제라도 남들에게 뒤처지지 않고 미래의 화폐를 확보해야 한다는 강박감과 저금리 기조로 적절한 투자처를 찾지 못했다는 이유로 (기존 투자 방식은 어렵고, 그보다 더 어려우며 한 치 앞을 알 수 없는) 가상 화폐에 돈을 쏟아붓고 있기 때문일 것이다. 이렇게 너나 할 것 없이 격렬한 몸부림을 치며 미래를 맞이하는 현재, 공학도는 어떤 방식으로 미래를 준비할 수 있을까? 단언컨대 인공지능이 미래이며, 그 미래를 준비할 수 있는 유일한 수단이다. 일반인들이 모래 위에 성을 쌓고 있는 현재, 인공지능 학계와 업계는 자의든 타의든 다음 시대로 나아갈 토대를 쌓고 있다. 새로 올 시대가 어떻게 작동하고 발전할 수 있을지 이해하고, 또 이에 동참할 수 있을지는 바로 지금 인공지능 공부를 시작했는가, 하지 않았는가로 나뉠 것이다(물론 하더라도 안 될 수도 있다). 이는 과도하고 과격한 생각이라고 여길 수 있다. 하지만 이 책을 통해 인공지능을 시작하고, 하나씩 공부하다 보면 아마 나와 같은 생각을 하게 될 것이라 믿는다. 이미 실용화된 알고리즘과 계산기만으로도 간단한 작업은 만족스럽게 해내는 것이 인공지능이다. 여기서 간단한 작업은 인간이 1초 이내에 할 수 있는 것을 의미하는데, 각 행위를 적절하게 쪼개 생각해보면 사람이 1초 이상 생각해야만 할 수 있는 일은 그렇게 많지 않다. 따라서 단순 반복 작업을 하는 직업은 생각보다 빠르게 사라질 것이다. 정부가 법안을 통해 그 속도를 조금 늦출 수는 있겠으나, 인공지능으로 완전히 대체될 것이다. 물론 그때쯤이면 기술은 더욱 발전해, 단순 반복 이상의 일도 인공지능이 해내게 될 것이다. 결국 인공지능 스스로 발전하는 단계가 되면 흔히 말하는 기술적 특이점에 도달한 것이며, 인간은 과학 기술을 마법으로 여기게 될 것이다. 이 책으로 처음 접하는 사람은 책에 나온 예제만으로도 인공지능을 마법이라고 느낄 수 있다. 이제 인공지능의 매력으로 빠져보자. 우리는 텐서플로라는 걸출한 라이브러리를 쓸 것이고, 학계도 텐서플로를 많이 사용하고 있으므로 쉽게 시작하고 빠르게 결과를 낼 수 있을 것이다. 학습이 더 잘되는 새로운 패러다임은 학계에서 열심히 찾을 테니, 우리는 응용에 집중할 것이다. 따라서 우리에게 가장 중요한 것은 양질의 데이터를 수집하는 것이다. 책에서는 공개된 데이터를 사용하겠지만 실제로 독자나 독자의 회사에서 인공지능을 통해 가치를 창출하려면 보통 남들은 갖고 있지 않은 좋은 데이터를 많이 갖고 있어야 한다. 인공지능이 말은 많이 나오고 있지만, 실제로는 IT 회사에서도 데이터를 제대로 이용하고 있는 경우가 많지 않다(특히 로그). 아직 기회는 무궁무진하다고 볼 수 있다. 이 책을 통해 좀 더 많은 사람이 인공지능에 매료돼 열심히 연구, 개발해 미래 사회가 더 빨리 오기를 바란다. 넘치는 생산을 구시대적이고 비효율적인 분배로 낭비함으로써 충분히 누릴 수 있음에도 그러지 못하고 살아가는 사람이 더 이상 없는 사회, 그 사회로의 빠른 진행은 여러분의 손에 달려있다.

HLSL 프로그래밍

3D 궁극적으로 지향해야 하는 목표는 언제나 한결같았다. 3D 프로그램으로 현실과의 차이가 최대한 적도록 시뮬레이션하는 것이다. 과거 고정 파이프라인을 쓰던 시절에는 현실적인 한계를 뛰어넘기가 불가능에 가까웠으나, 셰이더란 개념이 등장한 이후 어느 정도 의도한 바를 구현할 수 있다. 즉, 3D 프로그래머의 목표는 이러한 기술을 활용해 가능한 자원 내에서 최대한 아름다우며 현실적인 그래픽을 뽑아내는 것이다. 존 카멕부터 시작된 응용 3D 프로그램의 영역은 해가 지나며 급격히 발전해왔다. 계속해서 성능이 곱절로 뛰는 그래픽 카드가 나왔고, 기능 또한 풍부해져 게이머들은 나날이 향상되는 그래픽에 환호성을 보냈다. 그때에 비하면 최근의 그래픽 하드웨어는 기술적 정체를 겪고 있다. 게다가 그래픽이 좋은 게임에 대한 게이머들의 눈높이도 높아져 현실적인 그래픽을 추구하는 게임은 높은 개발비로 인해 점점 줄어들고 있는 실정이다. 이런 답보 상태를 넘어서기 위해 아예 버텍스, 지모에트리, 프래그먼트 셰이더 구조를 프로그래머블하게 만들려는 시도가 있기는 하지만, 전망은 매우 불투명하다. 그런데 이를 바꿔 말하면 중소규모의 게임을 만들기 위해서는 하드웨어의 성능을 전부 끌어다 쓸 필요가 없다는 뜻이다. 즉 현실적으로 우리는 주어진 한도 내에서 최대한 완벽한 화면을 구현하는 것을 목표로 삼으면 된다. 이 책이 도움을 줄 수 있다면 바로 이 부분이다. 이 책은 독자들이 DirectX에 대한 기본적인 지식은 갖고 있다고 가정한다. 즉 모델과 텍스처를 불러와 그래픽 카드에 밀어 넣는 방법을 알고 있는 중급 이상의 프로그래머들을 대상으로 쓰여졌다. 초심자에게는 HLSL 기초 서적을 참고한 후 읽어보는 것을 추천한다. 아예 경험이 없다면 상용 3D 엔진을 사용할 것을 추천한다. 자체 엔진을 개발해 사용하는 경우가 점점 줄어들고 있기 때문이다. 그러나 이 책에서 설명하는 내용이 불필요하다는 것은 아니다. 다른 3D 엔진을 통해 개발할 경우 HLSL보다 더 쉽게 개념을 적용해볼 수 있다는 뜻이다. 이 책이 HLSL을 사용함에 있어 고급 단계로 진입하고자 하는 독자들에게 도움이 되기를 바란다.

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