C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[1852] 저의 초보 시절...
박지훈.임프 [cbuilder] 3405 읽음    2001-09-15 03:09
임프랍니다.

자려고 누웠는데.. 피곤하긴 한데 잠이 안들어서.. 이런 저런 생각을 하다가요.
문득 옛날에 C를 처음 공부할 때 보던 책들이 떠오르더군요.
전혀 기억할 일이 없는 오랜 일들이라, 생각난 게 하도 신기해서.. 흐~

저는 91년에 처음 C를 공부하기 시작했습니다. 볼랜드의 Turbo C 2.0이 나온 거의 직후로 기억합니다.
(1.0은 아마 88년이었던 거 같습니다.)
당시엔 C 프로그래밍 열기가 막 시작될 즈음이어서, 책이 별로 없었는데..

그때쯤 처음 시작하는 사람들이 많이 보던 책이, 터보C 정복이라고 임인건씨가 쓴 게 있었습니다.
임인건씨는 당시에 터보C로 엄청 유명한 사람이었죠. 통신에서 터보28(터보이빨)이라는 대화명을
썼던 걸로 기억하는데, 1년쯤 후던가 한글라이브러리 "한라프로"로 또 엄청나게 떴습니다.

당시엔 그래픽 모드의 화면에서 한글을 표시할 방법이 전혀 없어서 한글 라이브러리란 걸 썼는데,
그때 가장 뛰어난 것으로 평가받던 것이 "한라프로"였고, 그 다음으로 "허르미", 그리고 가장 배우기 쉬운
것으로 "한" 4.1이라는 거이 있었습니다.

옆길로 샜는데.. 어쨌든, 이 터보C 정복이란 책이 공전의 히트를 쳤지요. 터보C가 먼저 히트를 쳐서
이 책이 따라 히트가 된건지 아님 이 책이 히트가 되어서 터보C가 히트친 건지 모를 정도입니다.
하여튼 터보C와 터보C 정복이란 책이 같이 컸습니다.

근데 이 책은 무쟈게 두꺼웠지요. 요즘이야 기술서가 1000페이지를 넘어가는 게 보통이지만, 당시엔
1000페이지를 넘어가는 개발서는 이 책이 거의 유일했습니다. 요즘처럼 종이가 얇은 것도 아니어서,
두께는 요즘 책의 1500~600 정도 될겁니다. 이 책을 가방에 척~ 넣으면 어께가 축~ 늘어집니다.
새벽까지 동아리방에서 코딩연습하다 피곤하면 베게로도 많이 썼습니다.

근데 사실은 전 이책은 거의 못봤습니다. 한 두어달 갖고 다니긴 했는데, 그 무지막지한 두께에 기가 죽어
앞부분 1/10 정도 보다 포기했죠. 그러다 도둑맞았습니다. 그래도 베게는 많았습니다. 이 책을 갖구 있는
동아리 선배 동기가 많았기 때문에 동아리방에 막 굴러다녔지요.

정복 말고, 또 비슷하게 히트를 쳤던 책으로 황희융씨가 쓴 C프로그램 이렇게 짠다 라는 책이 있었습니다.
사실 정복하고 비교할 정도는 아녔고.. 정복은, C를 공부하는 사람이라면 누구나 예외없이 갖고 있었구요.
이 책은 초보자들이 많이 사봤습니다. 이해를 도와주는 그림이 많고 거기다가 그림에 웬 풍선도움말까지
덕지덕지 붙어있어서 엄청 쉬웠던 모양입니다.

쉬웠던 모양입니다...라는 말에서 짐작하시겠지만, 저는 이 책 사지도 보지도 않았습니다.
서점에 꽃혀있는 거나 보고, 1년 후에 들어온 후배들이 보는 걸 봤지요.
왜 이 책을 안사봤느냐 하면, 이 책은 말 그대로 입문서였고.. 저는 첨 공부할 때 입문서로는 딴 걸 봤으니까요.

제가 봤던 입문서는, 당시에 "하얀책", K&R 등으로 많이 불렸던 The C Programming Language였습니다.
C라는 언어를 만들어낸 커닝헌과 리치(K&R)이 쓴 건데, 명실상부하게 C 프로그래밍의 표준이었지요.
대학 교재로도 많이 쓰였기 때문에 번역서도 있었는데.. 번역 수준이 좋지않다는 선배의 말을 그대로 믿고
원서를 샀었습니다. 제가 처음으로 본 기술서이자 처음으로 본 원서였지요.

두께가 겨우 한 300페이지쯤? 아주 얇은 책이었는데, 이 한권을 독파하는 데 아주 생고생을 했습니다.
포인터를 설명하기도 전에 strcpy() 소스를 예제로 내놓지 않나, 또 정작 포인터 설명 챕터로 들어가니
퀵소트 알고리즘을 예제로 내놓지 않나.. 참고로, 이 책은 예제에 대한 설명은 거의 없습니다.
아무런 설명없이 알아서 볼려면 보고 말려면 말아라.. 그런 식으로 난이도 조정도 없이 예제를 붙여놨죠.

이 책을 모두 마스터하는 데 6개월이 걸렸습니다. 혼자 독학하면서 그정도면 지금도 장하다고 생각할
정도로 골머리를 썩였었습니다. 사실 이 책은 입문서가 아니라 문법 규정 모음 정도였는데, 저는 그 당시에는
그런 차이를 알지 못했고, 사실 그때는 그 차이를 이해할 만큼 C에 능한 사람도 거의 없었습니다.

비슷한 시기에 C를 공부하던 사람들이 대부분 포인터에서 막혀서 포기하는 사람들이 많았는데,
이 책을 마스터하고 나니 포인터가 장난감으로 보이더군요. 시도때도 없이 튀어나오는 포인터 예제들에
얼마나 고생을 했으면. 지금까지도 제가 포인터를 우습게(?) 여기면서 웬만한 작업은 포인터로 모두
해버리는 것은 이 초보시절의 고생 경험 덕분이라고 생각합니다.

그 다음으로 제가 파고 들었던 건 터보C 레퍼런스 가이드라는 책이었습니다. 이름 그대로 함수 레퍼런스
였는데, 나중에 알고보니 터보C에 딸려오는 레퍼런스 가이드를 번역한 거더군요.
이 책을 보면서, 전 "잘못된 번역으로부터 원문을 유추하여 이해하는 법"이라는 상당한 무공을 닦았습니다. -.-;;

이 책은, 제가 C프로그래밍을 시작하던 초기에 샀던 책들 중 유일하게 제 책장에 아직도 꽂혀있습니다.
화장실에 갈 때마다 항상 이 책을 들고가서 한번에 함수 한두개씩을 들여다봤는데, 그렇게 2년정도 하고
나니 정말로 완전히 달달 외워버렸습니다. 후배들이 저를 걸어다니는 C 레퍼런스라고 불렀답니다.

92년이었던가, 네권의 책을 더 샀습니다. 92년은 제가 C 공부를 가장 왕성하게 했던 시기라서 이 1년동안
제가 사본 C책이 열 몇권 되었었지요. 그런데 네권이라고 말하는 것은, 그만큼 이 네권이 중요하기
때문입니다.

그중 첫번째, 잊을 수 없는 책이 스트레칭 터보C라는 책이었습니다. 표지 그림조차도 양손으로 C라는 글자를
잡아 늘이는 그림이었지요. 켄트 포터였던가 하는 사람이 쓴 책을 번역한 거였는데, 그때 첨으로 제대로
번역된 책을 봤습니다. 이 책은 터보C로 도스 시스템프로그래밍을 하는 데 필요한 기초적인 사전 지식과
상당한 고급 예제를 싣고 있었습니다. 이 책 한권으로 제가 단번에 중급으로 뛰어올랐었다고 생각합니다.

그 다음으로, Born to code in C라는 책이 있었는데.. 역시 고급 예제들이 많았는데, 이 책은 그다지
큰 도움은 안되었습니다. 위의 스트레칭 터보C와 본투코드 인 C를 비교하는 사람이 꽤 많았는데,
제게는 쩝.

나머지 두권은 알 스티븐스의 명저입니다. 한권은 터보C 시스템 프로그래밍(맞나?)였고 다른 한권은
터보C 데이터베이스 프로그래밍이지요. 앞의 책은, 도스에서 풀다운 메뉴와 팝업윈도우, 계층형 윈도우를
구현하는 상당히 복잡한 내용을 다루었고, 뒤의 책은 CISAM을 구현하는 책이었습니다.

사실 그때부터 전 데이터베이스에 별 관심이 없었기 때문에 뒤의 책은 사놓고 별로 보진 않았습니다.
하지만 앞의 책은 좀 인연이 있지요.

당시에, C를 공부하는 초보자가 중급자로 올라서는.. 뭐랄까, 관문같은 코스가 두가지 있었는데,
첫번째는 텍스트 에디터였고 두번째는 풀다운 메뉴였습니다. 요즘이야 각 개발툴마다 편리하게 래핑된
에디터들을 그대로 갖다 쓰지만, 당시엔 아직도 텍스트에디터를 구현하는 것은 상당한 작업이었습니다.
또 풀다운 메뉴도 상당히 복잡했지요.

92년 중반까지 이 정도의 책을 봤습니다. 알스티븐스의 디비 책을 제외하면 모두 다 첨부터 끝까지
마스터하고 사용된 예제도 자유자재로 활용할 수준이 되었지요. 그 이후로는 책 한권을 사서 첨부터
끝까지 다 본적이 한번도 없습니다.

92년 가을부터 아이콘에디터를 만들기 시작했지요. 그땐 잘 몰랐는데, 그 시기가 아이콘에디터를 만드는
붐이 일었었습니다. 터보C와 터보파스칼의 BGI를 이용하는 그래픽 모드 프로그래밍이 그때쯤 붐이 일기
시작했는데, 아이콘 없이는 넘 썰렁했기 때문입니다.

그 아이콘에디터의 이름을..흐흐... 황당하게 지었는데요. 폰트메이커라고 지었답니다.
그때는 폰트와 아이콘의 개념을 구분하지 못했는데다가, 그전까지 그래픽모드에서 사용될 아이콘 에디터로
가장 많이 사용되던 것이 "폰트에디터"라는 이름을 갖고 있었거든요.

이 폰트에디터... 정말 지금 생각해보면 황당하기 그지없는 아이콘에디터였습니다.
선긋기나 박스그리기 정도의 아주 기본적인 기능도 하나 없이, 오로지! 점찍기로만 에디팅할 수 있는...
무식하기 짝이 없는 넘이었지요. 그래도, 이걸로 이미지를 저장하면 터보C나 터보파스칼의 LoadImage()
함수로 직접 불러올 수 있는 포맷이어서 많이 쓰였던 겁니다.

제가 아이콘에디터를 만들겠다고 생각했던 건 바로 그것 때문이었지요. 당장 넘 불편해서요.
그래서 92년 가을부터 만들기 시작했던 것이, 93년 말까지 꾸준히 버전업을 해나갔습니다.
93년으로 넘어가면서 터보C의 메모리 한계에 부딛혀 볼랜드 C++로 옮겼었고, 2.42버전이 마지막이었던 거
같습니다.

터보씨는 파일을 메모리에 올려놓고 컴파일을 하기 땜시 코드가 어느정도 이상 커지면 컴파일을 못했었습니다.
마지막 버전의 총 코드량이 50만 라인 정도였는데, 이렇게 엄청나게 커진 것은... 당시 도스 세상이긴
했습니다만 윈도우 3.1을 보고 그 UI에 감동받아서, 제 프로그램의 UI를 윈도우와 유사하게 만들었기
때문입니다.

그래픽 모드에서 풀다운메뉴, 팝업윈도우, 스크롤바를 포함한 디렉토리 리스트박스와  파일 리스트박스,
3D 스타일의 버튼, 깔끔한 클리핑 처리 등등, UI 부분에 들어간 코드가 엄청났습니다.
당시엔 한글 라이브러리의 확장으로 이런 기능을 일부 지원하는 라이브러리가 있긴 했는데, 제가 한글
라이브러리를 전혀 쓰지 않고 영문모드에서만 작업을 했기 땜시 그것들을 못쓰고 전부 직접 만들었지요.

10만 라인 정도를 넘어갈 때가 정말 고비였습니다. 문법적으로 아무 문제도 없고 아무리 디버그를 해도
잡히지 않는 버그들이, 단지 새로운 코드를 추가한 후에 기존의 코드에서 발생하곤 했습니다.
지금도 잊혀지지 않는 것은.. 배열로 할당하지 않은 문자열 상수의 메모리 영역은 코드가 커지면 커질수록
침범당할 가능성이 높아진다는 걸 발견했을 때였습니다.

친구넘이 저도 모르게 이걸 93년 초쯤이던가 하이텔에 올렸는데.. 상당히 히트를 쳤었습니다.
93년인지 94년인지 잘 기억이 안나는데, 어쨋든 월간 마이크로소프트웨어 9월호에 이달의 우수 공개
소프트웨어로 선정되었지요. 보통 한달에 두개 정도의 프로그램을 선정했는데, 한 페이지를 반으로 나누어
소개를 하곤 했었는데요. 그런데 제 프로그램의 소개는 이례적으로 한페이지를 모두 할당해서 소개를
했더군요. 이때부터 제가 스스로를 프로그래머라고 인식하기 시작했었습니다. 초보생활 안녕이었죠.

쓰다보니.. 무용담이 되어버렸네요. 실컷 자랑을 늘어놓고 나니 좀 쑥스럽습니다.
자랑하려고 쓰기 시작한 건 아닌데.. 아주 오래전에 정말 맨땅에 헤딩하는 기분으로 공부하던 시절이
갑자기 가슴벅차게 그리워져서 써본 겁니다.


+ -

관련 글 리스트
1852 저의 초보 시절... 박지훈.임프 3405 2001/09/15
1853     Re:저의 초보 시절... 지나가는 사람 3885 2001/09/15
1854         Re:Re:저의 초보 시절... 천강협 3078 2001/09/15
1856             Re:Re:Re:저의 초보 시절... 남병철.레조 3092 2001/09/15
1868                 Re:Re:Re:Re:저의 초보 시절... 제라툴 3331 2001/09/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.