'전문가를위한C'에 해당되는 글 1

  1. 2022.10.27 [IT] 전문가를 위한 C

[IT] 전문가를 위한 C

2022. 10. 27. 09:57 | Posted by 꿈꾸는코난

< 전문가를 위한 C > | 캄란 아미니 지음 | 박지윤 옮김 | 한빛미디어

 

초반 개발을 시작할때는 대부분 C 언어를 사용하곤 했다. 처음 개발을 시작한 환경탓도 있겠지만 어느 정도 개발업무를 한다는 사람은 대부분 C 언어에 대한 지식을 기본으로 가지고 있었던 것 같다. 그만큼 개발 언어에 대한 서적도 C 언어에 대한 문법이나 고급 스킬을 소개하는 서적이 많았던 것으로 기억한다. 하지만 시간이 흐름에 따라 C 언어보다는 Java나 python 등과 같은 언어가 대세를 이루고 있는 것 같다.

이런 분위기에서 <전문가를 위한 C>는 오랜만에 보는 깊이있는 C 언어 서적이라고 생각한다. 이미 기초 문법은 알고 있다고 가정하고 개발 환경 및 다양한 개념에 대해 소개하고 있다. 특히 C 언어에서 필수적으로 알아야 하는 메모리 구조 및 스택, 힙에 대한 개념을 상세히 설명하고 있기 떄문에 어느정도 기초를 알고 있는 개발자에게는 개념을 잡는데 많은 도움이 되지 않을까 생각이 들었다. 이뿐만 아니라 C 언어의 기반이 된 유닉스의 역사 및 아키텍처, 시스템 호출과 커널 등에 대한 소개를 통해 C 언어가 탄생하게 된 배경과 low level 언어로서의 C 언어를 이해할 수 있다.

C 언어는 오랜 역사를 가진만큼 다양한 분야에서 많이 사용되고 있다. 특히 임베디스 시스템이나 고성능 시스템 개발에 최적화된 언어라고 볼 수 있으며 시스템의 하드웨어를 어느정도 직접 컨트롤할 수 있다는 면에서 소프트웨어 엔지니어링 등에서 핵심 언어로 자리매김하고 있다. 요즘 세부 하드웨적인 지식이 없더라도 개발할 수 있는 언어가 다양하게 나와있다. 하지만 하드웨어적인 시스템을 알고 개발하는 것과 아닌 것과의 차이는 상당히 크다고 볼 수 있다. 그런 측면에서 C 언어로 개발을 할 수 있는 개발자가 다른 언어를 사용해서 개발하는 것과 전혀 모르고 개발하는 사람과의 차이도 그만큼 크다고 볼 수 있을 것 같다.

이 책은 C 언어와 컴퓨터의 역사, 객체지향(이 부분이 추가된 것에 대해서는 좀 의문이다), 커널, 프로세스 등 다양한 주제를 가지고 설명한다. 그리고 각 설명마다 다양한 예시가 제시되어 있어서 실제 각자의 환경에서 컴파일하고 실행해 볼 수 있기 때문에 직접 눈으로 보고 그 결과를 확인할 수 있다. 하지만 프로그래밍 언어를 전혀 모르는 사람이 이 책을 통해 C 언어를 배우기는 쉽지 않을 것이다. 이 책의 서두에도 언급하듯이 이 책을 읽기 위한 최소한의 요구사항을 제시한다: 컴퓨터 아키텍처 지식, 프로그래밍 기초 지식, 터미널과 쉘 명령어 사용법, 프로그래밍 중급 지식, 객체 지향 프로그래밍 기초 지식이 그것이다. 적어도 최소한의 요구사항에 대한 용어를 들어보거나 경험한 적이 있어야 이 책이 설명하는 내용을 제대로 따라갈 수 있으리라 생각한다.

편의성 측면을 본다면 개발자가 리소스와 프로세스 스케줄링에 크게 신경쓰지 않고 원하는 기능을 개발할 수 있으면 좋을 것이다. 하지만 그렇게 되기 위해서는 또 다른 개발자가 리소스와 프로세스 스케줄링을 자동으로 잘 제공할 수 있는 기능이 개발되어야 할 것이다. 누군가가 편하게 사용하기 위해서는 누군가는 그 기반이 되는 구조와 환경을 제대로 구현하고 있어야 한다(예를 들어 개발자가 시스템적인 고민을 별로 안해도 되는 python의 경우 내부는 C로 구현되어 있다).

C 언어가 가지고 있는 장점은 다른 언어에 비해서 월등한 것 같다. 그만큼 개발자가 신경써야 하는 것이 많긴 하지만 그만큼 원하는 방향대로 디테일하게 제어할 수 있다는 것이기도 한다. 이 책은 이런 개발자를 위해 C 언어에 대한 깊이있는 지식을 전달해 준다. 개념을 배우고 실제 컴파일해서 경험하는 과정을 통해 그 지식을 한층 높일 수 있다고 생각한다. 그리고 한층 높은 단계로 올라갈 수 있는 사다리가 되지 않을까 생각한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이전 1 다음