League Of Legends - Link Select [도서 / Book] A부터 Z까지 다 담았다! - 「 Do it! C++ 완전 정복 」
본문 바로가기
✨ Information/Book

[도서 / Book] A부터 Z까지 다 담았다! - 「 Do it! C++ 완전 정복 」

by GAMEMING 2024. 4. 12.
728x90

 

 

 


도서 기록 | 01

「 Do it! C++ 완전 정복 」

 

저자 : 조규남 , 문종채 지음

출판 : 이지스퍼블리싱

 

 

 


 

 

 

 

 

 

요즘 많은 학과에서 C++을 배울 것이라 생각되는데요.

제가 재학 중인 게임공학과는

4년 내내 C++을 사용하는 학과인 만큼

그냥 단순히 하는 수준이 아닌, 

잘해야 한다는 압박이 있습니다. 😵

 

이번 학기에 C++ 멘토를 맡게 되면서

도움이 될 만한 C++ 책을 여러 찾아보았습니다

한 3권은 본 것 같아요 ㅎㅎ..

 

그러던 중에 이지스퍼블리싱에서

새 책이 나온다고 해 서평단을 신청했고

오늘은 이 책에 대해 다뤄보고자 합니다.

 

 

 

[ 전체적인 목차와 구성에 대하여 ]

 

 

 

 

개발자 스티브 매코널 님이 하신 말과 함께 책이 시작되며,

책을 통해 배울 수 있는 개념이 16주 차로 나눠져 있습니다.

 

처음 공부하시거나, 혼자 공부하시는 분들 같이

하루에 얼마큼 공부해야 할지 감이 안 잡히신다면

이 페이지를 이용해 분량을 나눠보시면 좋을 것 같습니다.

 

목차는 보통 실행 흐름 제어문(분기문)을 먼저 다룬 후

포인터에 대한 내용은 보통 뒤에 오는 책이 많던데

이 책에서는 3장부터 포인터와 메모리에 대해 다루고 있던 점이 흥미로웠어요.

 

그리고 다른 책은 함수와 구조체 같은 내용을

하나의 챕터(chapter) 단위로 다루고 있는 경우가 많은데

3장에서 소주제로 다루고 있습니다.

 

아마 뒤의 객체 지향과 modern C++ 쪽을 깊게 다루시기 위해

기존의 기본적인 개념들은 중요한 부분만 다룬 것 같다는 느낌이 있습니다.

 

따라서 완전 처음으로 코딩에 입문하시는 분들은

함수, 구조체 같은 기본 문법 부분에 대해서

깊게 공부하시기엔 아쉬운 부분이 있을 수 있을 것 같습니다.

 

 

 

 

[ 감동적일 정도의 세부적인 설명 ]

 

1장, 2장.. 하나하나 살펴보며 감동을 안 먹을 수가 없었습니다.

 

대학 강의는 정해진 시간 안에 나가야 하는 분량이 많기에

보통 수업 처음에 하나하나 세세하게 가르쳐주시지 않습니다. 

이 때문에 저는 처음 코딩을 배울 때(새내기 시절) 정말 애먹었던 기억이 있습니다.

 

#include <stdio.h>

int main()
{
	printf("hello world!");
	return 0;
}

 

 

수업 시간에 처음 배우는 코드인데,

저는 #include가 무엇인지, stdio를 studio로 써 놓고

이게 왜 오류 나는가 고민했던 시절이 있었습니다.

 

이걸 고민하고 있으면

강의는 어느 새 다음 예제로 지나가 버려서

허겁지겁 타자 치고 실행시켜야 했습니다.

 

결국 이해하지 못하고 지나간 부분은

나중에 저절로 메꾸어진 경우도 있지만,

결국엔 진도-시험에 치여 대부분을 단순 암기로 메꾸었고

이 때문에 2학기에 C++을 배우며 거의 포기에 이르는 악순환이 있었습니다.

 

( 당시에 저는 코딩에 많은 시간을 들이지 않았다는 것이 가장 큰 문제긴 했지만,

어디서부터 다시 공부해야 할지 감이 안 잡혔습니다 )

 

 

 

 

이 책에서는 저 같이 처음 배우는 사람들이 궁금할 법한 것들을

궁금해요! 박스로 묶어서 자세하게 설명하고 있습니다.

 

또한 데이터 형식에서 반환형이 없는 void를 다루고 있는 책은

제가 본 책 중에서는 처음이었던 것 같습니다.

 

또한 자료형에 대한 크기를 사용하는 체제(x32, x64)에 따라

다를 수 있다는 점을 고려하여 쓴 것도 좋았습니다.

 

 

 

 

내용 전체적으로 설명하고 있는 개념들 대부분

예제 코드와 함께 상세한 설명을 덧붙여

이해하기 쉽도록 되어 있습니다.

 

 

 

 

[  C++의 꽃, Class ]

 

C++의 Class 개념은 객체지향프로그래밍이 가능하게 하는

가장 강력한 도구 중 하나라 생각합니다.

그래서 책에서 가장 기대하고 있던 부분 중 하나 입니다.

 

잠시 목차를 다시 봐보도록 하겠습니다.

 

 

 

객체지향 프로그램 특징까지는 보통 책에서 다루고 있는 부분입니다.

 

class를 다룰 때 항상 나오는 추상화/캡슐화/상속성/다형성 이야기와

필요한 문법들에 대해서 다루고 있는 것을 볼 수 있습니다.

 

하지만 그 밑에 객체지향 설계 원칙 5가지가 있는데

저도 생소한 이름이라 흥미가 가더군요 !

 

클래스를 설계할 때 프로그램의 유지와 보수, 확장성에 도움되는 원칙으로

각 원칙을 소주제로 다루고 있습니다.

 

클래스 설계는 어떻게 하더라도

항상 어려웠던 부분이라

저에게 너무 좋은 내용이었어요.

 

 

 

 

그리고 항상 예제 코드에 대한 클래스 다이어그램같이 넣어주셔서

클래스 내부적으로 어떻게 연결되어 있고,

설계되어 있는지 파악할 수 있어서 이해하기 쉬웠습니다.

 

또한 예제 하나하나가 게임과 관련된 예제가 많아서

저에게 2배로 도움이 된 느낌입니다 ㅎㅎ

 

+

 

이 글에서 자세하게 다루진 않았지만,

신간이라 modern C++ (최신 C++)에 대해서

상세히 한국어로 공부할 수 있다는 것도 큰 장점이었습니다.

 

기초부터 심화, 최신식 C++까지

A부터 Z까지 안챙긴거 없는 😳😳

 

 

 

 

[ 단원의 마지막, 되새김 문제 ]

 

 

 

그리고 이 책에서는 각 단원의 개념을 적용해볼 수 있는

되새김 문제를 지원하고 있습니다.

 

문제는 보통은 여러 개로 되어 있고

실제로 주어진 상황에 맞게

구현해보는 문제가 많습니다.

 

보통 이런 문제는 정답을 공개하지 않은 경우도 많은데

저자의 깃허브에 들어가면 여러 예제 코드와 함께

정답을 확인할 수 있어서 좋은 것 같습니다.

 

아무래도 자기가 짠 코드가 맞는지,

어떻게 짜면 더 효율적으로 짤 수 있는지를

비교해볼 수 있는 방안이 생긴 것이니까요 !

 

 

 


 

 

전체적인 제 평가는 완전 코딩을 처음 배우시는 분들에게도 좋지만,

객체지향과 템플릿, STL, Modern C++ 등 심화적인 부분도 다루고 있어

 

C언어를 한 번 다뤄보신 분들 혹은 다른 언어를 다룬 경험이 있어

어느 정도 프로그래밍 지식이 있으신 분이라면 더더욱 좋을 것이라 생각합니다.

 

또한, 독학 뿐만 아니라 저처럼 소프트웨어 관련 전공이신 분들도

사서 한 번쯤 공부해보시면 많은 도움이 될 거라고 생각해요.

생각보다 책 속에 자세하게 설명되어 있는 부분 중에 모르고 있던 부분도 꽤 있었습니다.

 

종이 재질도 최상입니다 :D