작년(23년) 8월부터 읽기 시작했던 이 책을 드디어 다 읽었다. 🎉 하루에 소단원 하나씩 읽기로 규칙을 정해서 완독까지 대충 5개월 좀 넘게 시간이 걸렸다.
읽게 된 계기는 이렇다. 개발자로 23년 취업에 성공했다. 컴퓨터 관련해서 전공하지 않았기 때문에 컴퓨터 배경지식이 전혀 없는 상황이었다. 따라서 CS 공부가 필요하다고 생각만 하고 있었다. 생각만 계속하다가는 앞으로도 공부 못하겠다는 생각이 들었다. 그래서 가장 쉬운 책부터 시작하기로 했다.
사실 개발자가 되겠다고 다짐한지 얼마 지나지 않았을 때 관련 주제로 얇은 전공책을 하나 구매했다. 처음에는 오기로 읽었지만 도통 무슨 내용인지 알 수가 없어서 1주일도 안 돼서 포기한 경험이 있다. 심지어 이제는 퇴근 후에 책을 읽어야 하는 상황이다. 그래서 최대한 쉬운 책을 찾고 싶었다. 그래서 몇몇 책들을 둘러보다가 "혼자"라는 키워드가 맘에 들어서 선택했다. 제목만으로 나 같은 사람도 끝까지 읽을 수 있다는 자신감을 주었달까,,,
이 책은 이름 그대로 컴퓨터 구조(하드웨어)와 운영체제(소프트웨어)를 모두 다루고 있다. 각각의 부분에서 어떻게 동작하는지 설명한다. 관련한 지식이 전무하던 나에게는 많은 도움이 되었다. 클럭이 무엇이고, 하드 디스크는 어떻게 동작하고, 파일 시스템 등등 컴퓨터의 전반적인 내용을 학습하기에 딱 맞는 책이었다. 나같이 배경지식이 없는 사람을 위한 책이라서 모든 내용이 어렵지 않게 구성되어 있다. 코드가 나오는 부분은 무척 적으며 간단한 도식으로 쉽게 이해할 수 있게 구성되어 있다.
인상적인 부분이라면 운영체제 부분이다. 어떤 문제가 있을 때 그 문제를 어떻게 해결하였는지 접근 방법을 보여주는 부분이 많았기 때문이다. 자세히 말하자면, 운영체제 단원은 운영체제 발전의 흐름을 보여준다. 운영체제에서 사용하던 예전 방식들을 먼저 설명한다. 이후 그 방식으로 인해 발생한 문제를 해결하기 위한 새로운 방식을 소개한다. 시간의 흐름으로 내용이 이어지기 때문에 운영체제에서 발생한 문제를 어떻게 해결했을지 자연스럽게 기대하고 읽게 된다. 👍
특히나 페이징 기법을 읽을 때 감탄했다. 어릴 때 생각이 나서 더 공감하며 읽었다. 왜냐하면 관련 경험이 떠올랐기 때문이다. 페이징 기법이 없던 OS를 사용한 어릴 때는 간간이 디스크 조각 모음을 해줬어야 했다. 그래야 성능이 올라간다나 하는 이야기를 들은 적이 있다. 그런데 어느 순간 조각 모음이라는 키워드를 들을 수가 없었다. 그 이유를 페이징 기법을 읽으면서 알게 됐다. 뭔가 멀게만 느껴졌던 운영체제라는 개념이 옛 기억과 섞이면서 친근해지는 경험을 하게 되었다.
이 책을 다음으로 다른 CS 책들에 도전할 계획이다. 이 글을 쓰는 지금 시점에서는 벌써 다른 책을 읽고 있다. 이미 관련한 내용들을 살펴본 이후이기 때문에 다른 책을 읽음에 두려움이 많이 사라졌다. CS 관심은 있지만 막연히 다짐만 하고 실천은 미루고 있다면, 이 책을 통해 시작해 보길 추천한다.