데이터 분석을 위한 줄리아 - 시계열 데이터, 예측 모델, 랭킹 등 핸즈온 프로젝트로 마스터하는 줄리아 데이터 분석
보구밀 카민스키 지음, 류현지 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


《데이터 분석을 위한 줄리아》(보구밀 카밀스키 지음, 류현지 옮김, 제이펍, 2024)은 줄리아의 장점과 다양한 기능을 실제 데이터 분석 예제를 통해 소개합니다. 데이터 분석에 관심과 새로운 프로그래밍 언어를 배우고 싶은 호기심이 있는 사람에게 안성맞춤인 책입니다.



데이터 분석을 위한 프로그래밍 언어로서 줄리아의 인기가 높아지고 있습니다. 저자인 보구밀 카민스키는 줄리아 생태계에서 데이터 조작을 위한 핵심 패키지인 DataFrames.jl의 주요 개발자 중 한 명입니다. 20년 이상의 데이터 과학 프로젝트 경험과 데이터 과학을 가르친 저자의 경험과 노하우가 책에 잘 반영되어 있어, 줄리아 언어를 통한 데이터 분석의 이해에 도움이 되었습니다.






책은 줄리아 언어의 효율적이고 읽기 쉬운 프로그램을 작성하는 데 도움이 되며, 필수 데이터 분석 스킬을 마스터하는 데 도움을 줍니다. 제가 느꼈던 《데이터 분석을 위한 줄리아》가 가진 장점입니다. 

1. 줄리아로 다양한 데이터 형식을 읽고 쓰는 방법을 소개합니다.
2. 현실에 있을 법한 예제와 연습 문제가 있어 줄리아를 실용적으로 배울 수 있습니다.
3. 각 장의 마지막에 요약으로 배운 내용을 정리하기 편했습니다.
4. 데이터 분석 결과를 공유하는 웹 서비스를 만드는 방법을 소개합니다.

그 밖에도 줄리아 설치 및 환경 설정에 대한 자세한 설명, 깃허브에 연습 문제에 대한 풀이를 제공하여 유용했습니다.





책은 줄리아에 대한 경험이 없는 독자들을 대상으로 데이터 분석의 관점에서 필요한 줄리아 언어를 쉽고 빠르게 알려줍니다.  다만, 데이터 분석을 초심자의 관점에서는 설명하지 않아 데이터 분석에 대한 경험이 없는 사람들보다는 최소한 파이썬이나 R을 통해 데이터 분석을 수행한 데이터 분석에 익숙한 사람들에게 적합하다고 생각했습니다. 


이 책의 목표는 모든 사용자가 데이터 분석을 할 때 유용하게 사용할 수 있는 
줄리아 핵심 기능과 자주 사용되는 패키지에 대해 알려주는 것이다. 
《데이터 분석을 위한 줄리아》, 시작하며


책은 데이터 변환, 시각화 등의 기술을 연습하면서 줄리아 특징을 알아보는 것부터 시작하여 실생활에 가까운 예제를 통해 필수 데이터 분석 기술을 마스터할 수 있습니다. 줄리아 언어의 기본부터 고급 기능까지 폭넓게 다루고 있으며, 데이터 과학자들이 실제로 데이터 분석 작업을 수행할 때 유용하게 사용할 수 있는 팁과 노하우를 제공합니다.





책에서 인상 깊게 읽었던 부분은 줄리아 프로그램을 사용하여 데이터 분석 결과를 공유하는 웹 서비스를 만드는 방법이었습니다. 많이 들어보기는 했지만 실습해 본 적은 없었던 몬테카를로 시뮬레이션에 대한 학습과 줄리아로 멀티스레딩을 사용하는 방법과 genie.jl 패키지를 통해 웹 서비스를 구축하면서 분석 결과를 사람들에게 편하게 제공하는 실습을 해보았는데, 웹 서비스 구축이 생소한 데이터 과학자에게 유용할 부분이라고 느꼈습니다. 

《데이터 분석을 위한 줄리아》는 데이터 과학을 위해 태어난 언어인 줄리아와 데이터 분석과의 만남을 아름답게 보여주는 책으로, 줄리아에 대한 이해와 실무적인 데이터 분석이라는 이론과 실전을 모두 갖추고자 하는 사람들에게 추천합니다.


"해당 서평은 제이펍 출판사로부터 책을 제공받아 작성했습니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
소프트웨어 요구사항의 정수 - 20개의 실무 사례로 알려주는 요구사항 개발의 핵심 지식과 실전 경험
칼 위거스.캔디스 호캔슨 지음, 심재철 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


『소프트웨어 요구사항의 정수』(칼 위거스·캔디스 호캔슨 지음, 심재철 번역, 제이펍, 2024)는 소프트웨어 개발의 성공적인 출발을 위한 요구사항을 실무 사례를 통해 배우는 책입니다.


저자들은 프로젝트의 요구 사항을 개발하고 관리하는 데 있어 20가지의 핵심 실천 방법을 소개합니다. 요구사항을 올바르고 정확하게 알아내기 위한 요구사항의 정의부터 시작하여 도출·분석·명세·검증·관리까지 요구사항 개발 여정을 다루는 책입니다.



전통적인 프로젝트(폭포수)와 에자일 프로젝트 모두 적용 가능한 사례들을 제공하며, 이를 통해 비즈니스 문제에 대한 이해와 더 나은 해결책을 구체화할 수 있습니다. 그리고 의사 결정자 및이해 당사자와 커뮤니케이션을 개선하며, 기능을 올바른 순서로 구현하고, 요구사항 관리를 통해 다양한 상황에서 대응할 수 있게 도와줍니다.


책은 요구 사항 계획·수집·분석·명세·검증 및 관리에 대한 사례를 제공함으로써, 복잡한 소프트웨어 요구 사항을 다루는 데 있어 도움을 줍니다. 또한, 각 실천 방안에 대해 즉시 실행할 수 있는 다음 단계를 제안함으로써, 이론적인 지식을 실무에 적용하는 데 있어 가이드를 제공합니다.



『소프트웨어 요구사항의 정수』는 많은 장점을 가지고 있던 책이었습니다. 


1. 효과적인 20가지의 요구 사항 실천 방법을 제시합니다. 비즈니스 문제를 이해하고, 효과적인 해결책을 기술하고, 올바른 기능을 올바른 순서로 구현하고, 변화에 적응할 수 있도록 돕습니다.


2. 템플릿과 체크리스트, 다양한 다이어그램으로 이해를 돕습니다.


3. 비즈니스 분석가, 요구 사항 엔지니어, 프로덕트 매니저, 프로덕트 오너, 개발자 등 다양한 직무에서 자신감을 가지고 핵심 실천 방법을 적용할 수 있는 실용적인 세부 정보를 제공합니다.


4. 문제를 해결할 수 있는 실천 방법들을 행동으로 옮기기 위한 제안된 다음 단계들을 제공합니다.



추천하고 싶은 독자는 비즈니스 분석가, 요구사항 엔지니어, 제품 관리자, 제품 소유자 또는 개발자 등 비즈니스 분석과 관련된 다양한 역할을 맡고 있는 실무자들입니다. 이 책은 요구사항 문제를 분석, 비즈니스 목표를 정의하며, 설루션의 경계를 설정하는 방법을 배우고자 하는 사람들에게 도움이 될 것입니다.

소프트웨어 개발과 관련된 직무를 수행하는 전문가들뿐만 아니라, 비즈니스 분석과 요구 사항 관리에 관심이 있는 학생과 취업 준비생에게도 추천합니다. 또한, 재밌는 실무 사례가 가득해 요구사항 개발의 실무를 배우고자 하는 초심자나 경험 있는 전문가들에게도 유용해 보입니다.



모든 프로젝트에는 요구사항이 있다
『소프트웨어 요구사항의 정수』



책은 요구 사항 엔지니어링 분야의 방대한 지식을 20가지의 핵심 실천으로 압축하여, 거의 모든 프로젝트에 적용할 수 있는 중요한 요구 사항 활동을 제시합니다. 단순히 이론적인 지식을 전달하는 것이 아니라, 실제 프로젝트 수행에 있어 효과를 높일 수 있는 실무적인 노하우를 제공합니다. 이를 통해 현장에서 다양한 역할을 수행하는 비즈니스 분석가, 요구 사항 엔지니어, 제품 관리자, 제품 소유자, 개발자들은 도움을 많이 얻을 수 있을 것입니다. 또한 책에서는 팀 전체가 공유할 수 있는 핵심 개념, 용어, 기술을 통해 프로젝트 수행 과정에서 더 효과적으로 협력할 수 있도록 도와줍니다.



가장 인상 깊게 읽었던 부분은 실무 사례 8번, '데이터 개념 및 관계를 평가한다'였습니다. 개체 관계도인 ERD(Entity Relationship Diagram)에 대한 설명과 이를 통해 핵심 비즈니스를 분석하고 데이터 흐름도를 통해 데이터의 이해도를 향상시킬 수 있었습니다. 시스템 교체, 데이터 유형과 필드의 길이 등 사례를 통해, 데이터와 함께 데이터에 대한 데이터인 메타데이터를 비롯해 세부적인 정보를 담은 데이터 사전으로 오류를 사전에 예방할 수 있는 방법을 알 수 있었습니다.    



책은 170여 페이지의 적은 분량이지만 핵심만을 담아, 요즘같이 두꺼운 책을 긴 호흡으로 읽기 힘든 시대에 편한 마음으로 읽었던 책이었습니다. 요구사항에 대한 궁금한 사람에게 필요한 요구사항을 간결하게 제시하고, 프로젝트를 위한 팀이 고려해야 할 가장 필수적인 실천 방법들을 소개하고 포괄적으로 다루므로 요구사항 개발과 요구사항 관리라는 단단한 토대를 만들고 싶은 분들에게 추천하고 싶습니다.




"해당 서평은 제이펍 출판사로부터 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
소프트웨어 개발의 진주 - 60개의 레슨으로 배우는 소프트웨어 개발의 핵심 지식과 실전 경험
칼 위거스 지음, 심재철 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


『소프트웨어의 개발의 진주』(칼 위거스 지음, 심재철 옮김, 제이펍, 2024)는 저자가 소프트웨어 개발에서 겪은 경험과 지혜를 담은 책입니다. 저자인 칼 위거스(Karl Wiegers)는 소프트웨어 엔지니어링, 프로젝트 관리, 비즈니스 분석 등 다양한 분야에서 25년 이상의 경력을 가진 전문가로, 이 책을 통해 그가 겪은 시행착오와 성공 사례를 소개합니다. 



책은 요구사항, 설계, 프로젝트 관리, 문화와 팀워크, 품질, 그리고 프로세스 개선 등 소프트웨어 개발의 여섯 가지 핵심 요소에 대한 60가지 교훈을 제시합니다. 각 장은 실제 사례 연구와 구체적인 해결책을 통해 이러한 교훈들을 심도 있게 다루고 있으며, 독자들이 자신의 프로젝트에 적용할 수 있도록 실용적인 조언을 제공합니다.





인상 깊게 봤던 부분은 문화와 팀워크와 같은 소프트웨어 개발에서 보이지 않는 부분을 상당히 강조한다는 것이었습니다. 이 책은 개발의 정수를 다루지만 프로그래밍 언어로 작성된 코드가 나오지 않으며, 개발자가 아니더라도 IT 분야에 몸담고 있는 모든 사람들이 부담 없이 편하게 읽을 수 있던 책이었습니다. 


『소프트웨어의 개발의 진주』에서 느꼈던 장점들입니다. 

1. 다양한 사례를 통한 구체적인 해결책을 제공합니다. 저자를 비롯한 사람들의 경험으로 실수를 줄여 실무를 빠르게 개선할 수 있도록 돕습니다.


2. 프로젝트 관리에서 흔히 발생하는 문제들을 예측하고 피하는 방법을 제시합니다.


3. 소프트웨어 개발 문화와 팀워크를 만드는 방법을 소개합니다.


4. 성공적인 프로젝트와 비즈니스 성과를 달성하기 위한 프로세스 개선을 이해합니다.




이 책은 소프트웨어 개발에 대한 심도 있는 이해를 하고 싶거나, 경험을 통한 실무를 배우고자 하는 사람들, 그리고 소프트웨어 개발 과정에서 발생할 수 있는 문제들을 예방하고자 하는 사람들에게 추천합니다. 특히, 개발자·비즈니스 분석가·관리자에게 유용해 보입니다.



내가 이 책을 쓴 이유는, 이 책에 수록된 것과 동일한 레슨들을

여러분이 따로 힘들게 축적할 필요 없도록 하기 위해서다.

『소프트웨어 개발의 진주』, 3페이지



책의 제목이기도 한 진주는 '보석의 한 종류로서 조개가 체내에 들어온 이물질에 견디기 위해 만들어 감싼 무기체 덩어리'라고 합니다. 저자가 겪은 고통으로 만들어진 아름다운 진주를 이 책을 통해 만날 수 있었습니다. 

『소프트웨어 개발의 진주』는 단순히 이론적인 지식을 전달하는 것이 아니라, 실제 경험에서 얻은 교훈을 바탕으로 독자들이 실무에서 직면할 수 있는 다양한 상황에 대처할 수 있도록 도왔습니다. 책은 소프트웨어 개발의 복잡성과 고통을 이해하고, 이를 극복하기 위한 실질적인 방법론을 제공합니다. 소프트웨어 개발의 복잡한 문제들을 해결하는 데 있어 실질적인 도움을 줄 수 있는 통찰력과 교훈을 제공하며, 이를 통해 소프트웨어 실무를 한 단계 끌어올릴 수 있을 것입니다.

책은 소프트웨어 개발 분야에서 오랜 시간 동안 축적된 지식과 경험을 통해, 실무에 적용할 수 있는 실질적인 교훈을 제공합니다. 저자의 통찰력이 녹아든 60개의 레슨을 통해 제시하는 구체적인 권장 사항은 소프트웨어 개발 프로젝트의 성공을 위한 지름길이 될 것입니다. 고통받지 않는 소프트웨어 개발을 위해, 모두가 행복한 소프트웨어 개발을 위해 이 책을 추천하고 싶습니다.



"해당 서평은 제이펍 출판사로부터  책을 제공받아 작성된 서평입니다."




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
제로부터 시작하는 러스트 백엔드 프로그래밍 - 뉴스레터 API를 만들며 배우는 러스트 A to Z
루카 팔미에리 지음, 김모세 옮김 / 제이펍 / 2024년 2월
평점 :
장바구니담기


『제로부터 시작하는 러스트 백엔드 프로그래밍』(루카 팔미에리 지음, 김모세 옮김, 제이펍, 2024)는 개발의 처음부터 끝까지 '러스트'적인 백엔드 개발을 해보고 싶은 사람들을 위한 책입니다. 



이 책을 모두 읽었을 때 러스트를 채택할 것인지 아닌지는 여러분의 선택이다. 하지만 그 결정을 내리는 데 필요한 모든 것을 갖게 될 것이다.

『제로부터 시작하는 러스트 백엔드 프로그래밍』, 서문


책은 이메일 뉴스레터를 보내는 친숙한 예제를 통해 러스트를 통한 백엔드 개발을 가르쳐줍니다. 서비스를 처음부터 끝까지 만들면서 러스트의 특징을 소개하면서 개발에 필요한 도구와 기술까지 다룹니다. 




책의 장점

- 러스트로 백엔드 개발을 해보고 싶은 사람들을 위한 책입니다. 책을 통해 클라우드 네이티브 애플리케이션을 개발하는 방법을 익힐 수 있으며, 관측가능성·테스트·보안도 심도있게 다룹니다.

- 책은 단순히 코드를 따라치는 것이 아니라, 왜 그렇게 코드를 작성하는지, 어떤 문제를 해결하려고 하는지, 어떤 방법이 더 좋은지 등을 설명해줍니다. 테스트, 리팩토링, 배포 등의 실제 개발 과정도 다루어줍니다.

- 저자가 직접 러스트로 개발하면서 겪은 경험과 지식을 바탕으로 이 책을 출간했습니다. 러스트를 다룬 정보를 얻기 힘든데, 저자는 책의 곳곳마다 팁과 노하우를 많이 제공해줍니다.




책에서 아쉬웠던 부분

- 책은 웹 개발에 대한 기본적인 지식이 있는 사람들을 대상으로 합니다. 특히 웹 개발에 대한 기초, 러스트라는 언어에 대한 기초가 없다면 이 책은 어렵다고 생각합니다. 

- 책에서 그림으로 도식화하여 설명하는 부분이 많지 않다는 점도 아쉬웠습니다. 현재 개발하는 과정이 어느 부분인지, 앞으로 무엇을 개발할지 글로만 설명하여 파악하기 어려웠습니다.


그 외에, 디지털 오션보다 'AWS와 같은 대중적인 클라우드를 이용했으면 어땠을까?'라는 아쉬움도 있습니다.


추천 독자

러스트로 백엔드 개발을 해보고 싶은 개발자입니다. 다른 개발 분야·다른 언어를 사용하고 있더라도, 책을 통해 러스트의 장점과 특징과 더불어 사용자의 요구사항을 이해하고 적용한 API를 개발해보면서 생산성 있는 개발 방법을 배울 수 있었습니다.


러스트는 수 년간 개발자들이 좋아하는 언어 1위로 뽑혔던 언어입니다.(출처: 스택오버플로우) 이 책은 그런 러스트를 활용하며 백엔드 개발을 하는 방법을 소개해주는 책입니다. 성능, 보안, 테스트, 보안까지 소프트웨어 개발에 필요한 여러 방법들을 소개하면서 러스트를 이미 사용 중인 사람에게도, 러스트를 처음 접해보는 사람이더라도 도움이 될 책이라 생각합니다.    


책은 다른 개발 책과 달리, 예제의 모든 것을 구현하지 않습니다. 저자는 연습 요구 사항을 남겨두어 독자들이 '스파르타'식으로 훈련시키고, 관련 있는 주제들을 소개하여 더 공부할 수 있게 도움을 줬습니다. 그리고 저자는 오류와 해결과정, 여러가지 옵션을 하나하나씩 실행하며 신중한 개발을 위해 천천히 진행합니다. 편한 방법인 처음부터 정답을 알려주는 것이 아닌, 실제 개발을 하면서 겪은 저자의 눈물나는 노력이 책이 잘 담겼다고 생각합니다.


책은 '러스트로 백엔드 개발이 가능할까?'라는 의구심을 넘어, 백엔드 개발의 선택지에 러스트가 들어갈 수 있다는 생각이 들었습니다. 러스트로 백엔드 개발을 하고 싶은데 어디서부터 시작해야 할지 모르는 사람들이라면, 가장 먼저 읽어야 하는 책입니다. 책을 통해 러스트로 백엔드 개발을 할 수 있는 능력과 자신감을 얻을 수 있을 것입니다.



해당 서평은 제이펍 출판사로부터 책을 제공받아 작성했습니다. 감사합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
컴퓨터 시스템 딥 다이브 - C 언어부터 어셈블리, 아키텍처, OS까지 한 꺼풀씩 벗겨보는 컴퓨터 시스템
수잰 J. 매슈스.티아 뉴홀.케빈 C. 웹 지음, 김모세 외 옮김 / 한빛미디어 / 2023년 12월
평점 :
장바구니담기


『컴퓨터 시스템 딥 다이브』는 프로그램이 실행되는 방식을 이해하기 위한 컴퓨터 시스템(컴퓨터 아키텍처, 컴퓨터 구조, 병렬 컴퓨팅 등)을 소개하는 책입니다. 



컴퓨터 시스템은 사용자가 컴퓨터에서 프로그램을 운용할 수 있도록 컴퓨터 하드웨어와 특정한 시스템 소프트웨어를 결합한 것을 말합니다. 책은 C언어부터 차례대로 아키텍처, 어셈블리, 운영체제, 병렬 프로그래밍까지 소개하며, 낮은 계층인 하드웨어부터 높은 계층인 시스템 프로그래밍까지 전반적인 컴퓨터 시스템을 다룹니다. 


컴퓨터 시스템이 무엇이고 프로그램이 어떤 원리로 실행하는지 이해하면,

효율적으로 실행되는 코드를 설계하고 시스템의 기능을 최대한 활용할 수 있다.

p.27


책은 총 5부와 15장으로 구성되어 있습니다. 

주제별로 독립적인 내용을 다루고 있기 때문에, 순서대로 진행하지 않고 본인이 학습하고자 하는 부분만 읽으면서 학습해도 됩니다.



1부에서는 C 프로그래밍 언어에 대해 소개합니다. C 프로그래밍의 기초와 심화, 디버깅하는 법을 살펴봅니다.

2부에서는 컴퓨터 시스템을 이해하는 기초인 바이너리와 데이터 표현법, 폰 노이만 아키텍처를 기반으로 한 컴퓨터 아키텍처를 소개합니다.

3부에서는 기계가 해석할 수 있는 기계와 가장 근접한 어셈블리 프로그래밍에 대해 살펴봅니다. 

4부에서는 성능에 영향을 미치는 요소는 무엇이고, 프로그램을 어떻게 최적화할 수 있는지에 대해 소개합니다. 이를 위해 저장소 메모리 계층 구조, 코드 최적화, 운영체제를 살펴봅니다.

5부에서는 공유 메모리와 스레드를 통한 최적화와 병렬 프로그래밍(이종 컴퓨팅, 분산 메모리 시스템, 고성능 컴퓨팅(HPC) 등)에 대해 소개합니다.



책에서 다루는 핵심 주제는 바로 ‘실행’입니다. ‘어떻게 하면 컴퓨터 시스템에서 실행을 효율적으로 할 수 있을까?’를 중점적으로 다룬 책이라고 할 수 있습니다. C언어로 작성된 프로그램이 어떻게 실행되고, 어떻게 구조를 변경하여 성능을 최적화할 수 있는지 알 수 있게 하는 책이었습니다. 



책에서 좋았던 점

✅ C 언어의 문법과 기능을 파이썬과 비교하며, 기본부터 심화적인 부분까지 포괄적으로 배울 수 있었습니다.

✅ 다른 책에서 잘 다루지 않는 어셈블리 언어를 소개하여 컴퓨터 구조와 운영체제의 내부 동작을 깊이 이해할 수 있었습니다.

✅ 책 한 권으로 컴퓨터 시스템을 학습할 수 있는 구성. 여러 주제를 한 권으로 배울 수 있어 가성비 측면에서 좋았고, 다루는 주제가 독립적이기 때문에 원하는 순서로 읽을 수 있어 매력적이었습니다.

✅ 부연 설명을 하는 글 상자, 중요한 정보를 강조하는 노트, 주의를 기울여야 하는 경고로 효과적인 학습이 가능했습니다.



책에서 아쉬웠던 점

❗ 전반적으로 어려운 책의 난이도. 컴퓨터 공학이 아닌 다른 전공자나 입문자가 읽기에는 어려운 책인 것 같습니다. 

❗ 컴퓨터 시스템의 전반적으로 다루지만 어느 부분(어셈블리)은 심화적인 내용으로 깊숙이 배우는 반면, 어느 부분(운영체제)은 기초적인 내용만 다뤄서 아쉬웠습니다.  

❗ 독자 스스로 풀어 볼 수 있는 문제가 부족했습니다. 


책을 읽기 전 '굳이 어셈블리를 배워야 할까?' 궁금했었습니다. 우리가 작성한 코드를 변환하고, 오류를 발견하고 타입까지 추론해 주는 컴파일러의 발달로 인해 어셈블리를 배워야 할 이유가 점점 사라지고 있지만 저자는 4가지 이유로 설명하고 있습니다.


1. 가치 있는 프로그램의 세부사항을 감추는 고수준의 추상화

2. 리소스가 제한돼 컴파일러를 사용할 수 없는 시스템

3. 취약점 분석

4. 시스템 수준의 소프트웨어에서 중요한 코드 순서


이외에도 책에서는 유용한 팁들이 가득합니다. 악의적인 코드를 삽입해 의도적으로 다른 프로그램이 실행되게 만드는 버퍼 오버플로 악용을 구현 후 보호하는 방법(실행 영역 제한, 길이가 지정된 C언어 함수의 사용 등), 디버깅이 필요한 이유(버그를 발견하고 파악)와 디버깅 도구(GDB, 발그린드)의 사용법 소개, 코드 성능을 개선하고자 하기 위한 효과적인 방법(좋은 데이터 구조와 알고리즘 선택하기, 메모리 사용에 주의하기, 복잡한 코드는 여러 함수로 개선하기) 등 주니어 개발자부터 숙련자까지 도움이 뼈와 살이 될 조언이 많이 있었습니다. 


책을 통해 무엇을 얻을 수 있을지 궁금한 독자들을 위해 책의 표지가 많은 힌트를 줍니다. 잠수복을 입고 깊은 바닷속으로 들어가 조개를 발견하는 표지는, 컴퓨터 세계 속으로 들어가 하나하나 발견하는 호기심과 탐구력입니다? 책을 다 읽게 되면 아득하게만 보였던 컴퓨터의 세계가 흥미롭고 아름다운 세계였다는 것을 알게 되었습니다.

   

책을 읽고 느낀 점을 한 마디로 표현하면 ‘전주비빔밥’입니다. 각 주제별로 독립적이면서, 유기적으로 구성되어 따로 읽어도 될 만큼 충분한 학습이 가능했습니다. 미국 대학교에서 교재(미 육군사관학교, 캘리포니아 공과대학, 듀크대학교 등)로 사용되는지 알 수 있을 만큼 탄탄한 구성이 돋보였던 책이었습니다.


특히 저에게 많은 도움이 되었던 부분은 병렬 프로그래밍이었습니다. HPC(High Performance Computing)와 HDA(High-End Data Analysis)라는 두 축을 토대로 HPC에서는 AI 시대에 주목을 받는 하드웨어 가속기(GPGPU), 엔비디아의 CUDA, HDA에서는 클라우드 컴퓨팅, 분산 메모리 시스템과 빅데이터 처리의 핵심인 맵리듀스에 대한 소개까지 최신 병렬 프로그래밍 시스템에 대해 알 수 있었습니다. 


추천 독자로는 C언어, 컴퓨터 구조와 운영체제 기초에 대해 학습하고 더 심화적인 내용을 공부하고 싶은 사람, 내가 만든 코드가 어떻게 작동하는지 궁금한 대학생, CS 지식의 밑바닥부터 공부하고 싶은 개발자에게 추천합니다.  


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


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