알라딘

헤더배너
상품평점 help

분류

이름:김성훈

국적:아시아 > 대한민국

최근작
2024년 3월 <그림으로 배우는 스프링 6 입문>

28일 동안 배우는 리눅스 서버 관리

이 책의 원서는 원래 CentOS5.5를 기준으로 한 서버 관리자를 위한 입문서였다. 하지만 책을 처음 만난 시점에서 이미 대대적으로 버전 업이 된 상태라, 책을 옮기면서 내용을 6.4 이후 버전에 맞추기 위해 변경된 부분이 적지 않다. 우선 원서와 달라진 점 몇 가지를 들어 본다. 원서에는 각 서버 설치 시 설정 내용을 테스트할 수 있는 유틸리티가 제공되지만, 버전 차이로 제대로 동작하지 않는 부분이 있어 이 책에서는 사용하지 않았다. 테스트 프로그램을 사용할 수 없게 된 것은 조금 아쉬운 부분이다. 또한, 너무 오래되어 찾기 어렵고 국내에서 좀처럼 사용하지 않는 설정 자동화와 관련된 패키지 설명은 빼고, 더 일반적인 방법으로 설명했다. 참조 URL이 바뀐 부분을 바로 잡았고 패키지나 유틸리티가 버전이 달라져서 설치 방법이나 설정 내용이 달라진 곳은 그에 맞게 변경했다. 메일 서버 부분은 추세에 따라 postfix 관련 내용을 새로 추가했다. 끝으로 새로 공개된 CentOS7 설치 방법과 변경점을 간략하게 덧붙였다. 번역서임에도 여러 가지 사정에 의해 이런 차이점이 생기게 되었지만, 운영체제 설치, 서버 설정, 보안, 가상화 등 폭넓은 주제를 따라 가면서 기본 기술과 고급 기술을 자연스럽게 익힐 수 있게 한 저자의 의도는 대부분 살려냈다. 여전히 이 책은 28일의 학습 기간이 설정되어 있고, 그 사이에 몇 번씩 운영체제 설치 및 서버 설정을 반복하게 된다. 실제로 공부하면서 실습하기에는 약간 빠듯한 시간으로 느껴지지만, 직접 해보니 힘들더라도 역시 반복 학습 이외에 기술을 익힐 수 있는 다른 방법은 없는 것 같다. 비록, CentOS7이 나온 시점이긴 하지만 유닉스/리눅스 서버 기술의 뿌리는 깊다. 지금까지 사용되던 것이 하루 아침에 사용하지 못하게 되는 일은 없다. 이 책으로 충분히 연습하고 기술을 이해한 후, 새 버전에 적용해 보는 것도 새로운 도전이자 좋은 연습이 될 수 있을 것이다.

3D 게임을 움직이는 수학과 물리

인연이 있어서 『24가지 예제로 배우는 게임 수학 & 물리 입문』 (길벗, 2014)의 3D 버전을 또 번역할 기회가 생겼다. 이 책은 전작처럼 3D 게임 개발에 사용하는 실용적인 기능이나 효과를 먼저 주제로 제시하고, 이것을 구현하는 데 필요한 수학 이론을 어떻게 접목하는지 설명한다. 기본적으로 이전과 같은 스타일로 코드를 싣고 식을 덧붙여 설명한다. 개인적으로는 전작의 이 구성이 꽤 마음에 들었기에 안정감 있게 번역 작업을 진행할 수 있었다. 3D 게임 프로그래밍에서 수학의 중요성을 더 말해 무엇할까. 이 책을 선택한 독자 여러분이라면 아마도 그 중요성을 누구보다도 더 많이 느끼고 있을 것이다. 이 책을 잘 활용하는 방법은 전작과 같다. 무엇을 할 수 있는지, 무엇을 할 것인지 주제를 분명하게 인식해서 스스로 필요성을 느낀다면 학습 효과는 더 높아진다고 한다. 그런 의미에서 각 장을 학습할 때 미리 예제 파일을 실행해보기를 권한다. 이번에도 역시 학습은 원하는 부분부터 시작해도 좋다. 하지만 7장에 정리한 수학 이론을 먼저 보고 전체적으로 쭉 정리해서 개념을 잡는 학습 방법을 추천한다. 독자 입장에서 3D 게임 그래픽에 꽤 중요한 사원수가 빠졌고, 예제에서 사용하는 라이브러리가 조금 오래되었다는 점은 조금 아쉽다. 기본적으로 더 알아야 할 내용에 초점을 맞추어야 했었을 것이므로 어쩔 수 없는 선택이었으리라 여겨진다. 예제를 컴파일해 확인할 때 처음 학습하는 사람은 프로젝트 설정 등이 약간 어려울 수 있으니 부록의 개발 환경 설정을 참고하자. 아울러 번역 과정에서 모든 예제는 Visual Studio 2015 Community와 윈도 10 환경에서 컴파일하고 확인했다.

만들면서 배우는 인터프리터

번역할 책을 받아 들고 문득 어린 시절 컴퓨터를 배우던 때가 생각났습니다. 그때 처음 배웠던 언어는 BASIC이었는데, 화면에 원하던 결과가 표시되는 재미에 시간이 가는 줄도 모르고 한 줄 한 줄 코드를 입력하고 바꿔보고 시험하길 되풀이했습니다. 그러면서 한편으로는 내가 입력한 프로그램을 어떻게 컴퓨터가 알아듣고 실행해주는지 궁금했습니다. 이처럼 프로그래밍을 접해본 사람이라면 한 번쯤 자신이 입력한 프로그램을 해석하고 실행해주는 '프로그래밍 언어'가 어떻게 만들어졌는지 궁금해한 적이 있을 겁니다. 그리고 자신이 만든 언어로 컴퓨터와 대화해보고 싶다는 생각을 해본 사람도 있을 겁니다. 이 책은 그런 분들을 위해 프로그래밍 언어 개발에 꼭 필요한 부분만을 추려내 설명함으로써 언어의 구조와 동작 방식을 이해할 수 있게 도와줍니다. 특히, 프로그래밍 언어 개발 서적 중에선 드물게 인터프리터 언어에 대해 다루고 있어, 컴파일러 방식 언어보다 고려해야 할 사항이 상대적으로 적어 수월하게 학습을 진행할 수 있다는 게 이 책의 특징입니다. 또한, 실행 가능한 완전한 소스를 제공하고 개발에 필요한 사고 방식과 구현 방법을 설명하므로 소스 코드를 통해 전체적인 모습을 파악하면서 학습을 진행할 수 있습니다. 저자의 말처럼 이 책에서 만들어갈 언어는 단순한 사양이지만 기본적으로 필요한 기능들은 제대로 갖추고 있습니다. 학습 과정을 통해 프로그래밍 언어의 구조와 동작 방식을 이해한다면 좀 더 효율적인 응용 프로그램 작성에도 도움이 되리라 생각합니다. 개인적으로는 지금까지 막연하게 '언젠가 공부해보고 싶다'고만 생각했지 어디서부터 시작해야 할지 몰랐던 프로그래밍 언어 개발을 이 책을 통해 간접적으로나마 체험해볼 수 있었던 것은 번역 과정에서 얻은 커다란 수확입니다. 평소에 프로그래밍 언어 개발에 관심을 가지고 있는 독자라면 자신만의 프로그래밍 언어 개발에 필요한 지식과 유익한 경험을 얻으실 수 있으리라 믿습니다. 끝으로 부족한 원고를 꼼꼼하게 교정하고 좋은 책으로 만드는데 수고해주신 모든 분들께 감사 드립니다. _2012년 9월 김성재

스프링3 입문

자바로 프로그래밍을 시작했지만 스프링 서적이 국내에 나오기 시작할 즈음에는 자바에 관련된 일을 거의 하지 않게 되었다. 그래서 약간의 아쉬움이 섞인 기억, 이것이 내가 가진 스프링에 관한 가장 오래된 기억이다. 솔직히 그땐 스프링이 이렇게까지 영향력 있는 프레임워크가 되리라고는 예상하지 못했다. 그 후로 관심을 가지고 공부해보고 싶었지만 용어도 생소하고 왠지 쉽게 다가갈 수 없는 벽 같은 것이 느껴져 그 관심이 지속되지 못했다. 지금 생각해보면 스프링이 단순하고 유연한 프레임워크라지만 제대로 적용할 수 있을 만큼 학습하려면 어느 정도 시간이 필요했었는데 아마도 너무 쉽게 보고 조급하게 접근한 탓일 것이다. 번역을 마치고 나서 느낀 점은 스프링은 핵심 기술을 이해하는 것도 중요하지만 왜 그렇게 해야 하는지 왜 그 기술이 등장했는지에 대한 이해도 중요하다는 것이다. 그리고 생각하고 공부해야 할 것들이 참 많다는 사실도 절실히 느꼈다. 이 책은 웹 애플리케이션 프로그래밍을 갓 배운 초보 엔지니어를 대상으로 하는 입문서다. 하지만 저자가 언급한 것처럼 무작정 따라하기 식으로 소스 코드를 복사해 넣는다고 뭔가를 완성할 수 있는 책은 아니라서 초보자에게 어려운 부분도 있다. 그렇지만 시중에 나온 스프링 서적들이 어렵게 느껴진다면 선배의 입장에서 학습방향을 제시해 주는 이 책은 좋은 선택이다. 스프링 레퍼런스 북을 원한다면 이런 점이 마음에 들지 않을 수도 있겠지만 저자는 독자들을 단순한 프로그래머를 넘어선 곳으로 데려가고 싶어하는 것 같다. 그래서 책을 따라 학습하다 보면 이것저것 공부해야 할 것과 공부할 방향을 알려주려는 노력이 곳곳에서 보인다. 최근에 번역한 책들은 직접 해보고 싶었지만 여러 사정 때문에 해보지 못하고 지나쳤던 분야가 많다. 스프링 역시 그러한 분야 중 하나다. 그런데 이렇게 마음에 쏙 드는 책과 인연이 닿아서 또 한 번 미루어둔 숙제를 마칠 수 있다니 운이 좋다. 이 책이 독자에게도 꼭 도움이 될 수 있길 바란다.

실전 클라우드 VMware View 가상화

아주 오래 전에 근무하던 회사에서 도면 데이터 관리를 위한 파일 서버와 메일 서버 등을 구축한 적이 있습니다. IT 관련 회사가 아니라 담당 부서가 따로 없고 가르쳐주는 사람도 없었습니다. 그때마다 혼자서 자료를 구해 정말 어렵게 구축했던 기억이 납니다. 하지만 그것이 끝이 아니었습니다. 처음엔 순진하게도 구축만 해두면 편할 줄 알았는데, 두 층을 쓰고 있던 회사를 오르내리며 PC를 관리해야 했던 상황 자체는 달라지지 않았고 일은 더 늘어났습니다. 하지만 이 책에서 설명하는 내용을 실제로 따라해보면서, 예전에 PC와 네트워크 관리 업무에서 느꼈던 문제점의 많은 부분을 가상화를 통해 해결할 수 있음을 분명히 알 수 있게 되었습니다. 당시에 이런 가상화 솔루션을 사용할 수 있었다면, 개별적으로 뭔가를 설치해서 생기는 잦은 소프트웨어적 오류 해결, 바이러스 대책, 업데이트 등의 관리 문제와 운영체제 설치와 같은 단순하지만 많은 시간이 걸리는 문제들을 쉽고 빠르게 처리할 수 있었을 것입니다. 저자의 설치 상황과 완전히 동일하게 구성할 수는 없었지만, 책의 내용을 따라하는데 사용된 옮긴이의 컴퓨터 환경은 다음과 같습니다. - 하드웨어: 노트북 1대, ESXi 호스트용 PC 1대 (Q9550 코어2 쿼드, 메모리 8GB, 750G HDD) - 운영체제: 윈도우 7, 윈도우 2008 서버 R2 평가판 몇 년 된 컴퓨터지만 이 정도 환경이면 끝까지 무리 없이 따라해볼 수 있습니다. 테스트를 위해 메모리를 추가했고, 각각 평가판을 설치한 후 기본적으로 한글 언어팩을 설치했습니다. 끝으로 가상화 환경 구축, 각 운영체제 설치 등에 시간이 걸려 예상 외로 번역 기간이 길어졌는데도 끈기 있게 기다려주신 한빚미디어 최현우 과장님께 깊이 감사드립니다. 예전에 MCSE 공부할 때 빼고 이렇게 많이 컴퓨터 OS를 설치하고 서버 설정을 만져본 것은 오랜만이라 책을 마치고 나니 또 다른 성취감도 느낄 수 있었습니다. 감사합니다.

우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍

윈도 환경에 더 친숙해서인지 기본적인 C 언어 지식이 있어도 리눅스에서의 프로그래밍은 선뜻 다가서기 어려운 주제라고 생각했습니다. 그렇게 막연히 어렵게만 생각하던 리눅스 환경에서의 프로그래밍을 이 책을 옮기면서 경험해 볼 수 있었습니다. 이 책은 앞으로 리눅스 환경에서 C 프로그래밍을 해야 하거나 리눅스 프로그래밍을 경험해보고 싶은 사람에게 바로 도움이 될 수 있는 실용적인 내용으로 구성되어 있습니다. 특히 라이브러리를 활용한 접근 방식과 흥미롭고 적절한 예제 덕분에 뒤로 갈수록 지루하지 않고 학습하는 재미를 느낄 수 있었습니다. 또, 가볍게 리눅스 프로그래밍을 경험해볼 수 있는 좋은 예제들은 한정된 지면에서 가능한 한 치우침 없이 많은 분야를 다뤄 초보자의 부족한 경험을 채워주려는 저자의 의도를 느낄 수 있게 합니다. 또한 저자도 서문에서 언급하고 있듯이 라이브러리를 이용하는 개념 자체는 플랫폼을 가리지 않으므로 다양한 환경에서 책의 내용을 응용할 수 있습니다. 교과서처럼 이 책을 중심으로 학습하면서 살을 붙여가면 새로운 아이디어를 구현하는 데 도움을 받을 수 있으리라 생각합니다. 떠오르는 대로 적다 보니 옮긴이의 말이 이 책의 첫 리뷰가 되고 말았습니다. 끝으로 오랜 기간 기다려 번역을 맡겨주시고 원고를 꼼꼼히 체크해주시고 좋은 책으로 만들어지는 데 많은 도움을 주신 한빛미디어(주) 조희진 씨께 감사 드립니다.

유니티 네트워크 프로그래밍

지은이가 책에서 지적한 것처럼 저 역시 이 책을 읽기 전까지는 오프라인 게임에 통신 기능을 더하고 조금만 수정하면 온라인 게임이 만들어지는지 알고 있었습니다. 통신에 관해서는 프로그래밍을 배울 때 한 번씩 만들어보는 채팅 애플리케이션 정도의 네트워크 지식밖에 없었기에 떠올릴 수 있는 무지한 발상이었지요. 온라인 게임을 만들려면 여러 사람, 아니 단둘이 플레이하는 게임에서조차 얼마나 많은 것을 고려해야 하는지 이 책을 통해서 이제 조금 알게 된 느낌입니다. 이 책의 큰 특징은 책 제목에서도 알 수 있듯이 네트워크 게임 개발에 꼭 필요한 지식을 기초부터 튼튼하게 쌓아 올릴 수 있다는 점입니다. 당연히 유니티를 기반으로 설명되어 있지만, 꼭 유니티에만 적용되는 내용이 아니라 온라인 게임을 개발하고자 하는 모든 분에게 도움이 될 만한 내용입니다. 온라인 게임이 가진 근본적인 문제들을 이야기하면서 왜 온라인 게임은 게임 디자인 단계부터 달라야 하는지, 어떤 정보를 주고받아야 하는지, 어떻게 주고받아야 하는지를 비교적 통신 사양이 간단한 게임에서 시작하여 꽤 복잡한 게임까지 예를 들어 자세히 설명하고 있습니다. 먼저 학습해 본 학습자의 입장에서 볼 때 내용이 쉽지는 않지만, 반복해서 본다면 분명히 본격적인 온라인 게임을 개발하는 데 든든한 기반이 되어 줄 것이라고 생각합니다. 드디어 연이어 작업한 세 권의 유니티 게임 프로그래밍 책 중 마지막 권이 끝났습니다. 한동안 이 책과 함께 했던 탓인지 요즘은 게임을 할 때 “여기서는 이런 정보를 주고받고 있겠지?” “어떤 정보 가 동기화되고 있을까?”라고 상상하는 버릇이 생겼습니다. 이 책을 통해 독자 여러분이 하나라도 필요한 지식을 얻으실 수 있다면 옮긴이로서 가장 큰 기쁨이 될 것입니다. 마지막으로 번역 작업내내 제 길벗이 되어주신 이원휘 편집자님께 깊이 감사드립니다. 함께 일하면서 많이 배울 수 있었습니다! - 옮긴이 서문

R로 배우는 데이터 분석 기본기 데이터 시각화

어느덧 가을이 지나고 겨울이 성큼 다가왔습니다. 엊그제는 벌써 첫눈이 내리더군요. 추운 겨울바람을 맞고 나서야 오래 전에 맡아둔 책이 마무리되어 세상에 나오게 되었습니다. 내내 마음에 걸려 마음에 짐처럼 남았던 일이었는데, 해를 넘기기 전에 이렇게 매듭짓게 되어 무척 기쁩니다. 번역 작업을 하다 보면 잇달아 접하게 되는 책들이 어떤 분야와 관련하여 유행하는 기술이거나 서로 보완하는 책일 때가 있습니다. 예를 들어 아이폰이 국내에 들어오고 한동안 xcode 환경에서의 앱 개발이나 모바일 기기의 성장에 따른 전자책 제작이나 업무 활용에 관한 책이 많이 나왔습니다. 당시 저 역시도 그런 종류의 책을 번역했습니다. 그리고 비교적 최근에 번역했던 기계학습, 빅데이터 관련 서적과 이 책에서도 그런 연관성을 느낄 수 있었습니다. 매순간 어마어마하게 만들어지는 정보의 홍수 속에서 오늘날 데이터 분석과 통계, 그리고 그 데이터에서 새로운 의미를 찾아내는 데이터마이닝의 중요성은 점점 커지고 있습니다. 오픈소스로서 무료로 제공되는 R은 이런 통계 분석, 시뮬레이션 등에 뛰어난 소프트웨어입니다. 부끄럽지만 전 이 책을 접하기 전까지 통계니 분석이니 하는 건 이공계 분야에서나 쓰는 거라는 편견이 있었을 정도로 이 분야와 R에 관해 잘 모르고 있었습니다. 이 책을 통해 R에 대해 알게 되고 코드를 하나하나 따라해 보기 시작한 지 이제 겨우 일 년 남짓 된 정도지만 이 책의 특징을 조금 이야기해 보겠습니다. 이 책은 저자가 R을 공부하면서 인터넷에 공개한 자료를 다시 정리해서 책으로 엮어낸 것으로 크게 입문편과 팁편으로 나뉘어 있습니다. 저자는 자신이 공개했던 방대한 자료들을 집필 의도에 맞게 훌륭하게 재구성했습니다. 또한 학습 목적을 목차 항목에 그대로 반영해서 어느 정도 익숙해지면 목차를 사전처럼 사용할 수 있게 하여 학습 편의성도 높였습니다. R을 처음 다루는 사람도 쉽게 접근할 수 있는 간단한 계산을 시작으로 흥미를 유발할 수 있는 예제로 채워져 있으므로 따라 하다 보면 어느새 자연스럽게 R 프로그래밍에 익숙해질 것입니다. 무엇보다 구체적인 예제를 통해 직접 코드를 실행하고 곧바로 눈으로 확인할 수 있는 점은 학습하는 입장에서나 번역하는 입장에서 재미를 더해 주는 큰 장점입니다. 실제로 비전공자인 저도 번역을 하는 과정에서 모든 내용을 실습해 볼 수 있었고 결과를 바로 확인할 수 있어서 지루하지 않게 번역을 마칠 수 있었습니다. R을 새롭게 배우고자 하시는 분들도 아마 저와 비슷한 경험을 하실 수 있으리라 생각합니다. 현재 시중에 나와 있는 SPSS나 SAS 등의 입문, 활용서의 종류와 양에 비교하면 R에 관한 책은 아직 많이 부족한 편입니다. 이 책의 원서 역시 꽤 오래 전에 나온 책이고 그 동안 관련 서적들이 많이 나온 것으로 알고 있지만 한국어로 옮겨진 책은 많지 않습니다. R은 오픈소스를 기반으로 하고 있으므로 다양한 분야에서 축적된 경험과 아이디어를 바탕으로 사용자가 스스로 패키지를 개발하고 공개하면서 발전을 거듭하고 있습니다. 사용자는 자신에게 필요한 패키지를 찾아서 사용할 수도 있고 직접 만들어낼 수도 있습니다. 뛰어난 그래픽 기능과 이런 유연한 패키지 확장성에 힘입어 R은 점점 넓은 범위에서 활용될 것입니다. 아직 R과 관련된 한글 문서는 많지 않은 편이지만, 한글 기반 사용자가 늘어나고 자신의 경험과 지식을 나눈다면 한글로 된 자료도 빠르게 늘어나리라 예상해 봅니다. 학습 과정에서 설명이 미흡하거나 더 많은 예제를 살펴보고 싶을 때는 인터넷에서 공개된 수많은 자료를 찾아볼 수 있습니다. 가장 많은 정보가 있는 곳은 물론 프로젝트 홈페이지(http://www.r-project.org/)로 바이너리, 패키지, 각종 문서, 소스코드 및 R에 관련된 책의 목록 등을 찾아볼 수 있습니다. R-iHELP 프로젝트 사이트(http://korea.gnu.org/gnustats/lang.html )에서는 매뉴얼을 비롯해서 한글로 번역되거나 새로 만들어진 많은 유용한 정보를 얻을 수 있습니다. 예를 들어 ‘R 스터디 가이드(http://korea.gnu.org/gnustats/tutorial/part1/tutorial.pdf)’와 같은 튜토리얼에서는 한글 자료 처리 예제나 로케일 설정 등에 관해 잘 설명되어 있습니다. 또한, 패키지와 함수 사용법에 관해 정리된 ‘R을 이용한 데이터 분석 실무’나 ‘R을 이용한 빅데이터 분석’ 등이 있으며, 그 밖에도 여러 주제의 문서가 소개되어 있어 학습에 큰 도움을 얻을 수 있습니다. 끝으로 매번 좋은 책의 번역을 맡겨 주시는 한빛미디어에 감사드립니다. 그리고 짧지 않은 시간 동안 여러 책을 함께 작업하고 도움을 주셨던 한동훈님, 원고의 많은 오류를 꼼꼼하게 잡아 주시고 어색한 문장을 다듬어주신 한빛미디어 김상민 편집자님께 감사드립니다. 그 밖에도 좋은 책으로 세상에 나올 수 있게 힘써 주신 모든 분들께도 깊이 감사드립니다. 또한 번역 과정 내내 곁에서 힘이 되어준 가족과 조언해 준 친구에게 지면을 통해 특별히 감사의 마음을 전합니다.

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