2장에서 C++ 언어의 대략적인 문법과 사용법에 대해서 살펴 보았습니다. 하지만 머릿속으로만 익힌 지식은 쉽게 빠져 나갑니다. 3장에서는 이후 진행에 있어 계속 쓰이게 될, 문자열을 저장하는 String 클래스를 만들어 볼 겁니다. 이를 통해서 클래스의 생성자와 제거자, 멤버함수, 연산자 중복 정의 등에 대해서 실습하게 됩니다.
물론 C++ 표준 라이브러리인 STL에서 string 클래스를 제공하고 있으며, 유니코드를 지원하지 않는 점 때문에 실제 현장에서 이 코드가 쓰일 일은 드물 겁니다. 하지만 C++을 배우고 첫번째 만들어 보는 클래스로 String 클래스 만큼 직관적이면서 도전적인 건 없다고 생각합니다. 게다가 임베디드 개발 환경에서는 때로는 이런 간소한 클래스들이 유용할 때가 있습니다.
알고리즘은 문제 해결을 위한 절차이며 이는 개념적인 형태로 존재합니다. 알고리즘이 현실세계에서 위력을 발휘하려면 프로그래밍 언어로 구현되어 컴퓨터에서 동작되어야 합니다. 이 중에서도 객체지향 언어가 알고리즘과 자료구조를 표현하는 데 가장 적합합니다. 그리고 현대적인 프로그래밍 언어가 대부분 추상 데이터 타입으로서의 객체(class)를 지원합니다.
이 강좌에서는 C++ 언어를 매개로 하여 알고리즘을 만나고 구현하고 시험하고 검증하는 여정을 하게 될 겁니다. C++ 언어는 오래된 역사를 가지고 있지만 더 오래된 C라는 언어에서 유래된 것입니다.
중학교 2학년때 처음 접했던 Apple II로 인해서 IT 키즈가 된 사람입니다. 이때부터 시작한 IT쪽 특히 소프트웨어 개발 쪽의 인연은 질기고 질기게 끊어지지 않고 현재까지 이어집니다. 벌써 35년이 되어 가는군요.
그동안 밥벌이하느라 바쁘게만 살아와 30년을 넘게 이 분야에서 뭘했나 흔적조차 남기기 어려웠습니다. 그냥 저냥 이대로 살다가 은퇴하겠지요.
그런데 이제 은퇴도 못하게 생겼습니다. IT쪽의 인력 수요는 여전히 많은데, 대체 젊고 총기 발랄한 IT키즈들은 보이질 않습니다. 모두들 사시, 행시, 공시, 의시에 달려들고 있습니다. 그나마 IT쪽에서는 게임 회사들이 블랙홀 처럼 남은 인재들을 싹 쓸어갑니다. 그러니 은퇴하고 싶어도 은퇴하질 못합니다.