프로그램 언어의 기본은 C++
B라는 프로그램 언어가 있었습니다. 과거형으로 표현하였습니다. 1969년에 등장해서 지금은 사용하지 않는다고 봐야 할 것입니다. 당시 유닉스 프로그램을 위해서는 어셈블리 언어로 밖에 할 수 없었습니다. 유닉스에서 동작하는 고급 프로그램 언어를 개발한 것이 바로 B 언어 입니다.
C 언어는 다 아실 것입니다. C 언어의 조상이 바로 B 언어 입니다. 그렇다고 A 언어가 있지는 않습니다. B 언어라고 붙여진 이유는 벨 연구소에서 개발한 프로그램 언어이기 때문입니다. C 언어는 유별나고 결함도 있지만 엄청나게 성공한 프로그램 언어입니다. 범용성이 크고, 속도가 빨라 보급률이 높았습니다. 유닉스를 다시 만들 때 C 언어가 사용된 것만 봐도 알 수 있습니다.
C++ 언어는 C 언어의 대부분의 기능을 포함하면서 객체, 클래스, 상속 등의 요소를 추가하였습니다. 시스템 프로그래밍도 가능하면서 객체지향 프로그래밍도 가능하게 된 것입니다. C++은 1979년, Bjarne Stroustrup의 “C with Classes”의 작업으로부터 시작되었으며, 1983년 C++ 언어로 개명되었습니다.
C++ 언어(당연히 C 언어를 포함한)는 많은 프로그래밍 언어에 영향을 미쳤습니다. 그 프로그램 언어도 C++ 언어로 만들어졌습니다. 그러한 언어의 바탕엔 C++ 언어의 개념이 모델이 되고 있습니다. 수많은 언어들이 나타났다가 사라지는 가운데 C 언어가 40년 가까이 이어져온 것은 컴퓨터를 동작시키게 하는 가장 근본적인 고민을 담고 개발되었다는 것에 있을 것입니다.
그림으로 배우는 C++ Programming 2nd Edition
Mana Takahashi 저/서재원 역 | 영진닷컴 | 2020년 12월 23일
C++ 언어는 현재도 다양한 실무에서 사용되는 프로그램 언어입니다. 그렇지만 다른 언어에 비해 배우기가 쉽지 않다는 의견이 많습니다. 초급자가 배우기 보다는 중급 이상의 개발자의 언어라는 인식도 강합니다.
요즘 배우기 쉬운 프로그램 언어도 많은데 왜 C++ 언어를 배우기를 고집할까요? 생산성과 효율성도 좋은 수많은 프로그램 보다 왜 C++ 언어를 대학 컴퓨터 관련 학과에서 필수과목으로 가르칠까요? 그건 바로 프로그램 언어의 가장 기본이 되기 때문입니다. 모든 학문에서 기초가 중요하듯이 프로그램 언어에서의 기초는 C++ 언어로 통합니다.
이 책은 C++언어를 배울 수 있는 입문서 입니다. 초보자들이 쉽게 배울 수 있도록 쉬운 설명과 함께 많은 그림을 담고 있습니다. 개정판인 만큼 개발 환경도 최근에 많이 사용하는 Visual Studio를 활용하는 방법을 알려줍니다. 책은 쉬운 내용에서 출발하여 고급 주제로 까지 이어집니다. 기본적인 내용으로 페이지 수를 채우기 보단 필수적인 요소를 담기 위해 노력한 것이 보입니다.
C++ 언어를 배우다가 처음으로 난관에 부딪히는 것이 포인터라는 개념입니다. C++ 언어에서 주소는 메모리에서의 위치를 직접 가리키는 것을 말합니다. 이때 이러한 주소를 저장하는 변수가 포인터입니다. 포인터를 사용하기 위해 많은 연산자들이 준비되어 있습니다. 포인터를 사용하는 주된 이유는 메모리에서의 위치를 직접 가리킬 수 있다는 장점이 있기 때문입니다. 하지만, 이러한 개념 자체가 컴퓨터 메모리 구조에 대한 이해가 필요하기 때문에 쉽지 않습니다.
프로그램을 통해 해야 하는 일이 복잡해짐에 따라 보다 효율적이고 생산적인 방법이 필요하게 되었습니다. 이런 요구로 등장하게 된 것이 Class입니다. C와 C++ 언어를 구분하는 가장 중요한 요소 또한 바로 Class 입니다. Class를 잘 사용하는 것이 객체지향의 핵심이기도 합니다. Java에서도 이 개념은 중요합니다. 이 책에서도 Class에 대해서는 많은 장을 할애하여 자세하게 설명하고 있습니다.
보통 C++ 언어를 배우기 위해 C 언어를 먼저 배워야 하는 것으로 말을 많이 합니다. 위에서도 말했듯이 C++ 언어는 C 언어를 포함합니다. C++ 언어를 배우면 C 언어는 당연히 배우게 되는 것입니다. 그래서인지 이 책도 C++ 언어만 이야기 하고 있습니다. 강의 형식으로 각각의 장도 Lesson이라는 표현을 사용하고 있습니다. 총 16개의 Lesson으로 되어 있으며 각 강의 마지막에는 강의 요약을 담고 있습니다. 연습문제를 통해 배운 실력을 확인할 수도 있도록 되어 있습니다.
프로그램 언어를 배우고자 하시는 분이라면 C 언어 부터 무조건 시작해야 된다고 말해 왔습니다. 그때마다 데니스 리치의 ⟪The C Programming Language⟫ 책을 추천 하였습니다. 이제는 추천 책에 바로 이 책 ⟪그림으로 배우는 C++ Programming⟫ 을 포함해도 될 것 같습니다. 어려운 개념을 쉽게 배울 수 있도록 하는 것, 그것이 바로 좋은 책이 갖춰야 할 핵심인 것 같습니다.
혹시나 하는 생각에 한마디 더 붙여봅니다. C++ 언어와 C#(C에 +를 4개나 붙여 ++++가 #이 되었지만)은 전혀 다른 언어입니다. C#이 아닌 C++을 먼저 배워야 합니다.