컴퓨터 밑바닥의 비밀 - 컴퓨터 시스템의 본질을 알면 코드의 실마리가 보인다
루 샤오펑 지음, 김진호 옮김 / 길벗 / 2024년 3월
평점 :
장바구니담기



개발자라면 CS 지식은지속적해서 공부하는 것이 매우 중요하다고 생각한다. 특히나 컴퓨터 내부가 어떻게 돌아가는지를 이해해야 동시성과 같은 어려운 개발 상황에 처하게 되었을 때 문제 해결법에 대한 힌트를 쉽게 얻을 수 있을 것이다. 이 책은 제목 그대로 컴퓨터가 어떻게 돌아가는지에 대해서 설명해주는 책으로 개인적으로는 CS 관련 책 중 깊이도 있고 이해하기도 쉽게 적어놓은 것 같았다.


우선 번역이 깔끔하게 잘 되어있다는 점이 가장 큰 장점이 아닐까 싶다. 가끔 기술 번역서의 번역이 잘못되어 있을 때 책을 읽는 것 자체가 어려운 경우가 있는데 전부 다 읽었을 때도 그런 느낌은 전혀 들지 않았다. 특히 CS 관련된 책의 경우 아무래도 기술적인 내용이 많기 때문에 중간중간 툭툭 끊길 수가 있는데 개인적으로는 끊기는 느낌 없이 쉽게 읽혔었다. 하지만 그렇다고 해서 깊이 없이 얕게 알려주는 책은 아니다.  책을 전부 읽었을 때의 느낌은 이론적인 내용은 정말 꾹꾹 모두 눌러 담았구나 하는 생각이 주를 이루었다. 특히나 간단한 코드와 그림과 함께 어떤 식으로 작동하는지를 한번씩 추가해 주니 조금 더 이해하기 쉽고 컴퓨터가 이렇게 작동하고 있구나를 깨달을 수 있었다.




책의 첫 장에서는 컴파일러에 대해서 이야기해준다. 어쨌든 컴퓨터의 가장 기초는 기계어로 번역되어야 하는 점은 모두 알고 있을 것이다. 그 때 우리가 고수준의 언어로 만든 프로그램이 컴파일러를 통해 어떻게 어셈블리어로 변환되고 링커가 이를 어떻게 이어주는지에 대해서 그림과 함께 알려준다. 그 이후에는 우리가 개발하면서 가장 많이 맞닥뜨리는 부분인 프로세스와 쓰레드에 대해서 알려준다. 멀티 프로세스 부터 이에 대한 한계 그로 인해 태어난 스레드 등에 대한 설명을 이어나간다. 3장에서는 메모리와 관련된 이야기를 한다. 특히나 메모리에 대한 설명을 이어가다 보니 프로세스영역에서 힙 영역과 함께 연관지어서 설명을 한다. 이 때 가상메모리에 대해 엄청난 찬사를 이어나가는 것이 재밌었던 점이다. 4장은 CPU 관련 이야기이다. 초반에 회로에 대한 이야기가 나와서 조금 어지럽긴 했지만 옛날 생각이 나면서 흥미롭기도 했다. 가장 재미있었던 부분은 CISC 와 RISC 가 서로 경쟁하면서 시장을 점유해가는 이야기였으며 최신 MAC 의 ARM CPU 에 대한 이야기를 하면서 미래는 어떻게 될지 정말 모를 것 같다는 생각이 들었다. 5장은 캐시에 대한 이야기를 한다. 캐시를 이야기하면서 캐시의 동기화에 대해서 많은 이야기를 해줘서 재미있게 읽었었다. 마지막 파트는 입출력에 대한 이야기이다. 결국 모든건 파일로 연결된다는 이야기를 하고 DMA 에 대한 이야기도 하는데 흥미롭게 읽었던 것 같다.


책을 전부 읽었을 때, 이전에 배웠던 내용들이 새록새록 기억에 떠올랐다. 물론 이 책 자체가 두껍지는 않은 만큼 모든 내용을 깊게 다루기는 어려울 수 있다. 만약 더 궁금한 점이 있다면 한가지 파트만 깊게 파는 책을 보거나 하면 좋을 것 같았다. 특히 아무래도 실습관련된 내용은 없으니 추가로 관련 내용을 직접 실습해보면서 공부하는 것이 가장 도움이 될 것으로 생각된다. 특히나 OS 관련 실습의 경우 요즘엔 유투브 같은 곳에서 무료로 볼 수 있으니 한번쯤은 해보는 것이 좋을 것 같다.


오랜만에 CS 관련 서적을 읽으면서 재밌다는 생각을 하게 만들어준 책이였다. 그렇기 때문에 만약 CS 를 잊어버린 개발자라면 한번쯤 돌아보기 매우 좋은 책인 것 같아서 만약 주변 개발자가 도서 추천을 해달라고 한다면 이 책을 추천해줄 것 같다.


해당 컨텐츠는 길벗 출판사로부터 책을 제공받아 작성된 서평입니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬을 활용한 베이지안 통계 - 동전 던지기부터 월드컵까지 다양하게 배우는 데이터분석, 2판
앨런 B. 다우니 지음, 권정민 옮김 / 한빛미디어 / 2022년 6월
평점 :
장바구니담기




통계를 다루는 분들은 기본적으로 베이지안 통계에 대해서 잘 알고 있을 것이라 생각한다. 하지만 이를 개발하는 건 다른 이야기인데 이 책은 통계를 수학적으로  자세히 알려주는 것보단 pandas 등의 라이브러리를 활용해서 어떻게 코딩해야 할지를 알려주는 책이다.


많은 리뷰에도 나와 있듯이 이 책은 독자를 파이썬은 다룰 줄 알 뿐만 아니라 어느정도 통계 지식이 있는 사람으로 설정한 것 같다. 작성자의 경우 학부생 이후로 통계를 자주 다루지는 않았지만 그냥 관심사라서 꾸준히 읽고 있었다. 또한 직업 자체가 개발자기 때문에 코딩 자체에는 어려움이 없었다. 그래서 그런지 단순히 흥미로 읽어보기에는 딱 적절한 수준이 아니였나 싶다.


책의 목차만 봐서는 통계 기본부터 알려주는 것 같이 되어 있지만 사실상 처음에는 그냥 몸풀기라 보면 된다. 필요한 단순한 지식만을 짧게 이야기하고 넘어간다. 그렇기 때문에 통계적 지식이 없다면 이해하기 어려울 수도 있다. 그 후에 바로 베이지안 정리에 대해 알려준다. 사실 요즘엔 모르겠지만 작성자의 나이 정도라면 고등학교 수학에서 자주 봤던 문제일 것으로 생각한다. 그리고 관련된 여러 지식들을 차근차근 알려준다. 


책에서는 그래도 개념에 대해서 거의 두세줄에 하나씩 코드가 적혀져 있다. 그래서 더 책을 읽으면서 이해하기 쉬웠던 것 같다. 책 내용 자체가 어렵지 않고, 대부분의 독자는 아마 파이썬정도는 알고 읽지 않을까 싶어서 기초적인 내용이라고 보는 것이 좋을 것 같다. 개인적으로도 통계와 분석에 관한 책에 파이썬 기초가 적혀 있는 책들을 좋아하지 않기도 하고 말이다.


베이지안 통계를 파이썬 코드로 작성하고 싶은 사람들에게는 적절한 책인 것 같아 추천하고 싶고 요즘 이 분야에 흥미를 가지고 개인적으로 보는 사람들도 많을 텐데 그런 사람들에게도 추천하고 싶은 책이다.



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
똑똑한 코드 작성을 위한 실전 알고리즘 - 파이썬 예제로 문제 해결 전략 익히기
조지 하이네만 지음, 윤대석 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기




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


실제로 개발을 하면 알고리즘을 언제 쓰지 하다가도 계속 성능 향상을 하기 위해 어떤 부분을 튜닝해야 하나 고민한 적이 많다. 하지만 실제 알고리즘과 실무에서 적용하는 데에는 많은 부분들에서 어려움이 있기도 하고 코드가 더러워지는 경험을 하기도 한다. 하지만 그래도 개발자라면 알고리즘에 대해 한번 공부해야 한다고 생각하기 때문에 이 책을 신청해서 읽어 보았다.


개인적으로는 이 책이 특별하게 뭔가를 많이 알려주거나 했다고는 생각들지 않았다. 어떤 리뷰어분이 코딩 테스트의 심화를 알려주는 것 같다고 하는데 그 표현이 더 적절하다고 생각한다. 그러다보니 작성자의 경우에도 크게 와닿지는 않고 이론적인 부분을 다시한번 훝어봤다는 느낌만을 주었다. 하지만 책 두께가 얇기 때문에 완전 처음부터 공부해야 하는 사람이 아니라 이미 개발을 하는 사람에게 다시 리마인드 시키기 위한 용도로는 적절한 책인 것 같다.


책은 많은 알고리즘 서적이 그렇듯 자료구조로 시작해서 여러 알고리즘들을 설명해준다. 그리고 많은 알고리즘 서적에 있는 것처럼 연습문제가 존재해서 실제로 스스로 코딩해볼 수 있게 해준다. 그래도 다른 서적이랑 다른점을 보자면 파이썬 코드가 어떻게 동작을 하면서 알고리즘 성능을 높일 수 있는지 보여준다는게 아닐까 싶다.


작성자의 경우 실무에서 적용해보고 싶어서 이 책을 신청했었는데 역시나 실무와는 조금 거리감이 있다는 생각이 들었다. 머신러닝이나 인공지능이라면 모르겠지만 웹 백앤드의 경우에는 대부분의 성능이 db(캐시 등) 에 의해 발생해서 그런 것 같기도 하다.


하지만 만약 본인이 이미 실무자인데 이직을 하고 싶거나 할 때, 많은 알고리즘 부분을 잊어버려서 코딩 테스트나 인터뷰를 준비해야 한다면 이 책이 도움을 줄 것 같다. 심화적인 부분을 이야기해주기도 하고 책이 얇아서 한번씩 훝어보기 좋을 것 같다. 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
웹 개발자를 위한 자바스크립트의 모든 것 - ES2015-ES2020과 그 이후의 모든 것
T. J. 크라우더 지음, 조현석 옮김 / 길벗 / 2022년 8월
평점 :
장바구니담기



이 리뷰는 길벗 출판사에서 책을 제공받아 작성된 서평입니다.


Javascript는 ECMAScript 2015 이전과 이후로 프로그래밍 방식이 매우 바뀌었다는 것은 많은 개발자들이 공감할 것이다. 또한 그 이후 현재 ES2022 까지 7년동안 많은 부분들이 변화하고 새로운 기능들이 계속해서 받아들여지면서 어떤 기능들을 사용할 수 있고 어떤 식으로 새로운 기능들을 적용해야 할지 고민하는 개발자들이 많을 것으로 생각한다. 이 책은 기존 JS 언어가 아닌 ES2015(ES6) 부터 새롭게 추가된 기능들에 대해서 상세히 설명해주는 책이다.


작성자의 회사의 경우 모든 서비스를 JS 로 개발하고 있기 때문에 나름 JS 의 많은 부분을 알고 있다고 생각해 처음 책을 읽기 전에는 가볍게 읽어보려고 길벗 출판사에 요청하게 되었었다. 하지만 JS 를 공부했을 때 어렵다고 느꼈던 스코프 부분을 포인터를 이용해 설명하고, 루프문에서 작동하는 법에 대해 설명해 주는 등 상세하게 설명을 해주는 것을 보고 가볍게 읽을 만한 책은 아니라는 생각이 들었다.


그러다보니 책을 읽으면 읽을수록 초보자를 위한 도서는 아닐 것 같다는 생각이 들었다. 아마 처음 JS 를 접한 사람이 이 책을 읽기 시작한다면 JS 의 "쉬운언어" 라는 장점을 느끼지 못 할 것으로 생각한다. 하지만 JS 로 개발을 하면 할수록 많은 개발자들이 궁금한 부분들이 생길 텐데 이 책에서 그런 많은 부분을 해결해준다. 결국 처음에 읽기에는 어렵지만 개발자로 일을 하기 위해서는 알아야 하는 부분이라고 할 수 있을 것 같았다.


책은 ES2015(ES6) 이후의 거의 모든 기능들에 대해서 설명해준다. 처음에 let 과 const 를 설명한 후 이제는 모든 사람들이 사용하고 있는 Promise 와 async await 부터 해서 최근에 조금 유행하고 있는 WeakMap, WeakSet, 그리고 작성자가 요즘 공부하고 있는 Reflect, 공유메모리 등에 대해서 설명해준다. 하지만 이 책이 다른 책들과 다른점이라고 한다면 대부분의 기능에 대한 설명을 하나하나 자세히 설명해 준다는 것이다. 예를 들어 어떤 변수가 어떤 메모리를 가리키고 있기 때문에 이 변수는 변경이 가능하다 라는 등의 설명을 해준다는 점이다.


개인적으로는 책을 읽으면서 많은 부분을 실무에서 실제로 사용하고 있는 부분이기는 했다. 사실 많은 개발자가 이미 사용하고 있지 않을까 싶다. 특히나 Reflect 같은 경우는 Nestjs 를 사용한다면 반드시 공부하고 넘어가야 하는 부분이기도 하다. 하지만 책을 읽으면서 아 다 아는거다 라는 느낌이 아니라 내가 많은 부분을 놓치고 사용하고 있었구나 하는 생각이 들게 만드는 책이였다.


다시한번 말하자면 책 내용 자체는 쉬운 편에 속하지 않기 때문에 처음 JS 를 공부하는 분들에게 추천하고 싶지는 않고 개발을 이미 하고 있지만 JS 를 잘 모르는 것 같다고 느끼는 사람들에게 추천하고 싶다. 특히나 최근에 읽은 JS 관련 서적 중에서는 가장 마음에 드는 책이였다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 기반 금융 인공지능 - 파이썬과 케라스를 활용한 금융 시계열 데이터 기반 알고리즘 트레이딩 전략
이브스 힐피쉬 지음, 김도형 옮김 / 한빛미디어 / 2022년 9월
평점 :
장바구니담기



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


AI 가 유행하고 많은 분야에서 사용되면서 금융 분야에도 점차적으로 적용되기 시작되는 것 같다. 이제는 AI 가 적용되지 않은 분야를 찾기 어려울 것 같은데 이 책은 그중에서 금융에 인공지능을 어떻게 적용해 나가는지 알려주는 책이다.


사실 금융이라는게 개념도 어렵고 많은 어려운 내용들이 포함되어 있어서 접근하기 어려운 분야인데 이 책에서는 필요한 개념들 위주로만 설명해주고 실습 위주로 진행해 나가므로 거부감은 별로 들지 않았던 것 같다. 또한 인공지능에 대한 간단한 실습들을 진행하면서 이렇게 적용할 수도 있구나 하는 생각도 들었다.


책은 초반에 거의 모든 인공지능 서적이 그렇듯 인공지능의 탄생에 대해서 알려주고 분석을 진행할때 필요한 몇가지 개념들을 짚고 넣어간다. 만약 이미 다른 많은 서적을 읽었던 분이라면 이 부분은 건너뛰어도 될 것 같다. 그 이후에 3장에서는 간단한 금융지식에 대해서 짧게 설명한다. 그 후에는 이제 이 분야를 인공지능으로 어떻게 넘어가는지 데이터를 통해 분석하고 인공지능을 적용해 나가는 모습을 그려준다.


이 이후부터가 이 책의 핵심적인 내용인데 신경망과 강화학습을 금융 분야에 적용해서 실습하는 과정을 거친다. 여기서 알고리즘(DNN, RNN) 등에 관한 지식을 다루는 내용이 아니라서 이러한 내용은 없고 실제로 실습 위주로 진행한다는 점을 기억하면 좋을 듯 싶다. 그 후에는 3부에서 실습한 내용들을 바탕으로 매매전략을 세우는 알고리즘 트레이딩 전략을 세우는 방법을 설명한다. 실제로 금융분야에 종사한다면 이 부분이 가장 흥미롭게 바라볼 수 있을 것만 같다. 


요즘 직장인이라면 대부분이 주식 혹은 코인을 하면서 트레이딩을 하는데 한번쯤은 트레이딩 봇을 만들고 싶다는 생각을 해봤을 것 같다. 작성자도 그런 궁금증에 이 책을 신청해서 한번 읽어봤는데 역시 어려운 두 분야를 섞어놔서 그런지 조금 이해가 잘 안되는 부분이 많았던 것 같다. 하지만 AI 를 이미 하시고 있거나 금융쪽에 종사하는 분들이라며 더 흥미롭게 쉽게 읽어나갈 수 있지 않을까 싶다. 요즘 트랜드에 맞는 책이라는 생각이 들어 한번쯤 읽어보는 것은 추천한다.



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