-
-
0과 1 사이 - 고수준 코드 아래 숨은 실행, 구조, 보안, 메모리의 비밀
가와타 아키라 외 지음, 진명조 옮김 / 한빛미디어 / 2025년 10월
평점 :
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
고수준 코드 위에서 일할 때는 모든 기능이 안정적으로 굴러가는 것처럼 보인다. 하지만 그 아래에는 로더, 링커, 커널, 메모리 모델, CPU 구조 같은 층위가 촘촘하게 맞물려 있다. 이 책은 그 층위를 하나씩 걷어내며 시스템이 실제로 어떻게 움직이는지 보여 준다. 초반부의 어셈블리와 ELF 구조 설명은 단순한 입문을 넘어서, 이후에 등장하는 IFUNC 전환, TLS 구조, 보조 벡터, 라이브러리 로딩 기법을 자연스럽게 이해하도록 기반을 다져 준다. 팁만 늘어놓는 방식이 아니라, 실행 흐름을 따라가며 저수준으로 내려가는 과정이 거슬리지 않게 구성돼 있다.

OS와 컨테이너 파트는 특히 흥미롭다. 평소 익숙하게 사용하는 기능이 네임스페이스, cgroup, seccomp, eBPF 같은 요소가 결합되어 작동한다는 사실을 다시 확인하게 된다. 기능을 호출하는 입장에서 벗어나, 그 내부 구조를 바라보는 관점이 생긴다.보안 파트는 깊이가 있다. ASLR, CET, CFI, ROP 같은 기법이 어떤 흐름 속에서 등장했는지 정리돼 있어, 조각으로만 알고 있던 지식이 하나로 이어진다. 멜트다운, 스펙터, Row Hammer 같은 하드웨어 취약성은 현대 시스템이 가진 구조적 제약을 그대로 보여주는 사례다.
후반부에서는 수치 표현, SIMD, 언어 처리계 등 값을 다루는 구조에 집중한다. 이 영역은 주변부처럼 보이지만 실제로는 성능, 안정성, 정확성, 보안과 바로 연결된다. 부동소수점 반올림 방식이나 컴파일러 최적화와 충돌하는 사례는 코드 한 줄이 실행 환경에서 어떻게 동작하는지 이해하는 데 좋은 지점이다. LD_PRELOAD 기반 메모리 할당자 교체, ABI와 호출 규약, ucontext 기반 코루틴 구현 같은 실험도 따라가다 보면 내부 동작이 선명하게 잡힌다. 이 책의 장점은 깊이를 억지로 드러내지 않는 구성이다. 난해한 개념을 무겁게 밀어붙이기보다, 구조와 흐름을 이해하는 데 필요한 만큼만 정확하게 꺼낸다. 저수준 내용을 다루지만 부담스럽지 않고, 고수준 개발자가 시스템 쪽으로 자연스럽게 이동할 수 있는 통로 같은 느낌이다. 결론적으로, 이 책은 저수준을 탐색하는 감각을 일깨워 준다. 현대 시스템의 기반이 어떻게 연결되고 움직이는지 알고 싶은 독자에게, 89개의 Hack은 각각 짧은 실험이자 작은 탐험처럼 읽힌다. 표면의 기능만 보던 관점에서 벗어나 그 아래 구조를 실제 흐름처럼 느끼고 싶은 사람에게 충분히 매력적인 책이다.