스포일러 경고 기능이 추가됐습니다.
(펼침 메뉴 > 설정에서 변경 가능)
제목 - Computer Systems : A Programmer's Perspective
저자 - Randal E. Bryant, David R. O'Hallaron
이 책의 저자는 카네기 멜론 컴퓨터과학대학의 교수인데, 해당 학과에서 운영 중인 'introduction to computer system'의 강의를 토대로 개발된 컨텐츠라고 함. (컨텐츠라고 지칭한 이유는 후술하겠음)
한국어 번역은 충남대학교의 김형신 교수가 2판과 3판의 작업을 맡으셨음. 한국어 번역판을 구매하고 원서 pdf 파일이랑 같이 보긴 했지만 번역이 괜찮다고 생각함. 해설이 있는 연습문제의 경우에 이전 판본의 것을 그대로 썼다는 점만 제외한다면.
제목을 보면 알겠지만, '프로그래머의 관점에서 컴퓨터시스템을 이해해보자!'라는 내용임. 무한동력이나 마법이 있지 않는 이상에야 모든 컴퓨터들은 당연히 성능이나 용량의 제한이 있을 것이고, 그렇다면 컴퓨터에게 어떤 계산을 하도록 하는 무언가를 설계하는 프로그래머는 컴퓨터가 어떤 식으로 정보를 처리하는지 알아야 한다는 것이 이 책의 출발점인 것 같음.
그렇기 때문에 본 저서에서는 컴퓨터의 계산과 관련이 있는 다양한 내용들이 등장함. 처음 챕터에서는 이진수, 16진수, 정수, 실수, 부호 등에 대한 것을 다루고, 그 다음은 기계수준의 표현을 위한 어셈블리어, 그리고 CPU의 구조, 성능 최적화, RAM 등의 메모리 구조... 등등등으로 그야말로 컴퓨터 시스템이 굴러갈 때 필요한 여러가지들에 대해서 알아보고, 그것을 비용 또는 효율성의 측면에서 따져보고 있음. 사실 더 설명을 하고 싶지만, 나도 이러한 것들을 갓 알기 시작한 늅늅이기도 하고, 여기는 개발자 커뮤가 아닌 도서갤이기도 하니까...
아무튼 정리를 하자면, 여기에서 다루는 것들은 정말 제목 그대로 프로그래머가 프로그램을 만들 때 컴퓨터 자원을 최대한 효율적으로 이용할 수 있도록 하는 통찰력을 고취시켜준다고 할 수 있음.
개인적으로 이 책, 또는 이것을 포함하여 이 저자가 운영하고 있는 컨텐츠 자체에 대해 나는 훌륭하다고 생각함. 왜냐하면, 여기에서 다루는 내용을 실습할 수 있는 컨텐츠를 개발해놓았기 때문임. 그러니까 csapp.cs.cmu.edu라는 개방된 사이트에서 9개의 실습 labs를 제공하고 있고, 이것은 본 저자가 단순한 수준으로 제한된 조건 하에서 실습을 수행할 수 있도록 프로그램을 만든 거임. 그리고 이 책을 채택하여 강의하는 학과 교수는 이 실습을 토대로 각자의 사정에 맞추어 실습 과제를 운영하고 점수를 매길 수 있게 되어있음.
혹시 독붕이들 중에서 컴퓨터쪽에 관심이 있거나, 이쪽으로 진학 예정이거나 이미 공부 중이라면, 이 책을 꼭 한 번은 공부해보는 것을 추천하고싶음.
봄랩하시고 오셨습니까 ㅋㅋ - dc App
설마 님도 컴공?ㅋㅋ - dc App
ㅋㅋㅋㅋㅋ 제 학과 강의에서는 데이터, 폭탄, 어택, 최적화 이렇게 네 개를 했슴다 ㅋㅋㅋ
상당히 유명한 책입니다. 카네기 멜론은 현재 컴퓨터 공학 분야의 세계 1위죠. 학교의 명성을 확인하게 해 주는 책입니다
맞습니다. 이 책으로 공부를 하면서, 어떻게 이런 컨텐츠를 개발했을까 하는 경외심이 들었습니다 ㅋㅋㅋ