30년 전 필자는 MS-DOS라는 컴퓨터 환경에서 C라는 특이한 이름의 프로그래밍 언어를 처음 접한 바 있다. 이 프로그래밍 언어는 간결하면서도 강력한 문법, 손쉬운 하드웨어 제어 기능을 갖추고 있으며, 포인터 변수라는 기존 프로그래밍 언어에 없던 매력적인 개념을 가지고 있었다. 시간이 흘러 초급 프로그래머 시절 저자를 매료시켰던 C 언어를 널리 알리기 위한 책을 집필하게 되어 감개가 무량하다.
세계 최초의 고급 프로그래밍 언어인 포트란(FORTRAN)이 1950년대 말에 만들어진 이후 지금까지 수없이 많은 프로그래밍 언어가 만들어졌다. 이렇게 다양한 프로그래밍 언어들 중에서 C 언어만큼 널리 보급되고 사용된 프로그래밍 언어는 드물 것이다. 또한 오늘날 다양한 개발 환경에서 사용되는 자바, 파이썬, C++, C# 등의 프로그래밍 언어들 역시 C 언어로부터 영향을 받았다는 점도 분명하다.
인공지능 기술이 시대의 화두로 떠오르면서 이를 위한 제반 기술들이 개발자 커뮤니티의 큰 관심을 받고 있는 시대의 전환점에서도 C 언어는 여전히 프로그래밍 입문자를 위한 핵심 언어임이 분명하다. 그 이유는 C 언어가 시스템 수준의 프로그래밍에 적합한 저수준 접근을 제공하면서도, 메모리 제어와 실행 성능 측면에서 타 언어에 비해 탁월한 장점을 지니고 있기 때문이다. 특히 인공지능을 구현하기 위한 대규모 병렬처리의 핵심 기술인 엔비디아사의 CUDA라는 라이브러리는 C/C++ 언어를 기반으로 구현되었다. 이 사실은 C 언어가 단순히 오래된 언어가 아니라, 오늘날의 인공지능, 임베디드, 그리고 고성능 컴퓨팅의 근간이 되는 언어임을 명확히 보여준다. 실제로 많은 최신 프로그래밍 언어들이 C의 문법 구조를 계승하고 있으며, 운영체제, 컴파일러, 디바이스 드라이버, 마이크로컨트롤러 프로그램 등 핵심 시스템 영역은 여전히 C 언어로 구현되고 있다.
C 언어는 오랜 역사를 가진 프로그래밍 언어이며, 아직까지도 매우 중요한 프로그래밍 언어이지만 많은 개발자들이 이 언어에 대해 “배우기 어렵다”, “보안에 취약하다”라는 선입견을 가지고 있다. 이 책은 이러한 오해를 가진 독자들을 위하여 C 언어의 본질과 철학, 그리고 효율적이고 안전한 프로그래밍 기법을 단계적으로 익힐 수 있도록 구성하였다. 이 책은 초보자에게는 C 언어의 문법과 기본 개념을 명확히 다루고, 숙련자에게는 포인터, 메모리 관리, 동적 할당, 구조체 등 심화 주제를 실제 예제 중심으로 탐구할 수 있게 하였다.