C++ 최적화 - 최고 성능을 구현하는 10가지 검증된 기법
커트 건서로스 지음, 옥찬호 옮김 / 한빛미디어 / 2019년 7월
평점 :
장바구니담기


이 글에는 스포일러가 포함되어 있습니다.

다양한 방면에서 아주 소중한 우리 C++을 더욱더 잘 쓸 수 있도록 가이드해주는 C++ 최적화 책이 출간되었다! 한빛미디어에서 리뷰어로 읽을 수 있게 해주어서 너무나도 기쁘다.


C++을 더욱더 잘 쓰려면 컴퓨터 구조와 구동하는 방식에 대해서 잘 알아야 하며, 컴파일러가 어떻게 동작하는지도 잘 알아야 하며, 운영체제가 뭔지에 대해서도 잘 알아야 한다... 너무 어렵다... 그래도 잘 쓰면 엄청난 퍼포먼스를 자랑하기 때문에 꼭 마스터가 되고 싶다. 그래서 C++책 중에 다양한 책이 있지만 특히 C++을 어떻게 하면 잘 쓰냐에 대한 책들을 읽다보면 위에서 말한 컴퓨터나 OS에 대한 내용들도 많이 등장한다. 이 C++ 최적화에서는 세부적으로 윈도우에서 MSVC컴파일러를 썼을 때 C++코드를 최적화 하는 방안들에 대해서 알려준다. 어느 최적화와도 마찬가지로 항상 최적화는 실험과학적이다. ㅋㅋ



항상 책 마지막 부분에 마치면서 이 장에서 다루었던 내용들을 쉽게 요약해두어서 정말 보기 편하다. 책을 읽으면서 항상 내용에 대해서 생각하며 읽어야 하는데, 그럴 시간이 없다면 무작정 이 마지막 페이지만 읽어도 뭐 나쁘진 않을 것 같다는 생각을 한다. 가까운 책장에 꽂아두고 항상 보고 읽을만한 좋은 책인 것 같다.



C++11에 관한 내용들도 언급하고 있다. rvalue reference, std::move과 같은 C++11에서 다루는 내용들도 어떻게 최적화 할 것인지 다루고 있다. 구식 책은 아니라는 점.

항상 최적화와 아름다운 구조간의 중간지점 타협을 찾아야 한다. 구조가 예뻐서 코딩하는데 쉽고 빠르고 간편하게 하고 싶지만 성능도 빠르게 하고 싶은게 프로그래머 마음일 것이다. C++은 둘다 잡을 수 있는 기회를 제공해준다. 근데 실력에 따라 둘다 놓칠 수도 있다. 항상 주의해가면서 써야하는게 C++인것 같다. 최근에 연구하면서 후위 증가 연산자를 한문장에 여러 번 쓴 적이 있는데, 그것을 디버깅한다고 꼬박 이틀이 날라갔다.

이 책은 Effective C++ 시리즈 처럼 어떻게 하세요~ 이런식으로 나와있지만 다루는 내용들은 전부 최적화와 관련된 내용이라서 좋았다. 저자가 직접 자기 환경에서 실험해보면서 어떻게 최적화 하는게 좋은지 상세히 알려주고 있어서 신뢰도 생긴다. 이 책을 통해 내 연구 소스코드도 좀 손봐야 할 곳이 많다는 생각이 들었다.

항상 잘 하고 있다고 생각했을 때 돌아봐야 한다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
모두의 딥러닝 - 원리를 쉽게 이해하고 나만의 딥러닝 모델을 만들 수 있다
조태호 지음 / 길벗 / 2017년 12월
평점 :
구판절판


이 글에는 스포일러가 포함되어 있습니다.

이번에 랩실에서 딥러닝 응용 연구를 하고 있는데, 딥러닝을 어떻게 노베이스에서 시작할까 많이 고민하고 진짜 밑바닥에서 시작했다. 우여곡절도 많았고 직접 삽질해가며 배운 것들도 많았는데, 생각보다 인터넷에 좋은 자료들이 많아서 공부하는데 도움이 되었다.

그런데 이제 신입 랩원들도 들어오고 현재 프로젝트에 참가한 사람들에게 딥러닝을 가르쳐 주어야 하는데, 어떻게 삽질한거를 그대로 하게 할 수도 없고.. 보고 초급 내용들을 가르쳐 주는 책을 구하는게 빠르겠다고 생각했다.

때 마침 길벗에서 모두의 시리즈를 리뷰할 수 있도록 해주었다!



책의 목차부터 일단 엄청 기초를 가르쳐준다는 포스가 넘친다... 딥러닝 분야에 아예 모르는 사람들도 잘 따라 할 수 있게끔 관련 지식들도 다 같이 알려준다. 깊이 있게는 가르쳐주지는 않지만 충분히 따라할 수 있게끔 알려준다.



딥러닝을 하기 힘든게 사실 수학적인 배경이 상당히 깊다는 이유이다. 나는 처음 딥러닝 입문할때 모두의 딥러닝 시즌 1 유튜브 강좌를 보고 입문했는데, 그때도 수식때문에 항상 힘들었었다. 그래도 기초적인 고등학교 수학 지식을 가지고 있으면 수식을 미분하고 SUM하고 하는 것에 있어서는 이해할 수 있었다. 이 책에서는 수식을 어떻게 표기했고, 이 표기가 어떤 의미를 가지는지도 설명해주고 있다. 나와 같이 수학적인 깊이가 없는 사람들도 이해하기 좋도록 만들어져 있어서 좋았다.



이런식으로 딥러닝은 그림과 함께 이해하기 참 좋은데, 이 책은 책 거의 모든 페이지에 그림이 안들어가는 페이지가 없다. 그래서 딥러닝에 대해서 아예 모르는 사람이 입문하기 참 좋은 책인것 같다. 또한 소스코드와 함께 실행결과도 자세하게 나와있어서 참 좋았다. 소스코드는 텐서플로우와 케라스를 사용해서 구현했더라. 우리 프로젝트에서도 텐서플로우를 사용해서 더 좋았던 것 같다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이토치 첫걸음 - 딥러닝 기초부터 RNN, 오토인코더, GAN 실전 기법까지 머신러닝/딥러닝 첫걸음 시리즈
최건호 지음 / 한빛미디어 / 2019년 6월
평점 :
장바구니담기


이 글에는 스포일러가 포함되어 있습니다.


우리 연구실에서 딥러닝을 사용하고 있는데, 현재는 텐서플로우를 사용하고 있다. 컴퓨터 그래픽스에서 특히 캐릭터 애니메이션 관련 논문들 중에 딥러닝을 사용하는 논문들이 대부분 텐서플로우로 만들어서 우리도 텐서플로우로 하고 있다. 하지만 최근에 파이토치를 사용한 논문들도 나오고 있고 AI학회쪽 논문들은 파이토치로 구현하는 경우가 많다고 해서 이참에 파이토치를 한번 배워보고자 신청했다. 텐서플로우는 C++ API를 빌드하는게 굉장히 힘들고 까다롭고 귀찮다. 파이토치는 C++을 텐서플로우보다 잘 지원한다는 소리가 있어서 궁금하기도 함.



우선 책 사이즈가 아담하고 읽기 좋다. 나 앞으로 첫걸음 시리즈 팬할것 같다. 내용이 정말 간결하게 잘 정리되어 있고 전혀 부실하지 않다. 오히려 내가 텐서플로우 하면서 연구하면서 부딪혔던 이론적인 부분들이 너무 잘 설명되어 있어서 많이 배웠다. 코드들도 잘 나와있어서 이해하기 수월했다.



이런 부분이 내가 딥러닝 하면서 참 힘들었던 부분들이다. 오버피팅을 피하는 방법을 한참 찾았었는데 내가 이 책을 빨리 샀더라면 이런 수고를 덜었을텐데 말이다. 이 책은 참 얇아서 금방 다읽는데 내용이 참 알차다. 꼭 필요한 내용들이 전부 있고 최신 트렌드를 전부 녹였다. CNN에서 대표되는 모델들을 그림과 코드로 전부 설명하고 있고 RNN에서도 LSTM과 GRU에 대해서도 설명하고 있다. 뒤에는 오토 인코더와 GAN에 대해서도 설명하고 있다. 참 구성이 좋은 것 같다.



친절한 그래프와 설명이 많은 도움이 된 것 같다. 이론적인 부분들이 최대한 쉽게 다가오게끔 설명한 저자의 노력이 보인다. 독자의 입장에서 하나하나 정성들인 섬세함이 돋보인다. 나는 딥러닝 진짜 초본데 잘 이해할 수 있도록 원리를 설명해준것 같다. 딥러닝을 파이토치로 시작하고 싶은 분들께 이 책을 추천한다. 진짜 강추다.



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 라이브러리를 활용한 머신러닝 - 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서, 번역개정판
안드레아스 뮐러.세라 가이도 지음, 박해선 옮김 / 한빛미디어 / 2019년 3월
평점 :
구판절판



연구실에서 딥러닝을 쓰고 있는데, 딥러닝의 기초적인 배경이 되는 머신러닝을 공부해보고 싶었다. 때마침 머신러닝 책이 있었다. 딥러닝 할때 파이썬을 쓰고 있는데 Sci-py와 Scikit-learn이 가끔씩 등장해서 그때마다 보곤 했다. 주로 텐서플로우를 사용하다보니까 다른 라이브러리들을 잘 몰랐는데 이번 기회에 Scikit-learn에 대해서 한번 보자 해서 좋은 기회가 된것 같다.




전체적으로 책이 상당히 친절하다. 페이지도 많고 나 같은 컴퓨터 프로그래밍을 어느정도 해본 사람이라면 무리 없이 읽을 수 있을 정도로 친절한 것 같다. 우리가 어떤 목적이 있고, 어떻게 구현해볼 것이며, 이 학습방법의 장단점이 무엇인가, 다른 모델과 차이점이 무엇인가에 대해서 친절하게 알려준다, Scikit-learn을 통해서 전체적인 머신러닝 알고리즘들을 빠르게 소개받는 기분이었다.



다른 책들 보다도 실용적이고 그림이나 도표가 압도적으로 많은 것 같다. 그래서 머신러닝을 처음 해보는 사람들도 별 탈 없이 이해할 수 있을 것 같다. 책에서는 이론적인 내용들도 물론 제시하지만 간단하게, 예제를 보면서 설명하는 식으로 구성되어 있다. 나는 딥러닝을 바로 시작해서 기본적인 머신러닝에 대해서 기초가 없었는데, 이 책을 보면서 이런 부분에 있어서 이런게 있구나 느끼게 되었다. 확실히 좋은 책인 것 같다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
게임 서버 프로그래밍 교과서 - 프라우드넷 개발자가 알려주는 게임 서버 개발의 핵심 원리와 노하우
배현직 지음 / 길벗 / 2019년 4월
평점 :
장바구니담기


이 글에는 스포일러가 포함되어 있습니다.

오늘은 게임 서버 프로그래밍 교과서를 리뷰하려고 한다.

일단 길벗 책들 진짜 너무 좋다. 표지부터 책 안 디자인까지 너무 마음에 든다.


내용을 쭉 보고 있었는데, 나는 게임 클라이언트를 주로 만들었는데, 작년에 네트워크 게임 한번 만들어본다고 WorldTank.io를 만들었었다. 그때는 포톤 네트워크를 다루었었다. 유니티에서 에셋으로 쉽게 연결할 수 있었고 무엇보다 쉬웠다...



이 책은 진짜 게임 서버 프로그래머가 되기 위해서 반드시 알아야 할 것들을 자세하고 쉽게 설명해주고 있다. 왜 진작에 이런 책이 나오지 않았을까 하는 생각이다. 내가 고등학교 다닐때는 게임서버 하려면 일단 윤성우 TCP들고 공부하고 온라인게임서버책인가 그거 보고 쭉 공부했었어야 했다. 네트워크는 진짜 전자쪽도 많이 관련되어 있고 그런 전공의 깊이가 있기 때문에 고딩때는 이해하기 어려웠다.


이 책 저자님께서 프라우드넷을 개발하셨는데. 그래서 프라우드넷의 작동방법이나 사용법에 대해서 간단하게 소개하고 있다.



나는 컴퓨터 네트워크에 대해서 아직 배우지도 않았지만, 이 책을 읽는데 큰 어려움이 없었다. 물론 기본적으로 컴퓨터를 많이 다루고 코딩도 해봐서 괜찮은걸지도 모르겠다. 프로그래밍을 할 줄 아는 사람이면 이 책을 보는데 큰 무리가 없을 것 같다.

그만큼 쉽고 자세하게 설명해주고 있다. 적절한 그림과 설명이 읽는데 아주 큰 도움이 된다. 이제 이 책을 읽었으니까 파이썬으로 게임서버를 만들어볼까나?? ㅋㅋㅋ



댓글(0) 먼댓글(0) 좋아요(4)
좋아요
북마크하기찜하기 thankstoThanksTo