내가 경험한 프로그래밍 언어들

IT/Opinion 2009. 7. 21. 00:21 Posted by 타돌이
728x90
Channy님이 블로그에 경험해 본 프로그래밍 언어들에 대해서 정리하셨길래, 나도 한번 기억을 되살리고, 생각을 정리해 보고자 한다.

BASIC

내가 처음 프로그램을 작성해 본 것은 국민학교 5학년(1994) 때 컴퓨터학원에서 배운 GW-BASIC이었다. 학원에서 배운 것을 써먹어 보려고 삼국지, 갤러그, 벽돌깨기 등의 게임을 All Text로 만들어 보면서 게임프로그래머의 꿈을 키워 나갔다. 학원생들에게 퍼트리자 수업시간에도 내가 만든 게임만 하는 모습을 보고 참 뿌듯(?) 했다.

그러다가 실행파일로 배포해보고 싶어서 Quick BASIC을 사용하게 되었다. 중학교 2학년(1997)때 "타돌이"라는 타자연습 프로그램을 만들어 보기도 했다. 그 때부터 지금까지 인터넷상 닉네임으로 쓰고 있기도 하다.
타돌이

타돌이 (1997)


그리고 정보처리기능사 시험을 보려고 고1(1999) 때 Visual Basic을 시작했고, 군대에서 전산병으로 복무 중(2004~2006)과 전역 후 제주대학교 골프아카데미 통합관리시스템(2007)를 만들면서 활용해봤다.

C/C++, C#

중1(1996)때 게임프로그래머가 되려면 C언어를 먼저 공부하라는 조언을 듣고 C언어 공부를 시작했다. 포인터 부분에서 포기했다. 고등학교 때는 포인터를 이해하게 되었고, 다시 공부해서 Boarland C++, DJGPP, VC++, Watcom C 등의 개발환경을 경험해 보았다. 고1(1999) 때 BC++과 약간의 인라인어셈으로 "드럼통 타이거"라는 액션아케이드 게임을 만들어 보기도 하고, 대2(2003)때는 VC++에 DirectX를 사용하여 "크래커 퇴치 작전"이라는 슈팅게임을 만들어 보기도 했다. 군대에서는 MFC를 사용해서 파일업로드 ActiveX Control을 만들어 보기도 했다.

Cracker 퇴치작전

Cracker 퇴치작전(2003)

드럼통 타이거

드럼통 타이거(1999)



그리고 모 회사 입사시험을 보려고 하루 벼락치기로 C#을 공부한 적도 있다ㅎㅎ;


Pascal

중3(1998) 때, 고입시험이 끝나고 시간이 많이 남길래 Delphi를 공부하기 시작 했다. Delphi에서는 Object Pascal을 사용하기 때문에 이때 처음으로 Pascal 언어를 접했다. 이 때 C언어에서 이해하지 못했던 포인터를 이해하게 되었다. 배열의 인덱스 범위를 내 마음대로 줄 수 있고, 빠른 문자열처리 속도에 반하여 알고리즘 문제 풀이 시에 주력언어로 사용하기도 했다. 덕분에 고3(2001)때 수능시험이 끝나고, Delphi로 프로그램 개발하는 아르바이트 경험도 할 수 있었다.


웹 개발용 언어들 (ASP, PHP, JSP, ...)

중2(1997) 때 처음 나모웹에디터를 사용해 보면서, 웹개발에 처음 관심을 가지게 되었다. 이 후, 고2(2000) 때 처음 ASP를 사용해서 간단한 게시판을 만들어 봤다. 대학에 입학하고 나서는 PHP를 주력으로 웹개발을 하게 되었다. 그러다가 군대(2004)에서 Java Servlet, JSP를 사용하게 되었다. 군대 전역 후 복학하고 나서(2007) Channy님의 강의를 들었던 이후로 웹표준을 최대한 지키며 HTML 코딩하는 습관을 키워가고 있다.

통계 패키지용 언어들

전공이 통계다보니 대3(2004) 때부터 SAS를 시작해서 SAS Base Programmer 자격증을 취득했고, 최근에 오픈소스 통계 패키지인 R에도 관심을 가지고 있다.

이 외에도 Ruby, Python 등을 경험해 봤다. 최근에는 Daum DNA 사이트를 운영하면서 지도API관련 질문을 많이 받다 보니 JavaScript를 가장 많이 하고 있다.

개발자를 꿈꾼다면 적어도 학생 때 이것 저것 다 해봐야 한다고 생각한다. 그래야 실제 개발을 할 때 적합한 언어를 골라서 사용할 수 있을 것이다. 그리고 많은 프로그래밍 언어를 할 줄 안다고 해서, Low Level의 언어를 한다고 해서 뛰어난 프로그래머는 아니라고 생각한다. 중요한 것은 적절한 자료구조와 알고리즘의 선택, 적절한 모듈화, 일관된 코딩스타일 등과 같은 것들이다.

'IT > Opinion' 카테고리의 다른 글

문장의 끝, 세미콜론(;)  (0) 2008.09.06
디지털 키드 출신과 대기만성형 프로그래머  (0) 2008.04.24

문장의 끝, 세미콜론(;)

IT/Opinion 2008. 9. 6. 12:16 Posted by 타돌이
728x90
 제가 다뤘던, 여러가지 Programming Language들(C/C++, Pascal, Java, PHP, 등)은 문장의 끝을 세미콜론(;)으로 표현합니다. Basic을 가장 먼저 공부했던 저로서는 두번째 공부했던 C에서 문장 끝에 ;을 찍는 것이 참 어색했습니다. 하지만 시간이 지나 ;을 찍는 언어에 익숙해지다보니 댓글을 달 때, 메신저로 대화를 할 때 조차도 ;으로 끝내는 습관이 생겨버렸습니다. 그래서 간혹 가다가 저의 ;을 보고 "왜 그렇게 땀을 흘려?"라는 반응을 보이시기도 하는데, 그냥 저의 습관일 뿐입니다.

 하지만 궁금한게 생겼습니다. 왜 문장의 끝을 굳이 세미콜론(;)으로 표현하게 된 것일까요? Programming Language가 아닌 English에서는 마침표(.)와 세미콜론(;)의 차이는 두 문장이 서로 관련이 있는 경우에 ;을 사용한다고 합니다. 또 내용이 많은 목록을 분류할 때 쓰인다고 합니다. 이를 굳이 Programming Language에 짜맞춘다면 같은 Block내에 있는 문장들은 서로 관련이 있고, 내용이 긴 경우들이 생기므로 ;을 썼다고 해석할 수 있을까요?

 아, 프로그래밍 언어론에서 이런 것을 배울 것 같은데, 불행히도 저희 학과 전공에는 없었던 과목인지라 받지를 못했습니다. 혹시나 이 글을 보시고, 이유를 알고 계시는 분이 있으시다면 명쾌한 답변을 해주셨으면 합니다.
728x90

 디지털 키드라는 말이 있다. 어렸을 적부터 컴퓨터를 비롯한 디지털 장치들을 잘 다루는 어린이를 지칭하는 신어이다. 누가 언제부터 썼는지는 모르겠지만 언제부턴가 IT관련 기사나 컬럼등에서 간간히 볼 수 있었다. 그래서 그에 대한 생각을 정리해 보았다. (디지털 장치가 PC만을 뜻하는 것은 아니지만 여기에서는 PC와 프로그래밍에 대해서 집중적으로 얘기할 것이다.)

 우리나라에서 PC가 대중화되기 시작한 것은 80년대 후반 부터, 인터넷은 90년대 중반 이후로 활발해지기 시작했다. 저 기간이 바로 필자가 어린이였던 시절이다. 필자의 나이쯤되는 (80년대 초중반생) 사람들은 상당수가 어린 시절부터 컴퓨터 접했다.(집에 PC가 없었을지라도 적어도 친구들 집에서 접하기는 했을 것이다.) 이렇게 시기적으로 봤을 때 필자 또래정도 사람들이(또는 몇 년 위의 선배님들이) 우리나라에서는 디지털키드의 시초라 볼 수 있을 것이다.
 
 그리고 이런 디지털 키드들의 대부분은 게임때문에 컴퓨터 공부를 하게 된다. 그 당시 OS 환경은 주로 DOS였고, 지금처럼 쉽게 클릭 몇번으로 설치가 되고, 실행하지를 않았다.(MDir과 같은 유틸리티가 편리하게 만들어 줬지만). 그래서 각종 DOS 명령을 익혀야 했고, 필요에 따라서는 시스템 최적화를 위해 메모리 확보를 위해 autoexec.bat, config.sys, msdos.sys 파일 등을 건드리기도 했다. 그리고 게임의 에디트를 위해 에디트 프로그램을 쓰기도 했지만, 컴퓨터에 좀 자신있다는 친구들은 Hex Editor와 같은 툴을 이용하여 직접 16진수값들을 건드리기도 했다. 필자의 경우는 게임을 직접 만들고 싶었다. 그래서 프로그래밍 공부를 시작했던 것이다.

 이렇게 디지털 키드들은 자신이 하고 싶은 것(게임)을 하기 위해 필요에 의해서 컴퓨터 공부를 했다. 자신의 필요에 의해 공부를 할 때 가장 높은 효과를 본다고 생각한다. 그래서 디지털 키드들은 알게 모르게 참 많은 지식을 가지고 있다. 그리고 어렸을적부터 컴퓨터를 접하긴 했지만 앞에서 언급했던 것처럼 다양한 경험을 해보지 않은 사람들도 있다. 그리고 이 또래지만 어릴 적 컴퓨터를 접해보지 못해 본 사람들도 간혹 있다. 그리고 컴퓨터관련 학과에는 이런 부류들이 혼재한다.
 
 그렇다면 과연 이들 중에 누가 더 뛰어난 프로그래머가 될 수 있을까? 필자가 생각하는 답은 "디지털 키드 출신이 유리할 것 같지만 장담할 순 없다."이다. 이것은 어릴 적 미국에 이민을 간 사람과 한국에서 고등학교까지 졸업하고 미국에 유학을 간 사람에 비유할 수 있을 것이다. 유학간 사람이 아무리 영어공부를 한다고 해도, 어릴 적부터 미국에 산 친구를 따라가기란 여간 어려운 일이 아니다. 어릴 적 이민간 사람은, 사고 방식부터 미국적으로 변하고 각종 추억들도 그 쪽 문화를 통해 겪어 왔다. 하지만 대학생이 되어 유학간 친구가 영어 공부를 정말 열심히 해서 네이티브에 가깝게 구사를 한다고 할지라도, 사고 방식을 바꾼다던가 어릴적 추억을 공유하기란 쉽지 않다. 그래서 대화의 내용이 한계가 올 수 있을 것이다.

 이렇게 어릴적 이민간 친구가 대학생으로서 유학간 친구보다 훨씬 유리한 것처럼 디지털 키드 출신을 대학와서 공부를 시작한 사람이 따라가기란 쉽게 않다. 하지만 영어에 비해서 IT기술은 아주 빠르게 변한다. 예전 기술에 대한 지식이 최근 기술의 사고 방식에 방해가 되는 경우(예컨대, 절차적 프로그래밍에서 객체지향 프로그래밍)도 있다. 그러므로 대학와서 공부를 시작한 사람도 충분히 디지털 키드를 따라갈 수 있다. 단, 어릴적부터 다양한 경험을 컴퓨터를 통해 해온 것들에 대한 force는 상당히 강력하다.

 결론은 디지털 키드 출신 프로그래머가 가지고 있는 많은 경험은 무시할 수 없는 강점이지만 대기만성형 프로그래머가 노력을 많이 한다면 디지털 키드 출신 프로그래머를 능가할 수 있다. 그리고 변화를 두려워하면 누구라도 도태될 것이다. 변화를 두려워하지 않고 자신이 변화를 창조해 내는 일에 앞장 설 수 있으면 리딩 그룹에 속할 수 있을 것이라 생각한다.

(사실 이런 글 쓰고 있는 나 역시 변화를 따라가는 것이 힘겹긴 하다;;)

'IT > Opinion' 카테고리의 다른 글

내가 경험한 프로그래밍 언어들  (4) 2009.07.21
문장의 끝, 세미콜론(;)  (0) 2008.09.06