처음 처음 | 이전 이전 | 1 | 2 |다음 다음 | 마지막 마지막
한 권으로 배우는 게임 프로그래밍 - 수학과 물리, 자료구조와 알고리즘, 디자인 패턴으로 익히는 게임 개발 필수 지식
박태준.박효재.윤하연 지음 / 한빛미디어 / 2024년 10월
평점 :
장바구니담기


필요한 선수 지식

요구 학력 : 컴퓨터 관련 학부생 3학년 이상

예제 코드 : C#, Unity

난이도 : ★☆☆☆☆


책의 구성 중 마음에 들었던 주제

CHAPTER 02 수학과 물리

2.2 위치와 이동

도입부에서는 원점을 기준으로 좌표를 구성하는 방식들을 설명하는데 이후 스칼라에서 벗어나 벡터의 간단한 설명과 함께 연산하는 방법들을 설명한다. 벡터는 게임에 있어서 오브젝트의 이동을 구현할 때 필수적이다. 간단히 걷기로 표현되고 중학교 때 배운 거속시 공식(거리 = 속도 * 시간; s = vt)이라던가, 중력이 작용하는 상황에서 자유 낙하를 표현하는 등가속도 운동 공식(v = v0 + at)을 실제 게임에서 이루어지는 많은 이동 상황에 비추어 설명한다.


2.3 각과 회전

이 단원에서는 각과 회전으로 대표되는 라디안과 삼각함수를 중점으로 설명한다. 고등학교에 다닐때 많은 친구를 수포자의 길로 이끈 게 삼각함수였는데 게임에서의 삼각함수는 필수적이다. 수포자들을 위해 여러 삽화를 추가하여 그래프를 바탕으로 삼각함수를 쉽게 설명하고 있다.


CHAPTER 03 게임 프로그래밍에 필요한 기법

3.6 충돌 처리 알고리즘

게임에서의 많은 상호작용은 충돌로 이루어진다. 충돌을 감지하는 알고리즘은 대표적으로 AABB, OBB 등이 있는데 이 단원에서는 이런 알고리즘들을 바탕으로 충돌을 감지하는 방법들을 설명한다.


CHAPTER 04 게임 프로그래밍 방법론

4.3 게임 디자인 패턴

4.4 안티 패턴

디자인 패턴은 일반적인 소설 잘 쓰는 방법과 같이 내가 작성한 코드를 다른 사람이 읽기 쉽게 서로 약속한 규칙이라고 이해하면 쉽다. 이 단원에서는 게임에서 자주 사용하는 패턴인 상속(Inheritance), 상태(State), 싱글톤(Singleton), 옵저버(Observer), 커맨드(Command)를 실제 사례를 빗대어 설명한다.


읽고 난 후

이 책에서는 각 챕터 별로 맨 앞에 ‘왜 배워야 할까?’라는 소단원이 있어 배워야 하는 이유를 논리적으로 설명하고 있다. 또한, 이해가 다소 어려울 수 있는 부분에는 손으로 그린 듯한 삽화들이 첨부되어 있어 이해를 돕는다. 다만, 게임 개발을 하면서 발생하는 많은 문제를 해결하는 데 도움을 주는 책이라기보다는 게임 개발을 처음 시작하기 전에 간단히 읽고 넘어가는 개론서로 보는 것이 좋을 것 같다.


게임을 만들 정도의 프로그래머라면 상당한 전문성을 갖췄다고 생각한다. 기본적으로 게임 엔진에 대한 이해도와 해당 게임 엔진에서 사용하는 언어 숙련도, 좌표계 및 벡터에 대한 논리적 사고가 뒷받침되어야 하기 때문이다. 특히 게임을 개발하다 보면 처음 보는 버그나 예기치 못한 문제를 마주치는 일이 흔한데 이를 빠르게 찾아내고 해결하는 과정에서 전문성이 낮았더라도 결국에는 전문성이 향상된다.


어떤 프로그래밍 언어를 중급자 정도 구사할 수 있다고 생각될 때마다 해당 언어로 게임을 개발해 봤었는데 문제 해결 능력을 키우고 데이터 구조, 알고리즘, 그래픽스 처리 등 다양한 컴퓨터 과학 개념을 실전에 적용해 보는 좋은 기회가 되었다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


https://syudal.github.io/post/%ED%95%9C-%EA%B6%8C%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
쿠버네티스 창시자에게 배우는 모범 사례 - 실전에 바로 적용하는 핸즈온 쿠버네티스, 2판
브렌던 번스 외 지음, 이일웅 옮김 / 한빛미디어 / 2024년 10월
평점 :
장바구니담기


필요한 선수 지식

요구 학력 : X

예제 코드 : bash, Go, yml

난이도 : ★★★★★


읽기 전에

쿠버네티스와 도커는 모두 컨테이너 기술을 기반으로 하지만, 그 목적과 기능에 있어 중요한 차이점이 있다.


도커(Docker)는 컨테이너 런타임 기술로, 애플리케이션을 컨테이너라는 표준화된 유닛으로 패키징하는 데 사용된다. 도커 컨테이너에는 애플리케이션 실행에 필요한 모든 요소(라이브러리, 시스템 도구, 코드 등)가 포함되어 있다.


쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 도구로, 여러 컨테이너를 대규모로 관리, 조정 및 예약하는 데 사용된다.


그러나 도커와 쿠버네티스는 서로 경쟁 관계가 아니라 보완적인 관계에 있다. 일반적으로 도커를 사용하여 컨테이너 이미지를 생성하고 쿠버네티스를 사용하여 이러한 컨테이너를 대규모로 관리한다.


책의 구성 중 마음에 들었던 주제

CHAPTER 05 지속적 통합, 테스팅, 배포

쿠버네티스에 애플리케이션을 배포하기 위한 CI/CD 파이프라인 통합의 핵심 개념을 다룬다. CI/CD 파이프라인을 활용하면 리스크를 줄이고 처리량을 높여 애플리케이션을 유저에게 안정적으로 제공한다. 이 챕터에서는 개발자가 코드를 체크인하는 순간부터 프로덕션에 새 코드를 배포하는 과정을 완전히 자동화된 프로세스를 구축하는 방법을 설명한다.


CHAPTER 09 네트워킹, 네트워크 보안, 서비스 메시

쿠버네티스는 읽기 전에 설명했듯이 여러 컨테이너를 대규모로 관리, 조정 및 예약한다. 대규모로 관리, 조정 및 예약을 하기 위해서는 네트워크를 통해 분산 시스템을 관리한다. 특히 네트워크는 머리 아픈 주제인데, 네트워크를 설명하면 꼭 따라오는 주제인 네트워크 보안도 머리를 아프게 한다. 그러나 다행히도 이 책에서는 간략하게 모범 사례를 위주로 설명한다.


CHAPTER 13 외부 서비스와 쿠버네티스 통합

사실 쿠버네티스 클러스터에 있는 애플리케이션을 단독으로 사용하여 서비스하는 경우는 거의 없다. 일반적인 상황인 레거시 리소스(예: 온프레미스 데이터베이스)를 위한 새로운 애플리케이션 개발이나 인터페이스에 쿠버네티스를 사용할 때를 기준으로 External Name 서비스 사용, Endpoints 객체 사용, Service without Selector 사용을 통해 통합하는 방법을 설명한다.


CHAPTER 14 쿠버네티스에서 머신러닝 실행하기

도커의 워크로드 격리 및 보안 기능과 쿠버네티스의 오케스트레이션 기능은 머신러닝에 큰 도움이 된다. 머신러닝의 진행 단계 대부분은 배치 처리이므로 클러스터 오토스케일링을 사용하면 GPU가 탑재된 비싼 VM 사용료를 낮출 수 있다. 또한, Kubeflow라는 쿠버네티스에 기본 내장된 머신러닝 툴킷을 통해 쿠버네티스를 더욱 간편하게 사용할 수 있다. 하지만, 현재 분산 훈련이 현재 머신러닝에 있어 걸음마 단계라서 배치 처리의 활용을 제외하고는 적극적으로 사용하기엔 어려워 보였다.


읽고 난 후


이 책을 읽기 전에 주의해야 할 점이 있다면 이 책은 쿠버네티스의 기본 개념서가 아니라 실무 환경에서 활용하는 내용들로 구성되어 있다는 점이다. 기본서를 충분히 읽었어도 이 책에서 설명하는 내용들은 사실 굉장히 난해하고 어렵다. 하지만, 원서의 늬앙스를 최대한 반영한 듯한 번역 방식 뿐만 아니라 부연 설명, 모범 사례들이 이해하기 어려운 내용들을 쉽게 이해할 수 있도록 도와준다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


https://syudal.github.io/post/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%B0%BD%EC%8B%9C%EC%9E%90%EC%97%90%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%AA%A8%EB%B2%94-%EC%82%AC%EB%A1%80/


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
잘 읽히는 보고서 문장의 비밀 - 1,000만 직장인을 위한 보고서 문장 기술 27가지
임영균 지음 / 한빛미디어 / 2024년 8월
평점 :
장바구니담기


필요한 선수 지식

요구 학력 : X

예제 코드 : X

난이도 : ★☆☆☆☆


책의 구성 중 마음에 들었던 주제

문장 기술 01 내가 알아도 상대방은 모를 수 있다

보고서 이전에 대화할 때도 기본적인 내용이다. 대부분 많은 사람들이 지식의 저주에 걸려 본인이 알고 있는 지식을 상대도 당연히 알고 있을 것으로 생각하고 많은 부분을 생략한 채 설명하곤한다. 이후 나오는 기술들이 주어의 누락과 술어 사용의 명확성과 모호성의 제거 방법들을 설명하는데, 이 문장 기술을 기반으로 설명한다. 따라서, 이 책을 읽을 때는 ‘내가 알아도 상대방은 모를 수 있다’를 항상 염두에 두어야 한다.


문장 기술 10 하나의 문장에는 하나의 생각을 담아 두 줄 이하로 쓴다

책을 읽으면서 굉장히 공감되었던 부분이다. 인터넷의 많은 글들이 하나의 문장에 여러 개의 생각이 담겨있을뿐더러 단어 중복과 중언부언, 사족이 덕지덕지 붙어 이해하기 어렵다. 많은 사람들이 맞춤법은 준수하려고 굉장히 많은 노력을 하지만 사실 맞춤법 이전에 문장의 호응이나 구조 등을 개선해서 간결하게 사용해야 한다고 생각했었는데 이 챕터에서 구체적인 방법들을 제시한다.


문장 기술 19 조사를 멋대로 생략하면 문장이 삐걱거린다

문장 기술 21 구와 절을 잘 이어야 문장이 매끄럽다

두 개의 문장 기술의 거의 일맥상통한 내용이라고 생각한다. 다시 한번 위에서 마음에 들었던 주제인 문장 기술 01의 ‘내가 알아도 상대방은 모를 수 있다’가 재조명되는데, 조사를 멋대로 생략하여 문장이 삐걱거리고 구와 절을 제멋대로 연결하여 문장이 매끄럽지 못하다. 이 문장 기술들에서는 이해하기 쉽게 문장을 구성하는 방법을 설명한다.


문장 기술 25 판교어의 오류, 외래어 사용 주의사항

문장 기술 26 쉬운 표현이 더 나을 때도 있다

요즘 SNS 등지에 판교어(판교 사투리)라고 부르는 전문어에 관련된 이야기들이 많이 올라오고 있다. 모든 전문어가 그러하듯 판교어는 IT 기업에서 많이 사용하는 언어들을 포함하여 신조어, 축약어, 외래어들로 구성되어 있다. 같은 회사의 구성원들끼리 소통할 때는 그들끼리 약속된 단어를 사용하니 빠르고 편리하겠지만 불과 옆 회사로 이직하기만 해도 조직 문화가 달라 소통되지 않는 문제가 발생한다. 이 문장 기술들에서는 이러한 문제를 꼬집고 해결 방법들을 제시한다.


CHAPTER 04 실무에 바로 적용 가능한 보고서 작성 꿀팁

이 장에 포함된 모든 보고서 작성 꿀팁들은 하나하나 놓칠 것이 없는 내용들이다. 간단히 정리하자면, 상사의 성격에 따른 기획 보고서 작성 방법과 보고서를 언제 보고할 것인지와 같은 내용들과 표, 차트, 수치와 같은 복잡한 내용들을 보기 쉽게 제시하는 방법들까지 설명한다.


읽고 난 후

추천 지수 : ★★★★★


국립대학의 교직원으로 2년가량 재직할 때 제일 힘들었던 것은 공문서를 작성하는 것이었다. 다행히도 KORUS 공문 보관함에는 몇 년간의 주고받은 공문들을 바탕으로 답습할 수 있었고, 계장님께서 주신 공문서 작성 지침서와 다정한 실장님 덕분에 공문서를 잘 작성하는 방법을 배울 수 있었다. 물론 이 책에서 공문서체의 한자어 사용을 꼬집어 해당 내용을 고치려고 노력하고 있다. 이 책을 읽으면서 좋은 글은 좋은 의사소통을 불러오고 좋은 의사소통은 불필요한 사회적 비용을 줄일 수 있다는 생각이 들었다.


또한, 요 몇 년간 자소서와 취업 시장에서 많이 등장했던 내용 중 하나는 의사소통 역량이다. 한국의 기본 문맹률은 1%인 만큼 99%의 사람들이 글을 읽고 쓸 수 있지만, 많은 사람들이 작성한 글을 읽어보면 말 그대로 읽고 쓰기가 가능할 뿐 다른 사람들에게 잘 읽히도록 쓰는 능력은 부족하다고 생각했다. 특히 그들만의 단어 사용을 지양해야 한다고 생각한다. 그들끼리는 원활히 소통하겠지만, 그 문서를 읽을 신입자에게는 어려운 말투성이일 테니까.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


https://syudal.github.io/post/%EC%9E%98-%EC%9D%BD%ED%9E%88%EB%8A%94-%EB%B3%B4%EA%B3%A0%EC%84%9C-%EB%AC%B8%EC%9E%A5%EC%9D%98-%EB%B9%84%EB%B0%80/


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
업무에 활용하는 Node.js - 웹 애플리케이션 개발로 배우는 Node.js 원리와 실무 가이드
이토 고타 지음, 김모세 옮김 / 한빛미디어 / 2024년 5월
평점 :
장바구니담기


JavaScript라는 단일 언어로 클라이언트와 비동기 이벤트 기반 서버를 빠르고 효율적으로 개발하고 싶은 개발자들에게 추천하고 싶은 책


필요한 선수 지식

요구 학력 : X

 

예제 코드 : JavaScript

 

난이도 : ★☆☆☆☆

 

책의 구성 중 마음에 들었던 주제

1장 처음 만나는 Node.js

개발자들이 흔히 궁금해하는 작동원리를 설명하는데, 비동기 이벤트 기반 서버의 작동 원리를 설명하기 위해 상당히 노력한 느낌이 난다. 특히 libuv에 기반한 논블로킹 I/O와 이벤트 루프, C10K 문제에 대해 심층적으로 다룬다.

 

4장 Node.js에서의 비동기 처리

현대 프로그래밍 언어는 기본적으로 비동기 처리를 지원한다. 그중 많은 언어들이 await과 async 키워드로 쉽게 비동기를 사용할 수 있도록 구현되어 있는데 JavaScript도 포함된다. 특히, 비동기 처리의 기본인 Callback과 연결지어 언어의 발전 단계를 설명하는데, 콜백 지옥을 보완하기 위한 Promise, Promise를 사용함으로 인한 코드가 장황해지는 문제를 보완하기 위한 await과 async 키워드로 연결되는 예시를 포함하여 자세히 설명한다.

 

6장 익스프레스를 이용한 REST API 서버/웹 서버

Express.js는 요즘 많이 사용하는 RESTful API 서버를 구현하기 위한 프레임워크이다. 에러 핸들링과 데이터베이스 연동, ejs를 통한 뷰 템플릿 사용 등의 방법을 설명한다. 후반부에 배포 방법과 도커를 사용한 배포 방법에 대해 설명하는데, 백엔드에 필수적인 CD(Continuous Delivery/Deployment) 방법을 설명하지 않아서 살짝 아쉬웠다.

 

읽고 난 후

기본적으로 많은 삽화와 풍부한 각주, 소스코드에 달린 주석 등 주니어 개발자가 읽기에도 무리가 없도록 굉장히 친절하게 설명되어 있다. 그리고 해당 절이 끝나는 시점에 필자가 하고 싶은 내용이나 곁들일 만한 설명이 필요한 경우에는 'COLUMN'이라는 섹션에서 설명되어 있다. 하지만 전혀 필요하지 않은 내용이 아니고, 읽으면 추후에 도움이 될만한 내용들이라 전혀 거슬리지 않았다.

다만, 책의 내용이 기초적인 내용이라 실무에 적용하려면 심층서가 필요해보인다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


https://syudal.github.io/post/%EC%97%85%EB%AC%B4%EC%97%90-%ED%99%9C%EC%9A%A9%ED%95%98%EB%8A%94-Nodejs/


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
러닝 깃허브 액션 - 깃허브로 시작하는 지속적 통합 및 배포 자동화
브렌트 래스터 지음, 정의형.정한결 옮김 / 한빛미디어 / 2024년 5월
평점 :
장바구니담기


Jenkins, Travis에서 Github Action으로 CI/CD를 마이그레이션 하고 싶은 개발자와 DevOps 엔지니어들을 위한 책

필요한 선수 지식

요구 학력

관련학과 대졸 이상

(실무에 관련된 내용)

예제 코드 : YAML

난이도 : ★★★★☆

 

책의 구성 중 마음에 들었던 주제

2장 액션의 작동 원리

'액션'이라는 용어 정리와 워크플로를 구성하는 잡, 트리거, 스텝 간의 관계를 설명한다.

 

8장 워크플로 실행 관리

워크플로를 트리거하는 다양한 이벤트와 브랜치, 태그, 파일 변경과 같은 옵션들에 대해 설명한다. 또한, 여러 워크플로 인스턴스가 동시에 실행되는 것을 방지하기 위해 동시성 제어 기법을 설명한다.

 

14장 깃허브 액션으로 마이그레이션

GitHub Actions Importer(깃허브 액션 임포터 도구)를 통해 Azure DevOps, CircleCI, GitLab CI/CD, Jenkins, Travis CI, Bamboo Pipeline에서 손쉽게 마이그레이션 하는 방법을 설명한다.

 

읽고 난 후

자동 배포와 같은 CI/CD(Continuous Integration and Continuous Delivery/Deployment)는 게으른 개발자들의 종착역이라고 생각한다. 아무리 멋진 프로그램을 작성해도 컴파일하고 배포하지 않으면 사용자는 있을 수 없다. 하지만, 컴파일과 테스트, 배포는 개발에 비해 굉장히 지루한 일들이다.

책의 구성은 스크린샷 기반의 많은 삽화와 풍부한 예제 코드들이 YAML를 처음 보는 개발자들도 쉽게 적용할 수 있게끔 되어 있다. 귀찮은 것이 싫은 게으른 개발자들에게 어울리는 책이다.

버전 관리 시스템도 CVS에서 시작되어 SVN과 Git으로 발전하고 지금은 흔히 사용하듯이 CI/CD도 흔히 사용될 날들이 기대된다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


https://syudal.github.io/post/%EB%9F%AC%EB%8B%9D-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%95%A1%EC%85%98/


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 |다음 다음 | 마지막 마지막