본문 바로가기

카테고리 없음

밑바닥부터 만드는 컴퓨팅 시스템 후기 The Elements of Computing systems

 
 

nand2tetris
밑바닥부터 만드는 컴퓨팅 시스템 책

어떤 책인가요 ? 

제목 그대로 하드웨어 부터 소프트웨어까지의 모두 직접 만들수 있는 환경을 제공하여 동작을 이해할 수 있게 도와주는 책입니다!!  밑바닥 부터 만드는 컴퓨팅 시스템
 

the elements of computing systems
하드웨어 계층 부터 소프트웨어 계층까지 만드는 큰 과정

더보기

이 책의 저자인 노암 니산,시몬 쇼켄  은 예전에 비해 컴퓨터 기술이 복잡해져 원리를 명로하게 이해하기 어려워 진 요즘 복잡한 시스템을 하나씩 다 배우고 전체적인 흐름을 이해하기가 어려워 진것 같다 느꼈고 컴퓨터의 전체적인 흐름을 밑바닥 부터 직접 구성 할 수 있게 회로도 부터 운영체제 까지 실제로도 만들 수 있는 단순하지만 강력한 컴퓨터 시스템을 설계 하였고 그 컴퓨터 시스템을 이 책을 통해 밑바닥 부터 직접 다 만들어 볼 수 있게 하였습니다 !

유튜브에 보면 이 책을 바탕으로 실제 컴퓨터를 만든 사례도 많이 확인 할 수 있습니다

보기

 


왜 추천 하나요 ?

이 책은 CS 를 공부하기에 정말 최고의 책이라고 생각 합니다.
특히 컴퓨터에서 AND 게이트 OR 게이트가 왜 사용 되는거지 ? 
라는 의문문이 드는 분 께 추천 드리며 저도 그 중 한명이었는데 처음에 작은 회로를 구성하여 합쳐 가며
ALU , CPU 가 완성 되고 그 위에서 돌아가는 컴파일러 및 운영체제 까지 모든 과정을 이해하며 만들 수 있습니다!
그리고 컴퓨터를 처음 부터 만들어보고 싶었던 분들에게 강력 추천합니다!




좋았던 부분 

총 12개의 챕터로 구성 되어있고 챕터별로 설명과 명세서를 바탕으로 모두 구현이 가능 했던 부분이 정말 재밌었습니다.
하드웨어의 경우에는 CODE  라는 책에서 먼저 자세한 설명을 본 후 명세서를 보면 이해가 잘 되어 부담없이 좋았습니다.
그리고 소프트웨어를 구현하는 부분에서 컴파일러를 만들어 보게 되면서 컴퓨터가 코드를 어떻게 읽고 실행하는지 이해할 수 있었고 파싱 및 , 코드의 구문을 분석하는 기법을 알 수 있게 되어 언어에 대한 이해가 높아짐을 크게 느꼈습니다.




아쉬웠던 부분

아쉬운 부분이 존재해도 그 조차도 정말 배울 가치가 높았습니다 
마지막 운영체제 부분에서 아쉬움을 느꼈는데 생각했던건 윈도우와 같은 운영체제 였으나 
운영체제에서 실행을 할 수 있는 라이브러리 정도를 만드는 느낌이었다 하지만 코딩을 할 때 내장 함수가 어떤식으로 구현되는지 궁금했던 분들에게는 큰 도움이 될 수도 있을 것 같단 생각이 들었습니다 
 
그리고 컴파일러를 만들 때 명세서의 내용 및 설명이 좀 부족했던 부분에 대해서는 아쉬웠으나 
github 에 nand2tetris 코드가 올라온 것들을 참고하면서 만들면 충분히 만들 수 있긴 했습니다




마치며

이 책은 모든 컴퓨터를 좋아하는 사람들이 해보기 좋을 것 같다 느꼈고 CS를 원래 잘하시는 분들껜 새로운 재미와 흥미를 남겨줄 수 있을 것 같고
입문자의 경우 튼튼한 밑바닥을 다져져 앞으로 CS를 공부할 때 이 책의 기반을 토대로 막히더라도 큰 구조를 이해했기 때문에 잘 나아갈 수 있을 것 같습니다. 
이상 이 책을 써준 Noam NisanShimon Schocken 에게 감사하고 번역해서 출판해준 인사이트 에 감사합니다 
 
 
 
 
nand2tetris project with @enkoding1 and @junha-ahn