3장 : String 클래스 만들기

2장에서 C++ 언어의 대략적인 문법과 사용법에 대해서 살펴 보았습니다.  하지만 머릿속으로만 익힌 지식은 쉽게 빠져 나갑니다.  3장에서는 이후 진행에 있어 계속 쓰이게 될, 문자열을 저장하는 String 클래스를 만들어 볼 겁니다.   이를 통해서 클래스의 생성자와 제거자, 멤버함수, 연산자 중복 정의 등에 대해서 실습하게 됩니다.

물론 C++ 표준 라이브러리인 STL에서 string 클래스를 제공하고 있으며,  유니코드를 지원하지 않는 점 때문에 실제 현장에서 이 코드가 쓰일 일은 드물 겁니다.  하지만 C++을 배우고 첫번째 만들어 보는 클래스로 String 클래스 만큼 직관적이면서 도전적인 건 없다고 생각합니다.  게다가 임베디드 개발 환경에서는 때로는 이런 간소한 클래스들이 유용할 때가 있습니다.

2장 : C++언어 훑어보기

알고리즘은 문제 해결을 위한 절차이며 이는 개념적인 형태로 존재합니다.  알고리즘이 현실세계에서 위력을 발휘하려면 프로그래밍 언어로 구현되어 컴퓨터에서 동작되어야 합니다.   이 중에서도 객체지향 언어가 알고리즘과 자료구조를 표현하는 데 가장 적합합니다.  그리고 현대적인 프로그래밍 언어가 대부분 추상 데이터 타입으로서의 객체(class)를 지원합니다.

이 강좌에서는 C++ 언어를 매개로 하여 알고리즘을 만나고 구현하고 시험하고 검증하는 여정을 하게 될 겁니다. C++ 언어는 오래된 역사를 가지고 있지만 더 오래된 C라는 언어에서 유래된 것입니다.

1장 : 희망의 나라로, 알고리즘

"C++로 배우는 알고리즘"의 첫번째 챕터로 강의의 목적과 전체적으로 다룰 내용을 간략하게 언급합니다.

"C++로 배우는 알고리즘"은 두가지 큰 주제인 객체지향언어 C++과 알고리즘을 같이 배워보는 과정입니다.  구현 수단으로서의 C++과 구현 대상으로서의 알고리즘을 같이 배우는 것은 적절한 학습 동기와 성취감을 주기에 매우 효과적이라 생각합니다.

하지만 C++에 대한 기본적인 문법은 미리 익혀두는 것이 좋습니다.  이 과정을 통해 머릿속에만 있던 C++ 언어의 사양들이 실제로 어떻게 사용되는지 실감하게 될 것입니다.

C++로 배우는 알고리즘

한동안 잊고 있었는데 오늘 갑자기 생각 났습니다.

2002년 즈음 다니던 회사를 나와 다른 회사로 옮기고 적응하는 잠깐의 기간 동안 "C++로 배우는 알고리즘"이라는 제목으로 온라인 강의를 했습니다.  비트캠퍼스라는 곳에서 했고, 30 챕터로 나누어 대략 40~50시간에 이르는 분량으로 녹화를 했던 것 같습니다.

2002년 한일 월드컵과 맞물려서 정말 힘들었던 여정으로 기억됩니다.

왜 또 알고리즘을 하는가?

벌써 25년 전이네요.  그때 대학생일 때... 우연히 접하게 된 Robert Sedgewick 교수의 "Algorithms in C" 책에 빠져 한동안 헤어나오질 못했습니다.   지금도 헤어져 누더기가 된 이 책이 집에 있을텐데,  구석에 쳐박혀 있어 찾질 못하겠군요.

심지어 군대에 있을때도 이 책을 들고 들어가 짬짬이 보았던 걸로 기억납니다.  왜 그렇게 알고리즘에 천착했을까라고 생각해보니... 그것은 그냥 지적 호기심이었던 같습니다.

프로그래머의 자부심

중학교 2학년때 처음 접했던 Apple II로 인해서 IT 키즈가 된 사람입니다.  이때부터 시작한 IT쪽 특히 소프트웨어 개발 쪽의 인연은 질기고 질기게 끊어지지 않고 현재까지 이어집니다.  벌써 35년이 되어 가는군요.

그동안 밥벌이하느라 바쁘게만 살아와 30년을 넘게 이 분야에서 뭘했나 흔적조차 남기기 어려웠습니다.  그냥 저냥 이대로 살다가 은퇴하겠지요.

그런데 이제 은퇴도 못하게 생겼습니다.  IT쪽의 인력 수요는 여전히 많은데, 대체 젊고 총기 발랄한 IT키즈들은 보이질 않습니다.   모두들 사시, 행시, 공시, 의시에 달려들고 있습니다. 그나마 IT쪽에서는 게임 회사들이 블랙홀 처럼 남은 인재들을 싹 쓸어갑니다.  그러니 은퇴하고 싶어도 은퇴하질 못합니다.

인기글