[도서 리뷰] 컴퓨터 밑바닥의 비밀

최소희·2024년 12월 22일
0

프론트엔드 학습

목록 보기
21/23

책 제목: 컴퓨터 밑바닥의 비밀
저자: 루 샤오펑
출판사: 인사이트

'컴퓨터 밑바닥의 비밀' 을 읽게 된 계기

코드를 작성하면서 시스템이 이 코드를 어떻게 실행하고 처리하는지는 깊게 고민해본 적이 없었다.

이 책이 나에게 기술적 깊이를 더해 주고, 팀 내에서도 "이런 이유로 성능 문제가 발생한다"고 자신 있게 말할 수 있는 자신감을 키워줄 수 있을 거라 생각하여 책을 찾게 되었다.

책의 주요 구성

이 책은 컴퓨터가 어떻게 작동하는지를 단계별로 설명하며, 총 6개의 주요 주제로 구성되어 있다.

이 과정에서 내가 깨달았던 부분과 느꼈던 점들을 중심으로 정리해 보았다.

1. 프로그래밍 언어와 컴파일러

프로그래밍 언어가 고급 언어에서 기계어로 변환되는 과정을 다룬다.

평소 JavaScript, TypeScript 같은 고수준의 언어만 다루다 보니, 컴파일러가 코드 뒤에서 얼마나 많은 일을 하는지 몰랐다.

이 과정을 배운 덕분에, 컴파일 에러가 발생했을 때 해당 오류가 왜 생기는지 깊이 이해할 수 있었다.

2. 운영체제와 프로세스, 스레드

운영체제가 프로세스와 스레드를 관리하는 방식을 다룬 부분에서 브라우저의 동작 방식을 떠올릴 수 있었다.

예를 들어, 브라우저 탭마다 하나의 프로세스를 실행하는 구조는 탭 간의 충돌을 방지하고 안정성을 보장한다.

코루틴에 대한 설명도 흥미로웠는데, 스레드보다 가벼운 실행 단위로 비슷한 동작을 효율적으로 처리할 수 있다는 점을 알게 되었다.

3. 메모리와 포인터

"포인터? 그게 나랑 무슨 상관이야?"라고 생각했는데, 큰 오산이었다.

특히, 메모리 누수가 무엇인지 이해하니 React 컴포넌트가 언마운트된 후에도 참조 중인 이벤트 리스너나 타이머 같은 리소스를 정리하지 않으면 성능 문제로 이어질 수 있다는 점이 명확히 이해되었다.

메모리를 효율적으로 관리하는 것이 코드 안정성과 성능 최적화에 얼마나 중요한지 깊이 깨닫게 되었다.

4. CPU의 동작 원리

트랜지스터의 역할을 시작으로 하드웨어와 소프트웨어 간의 연결고리를 설명하며, 두 영역이 어떻게 상호작용하는지 배울 수 있었다.

5. 캐시 메모리

캐시 메모리가 성능에 얼마나 중요한 역할을 하는지 알고 나니, 프론트엔드에서 캐싱 전략을 세울 때 조금 더 근본적으로 접근할 수 있을 것 같았다.

특히, Tanstack Query를 사용할 때 캐시 데이터와 백엔드 호출 간의 균형을 맞추는 전략에 대해 더 깊은 고민을 할 수 있는 계기가 되었다.

6. 입출력과 파일 시스템

데이터 입출력 과정과 파일 시스템의 구조를 다룬다.

CPU, 디스크, 그리고 운영 체제가 어떻게 상호 작용하며 입출력 작업을 효율적으로 처리하는지 이해할 수 있었다.

책을 통해 얻은 깨달음

주니어 프론트엔드 개발자인 나에게 "저수준 시스템"은 한 번도 깊게 고민해본 적 없는 영역이었다.

하지만 책을 덮으면서 내가 사용하는 모든 도구와 프레임워크, 그리고 작성하는 코드는 결국 이 시스템 위에서 작동한다는 사실을 깨달았다.

"컴퓨터 시스템에 운영 체제, 프로세스, 스레드 같은 개념이 존재하는 것에는 각자 다 이유가 있으며, 아무런 이유 없이 만들어지는 기술은 어디에도 없습니다.
이들은 필연적으로 특정 유형의 까다로운 문제를 해결하고 상당한 가치를 가져오므로 이를 이해해야만 좋은 기술을 제대로 사용할 수 있습니다.
이것이 바로 제가 기술 역사와 진화 과정을 반드시 이해해야 한다고 강조하는 이유이기도 합니다."
– 컴퓨터 밑바닥의 비밀, Chapter 2, 193p

단순히 "배워야 한다"라는 당위성을 넘어서, 내가 작성하는 코드가 시스템 깊은 곳에서 어떻게 실행되는지에 대한 진짜 필요한 지식을 얻는 기분이었다.

추천 대상

이 책은 컴퓨터 과학 지식이 부족한 주니어 개발자나 시스템의 내부 동작 원리를 더 깊이 이해하고 싶은 모든 개발자에게 추천한다.

개발자로서 한 단계 더 성장하고 싶은 사람들에게 특히 권하고 싶다.

마치며

'컴퓨터 밑바닥의 비밀'은 단순히 기술적인 지식을 전달하는 책이 아니다.

컴퓨터라는 복잡한 기계를 이해하고, 내가 작성하는 코드가 어떻게 실행되는지 더 깊이 이해할 수 있도록 도와준다.

이 책을 통해 내가 작성한 코드의 본질을 이해할 수 있는 개발자가 되기를 바란다.

profile
프론트엔드 개발자 👩🏻‍💻

0개의 댓글