C 파서 소스 분석 + 포인터·비트 조작·어셈블리 최적화 이해 순으로 설명
졸업 논문에서 C언어로 작성된 파서 라이브러리의 소스 코드를 처음 깊이 읽어봤습니다. 고수준 언어에서는 볼 수 없는 포인터 연산과 비트 조작 코드를 직접 분석하면서 메모리가 어떻게 배치되는지 실감했습니다. 특히 struct의 멤버 순서에 따라 패딩이 달라지고 메모리 사용량이 바뀌는 것을 직접 확인했을 때, 추상화 아래에 무엇이 있는지 보이기 시작했습니다. 어셈블리 출력도 직접 확인해봤는데, 컴파일러가 루프를 최적화하는 방식을 눈으로 보면서 왜 특정 코드 패턴이 더 빠른지 이해가 됐습니다. 저수준 코드를 읽으면서 고수준 언어의 추상화가 어떤 비용을 숨기고 있는지 보이게 됐습니다.
추상화를 믿고 쓰면서도 그 아래를 설명할 수 있는 상태가 되는 게 중요하다고 생각합니다.