많은 분들(특히, 컴퓨터 전공인 학생들)이 프로그래밍 언어에 대해 공부를 하면서 뭘 해야 할지 막막해 하는 경우가 많습니다.
사실 수만 가지의 언어들이 있는데 무얼 선택해야 되나요라고 물으면 답변해 드리기가 사실 어렵습니다.
그럼, 어떤 언어를 해야 밥먹고 살까요?혹은 어떤 언어가 대세인가요?라고 물어도 사실 답변해 드리기가 어렵습니다.

현재 사용하고 있는 언어 중 가장 베이스라고 할 수 있는 것은 학교에서 배우듯 바로 C언어입니다.
그리고, C++, Java, C#, ASP, JSP, PHP, Delphi....등등 엄청 많은 프로그래밍 언어들을 배우거나 습득을 합니다.

그럼, C부터 해야 되나요? 요새 Java도 많이 하던데, Java부터 해야 되나요?

이렇게 질문하시면 전 공부하시고 싶은 걸 하십시오라고 대답을 해 드립니다.(너무 무책임한가요?ㅋ)

자, 프로그래밍 언어를 선택하고 흔히들 말하는 고급언어스킬을 어떻게 키울 것인가를 많이들 생각을 합니다.
(저 또한 뭐부터 해야 할지 뭘 해야 할지 참 많은 고민을 했습니다. 사실 저는 이 고민을 사회나와서 했다는 거...학교다닐 때는 공부를 지독스럽게도 안해서인지 사실 아주 순결한(?) 백지 상태로 졸업을 했던 관계로 사회나와서 남들보다 몇배는 힘이 들었던 것 같습니다.)

그럼 정답은 있느냐?
한가지 언어를 제대로(!) 마스터하라

사실, 한가지 언어만 제대로 마스터 하면 다른 언어들은 그리 어렵지 않게 습득할 수 있습니다.
간혹 이런 질문을 하는 사람들이 있습니다.
"전, C는 보통이상인 거 같은데, Java는 못해서 하 정도 밖에 안되는 거 같습니다"
이런 분들은 가슴에 손을 얹고 잘 생각을 해 보십시오.
과연 C도 제대로 할 수 있는 지를....

사실 저 역시 C는 어느 정도 하는데, Java는 잘 못합니다라고 말을 하고 다닌적이 있습니다.
돌이켜 보니 저 말을 하고 다닐때는 두가지 시기였습니다.
언어습득을 제대로 못하였을 시기와 요새는 다른 일을 시킬까봐...ㅡㅡ;(귀차니즘의 압박으로다.)

물론 반박하시는 분들도 있습니다.
하지만, 대다수의 분들은 C언어를 잘 하시는 분들은 Java도 잘하고, C++도 잘합니다.(그 반대의 경우도 마찬가지입니다)

자, 서점에 가셔서 객체지향에 대한 책을 쓰신 분들의 책을 보십시오. 그리고, 그 저자가 쓴 책들을 검색해 보십시오. C++, Java 가리지 않고 다 책을 쓰셨을 것입니다. 거기다 웹쪽 책이든 그 이상의 소프트웨어 공학 책이든 그 한명이 혼자서 온갖 책들을 다 썼다는 것을 알 수 있을 것입니다.

바로 전문가들은 언어습득이 그닥 어렵지 않다는 것입니다.

그럼, 프로그램 전문가가 되려면 어떻게 공부해야되나요?

저 같은 경우,(전 아직 전문가라 생각을 한적은 없습니다만...) 학교에서 C만을 배우고(사실 배우긴 했으나, 제가 제대로 공부를 한적이 없어서...) 정규 과정을 다 이수를 한 후, 졸업 후 사회에 첫발을 내딛고 나서 보니 참 막막했습니다.
그럼, 어떻게 공부를 했느냐?

먼저, 제가 알고 있는 분야 즉, C언어를 마스터하기 위해서 노력했습니다.
첫 직장도 마침 C언어로 개발을 하는 업체여서 공부도 쉽게 되었습니다.
공부 방법은 어떻게 했느냐? 책을 깊이 보진 않았습니다. 왜냐 사실 바이블 같은 책들은(언어 소개 책들 대다수) 일종의 사용설명서이자 도구에 대한 설명이지 사실 깊이는 없습니다. 왜냐 잘 생각해 보시면, 사실 책들을 뒤에서 시작해서 보나 중간에서 보나 앞에 기초만 조금 보나 사실 어디서 보든 별 어렵지 않습니다. 그러나, 보통 언어를 배우시는 분들은 첨부터 정독을 합니다.(저도 첨엔 정독했습니다. 하지만, 정독의 문제점 앞은 손때가 묻어 시커멓게 변해있을 정도이나 뒤는 잘 보질 않죠^^그리고, 지루하다는거...학습지 광고가 생각납니다. 매번 1장만 반복해서 본다는...)
그런데, 과연 내 수준이 C언어를 마스터했다고 주장할 수 있을 정도의 수준인가라는 의문이 생기더군요.
사실 마스터의 기준이 어디인지 어느정도인지를 모르기 때문입니다. 시험이라는 놈이 있지 않기 때문에 그걸 알 수가 없습니다.
그럼, 어떻게 마스터했다고 생각할 정도의 수준을 만들까를 고민해야 됩니다.
즉, 언어를 이용한 응용을 해 봐야 합니다.

C언어를 마스터했다는 기준은 이 언어를 이용한 자료구조라던지 알고리즘, 파일시스템 등등을 해 보므로써 본인의 실력이 어느정도인지 가늠할 수 있습니다.

즉, C만했다고 해서 마스터가 되는게 아니라는 것입니다. 사실, 프로그래밍을 잘 하려면 본인이 스스로 알고리즘정도는 만들 수 있어야 됩니다. 그러기 위해서는 언어의 스킬 만큼이나 자료구조, 파일시스템, 알고리즘 등 다양한 지식들이 필요하다는 것입니다.
학교다닐때는 자료구조, 파일시스템, 알고리즘등 왜 해야 되냐라고 생각하고 안듣거나, 거기서 거기인거 같은데 뭐 굳이 라고 하면서 안듣는 경우가 많습니다. 안타깝습니다.정말...(저도 학교다닐때는 그랬으니까요.ㅠㅠ)

프로그래밍을 하려면 바로 원리와 이해가 중요하고, 그걸 응용할 수 있는 것이 중요합니다.
즉, 프로그래밍에 쓰이는 원리나 원칙을 이해하고 나서, 그것을 이용하여 자료구조, 알고리즘 등을 구성해 본다면 그 언어는 마스터했다고 봐도 됩니다.

그런데 이런 분들이 있습니다.
C는 하는 데, Java는 생소해서 잘 못하겠더라고요. (그 반대도 마찬가지고요.)
한가지 언어를 익히고 나면 사실 다른 언어를 습득하는 건 그리 어렵지 않습니다.
단, C언어같은 구조적인 언어일 때와 C++나 java같은 객체지향 언어일 때는 조금 차이가 있습니다.

바로 객체지향의 개념을 확실히 이해를 해야 된다는 것입니다.

사실 객체지향 하면 다들 암기분야로 생각합니다. 다형성이 어쩌고, 클래스가 어쩌고 상속의 정의가  어쩌고...
잘못된 습관입니다. 객체지향에 대한 개념을 확실히 이해하여야 합니다.
객체지향에 대한 내용만 나와있는 객체지향이야기 같은 책들을 보시고 익히는 것 또한 도움이 됩니다.

간혹, 객체지향 개념을 익히긴 했는데도 Java습득하기가 쉽지 않네요.
이러시는 분들이 있을 수 있습니다.

공부하는 방법의 차이를 몰라서 입니다.
객체 지향에 대해 공부해서 C와 Java의 차이점은 익혔습니다.
그럼 이제 유사한 점을 비교해서 익히십시오.
포인터를 가지고 객체와 연관지어 생각을 해 보십시오.
포인터 공부할 때 그림을 그렸듯이, Java공부할 때 그림을 똑같이 그려보십시오.

즉, 본인이 마스터한 언어와 비교하면서 공부를 해 보십시오.
그리 어렵지 않을 것입니다.

보통 새로운 언어를 습득하기 위해서 다들 새로 책을 사서 첨부터 정독을 합니다.
이처럼 무식한 방법은 없습니다.
본인이 익힌 언어를 잘 응용해서 새로운 언어와 비교하면서 공부하시면 참 쉽게 해결될 것입니다.

거기다, 기존에 마스터한 언어로 구현했던 프로그램을 새로운 언어로 바꿔서 구현해 보십시오.

그것만큼 쉽게 이해하고 공부할 수 있는 방법이 없습니다.^^



자 그럼 정리를 해 보겠습니다.
Q)프로그래밍 언어는 뭘 할까요?
A)하고 싶은걸 하십시오!!!

Q)그럼 어떻게 할 까요?
A)원리와 개념을 이해하십시오. API를 많이 알고 있다고 잘 하는 것이 아닙니다.

Q)다른 언어를 습득하려고 하는데 고민입니다.
A)기존에 쓰시던 언어와 유사점과 차아점을 찾아서 비교하시면서 공부하십시오.
기존에 쓰시던 언어로 구현했던 프로그램을 새로 습득한 언어로 재변환해보십시오

이젠 쉽게 프로그래밍 공부를 하실 수 있으시겠나요?



by 無我 
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/07/30 18:04 2009/07/30 18:04
1993년 K-Dos이후 최초의 GUI 운영체제 개발을 확실하면서, 많은 분들의 관심을 한 번에 끌었던, Tmaxsoft의 Tmax Window가 공개되는 그 D-Day가 바로 어제 7월7일이었습니다.

소문난 잔치에 먹을 것이 없다는 말이 이럴 때 쓰는게 아닌가라는 생각이 듭니다.
먹고 살기 바빠서 직접 참여는 못했지만, 많은 분들이 다녀와서 블로그나 기사로 글을 남겨주셨습니다.
거기다 동영상까지 상세히 제공해 주셔서 어제 유심히 관찰해 봤습니다.

먼저, 티맥스소프트에 대해 일단 알아보도록 하겠습니다.
1997년 카이스트 교수인 박대연 박사가 창립하여 미들웨어 전문업체에서 종합소프트웨어 개발 업체로 발전해갔습니다. 티맥스소프트는 우리나라의 대표적인 S/W개발업체로 직원이 무려 2000여명이 넘는 대기업입니다.
S/W개발업계 최초로 1천억을 넘는 매출을 달성했으며, 2009년 10월 코스닥 상장을 발표한 국내 대표적인 S/W기업이라고 할 수 있습니다.

그런 티맥스소프트가 자회사인 티맥스코어를 통해 기존 개발된 OS커널인 Timos라는 제품을 기반으로 운영체제의 국산화를 추진하면서 2008년 대대적으로 2009년 4월 티맥스 윈도(Tmax window)를 출시하겠다라고 발표하여 화제가 되었습니다.

당시 티맥스소프트는 익히 Jeus라는 제품과 기타 DBMS등의 제품으로 기술력을 인정받아놓은 상태라 다들 의심의 여지가 없을 정도로 많은 기대를 했습니다. 저 역시 정말 무모하긴 하지만 대단한 도전이라고 생각을 했습니다.

그러다, 아무래도 개발의 어려움인지 은근슬쩍 연기를 하더니, 2009년 7월7일 Tmax Day를 맞아 공개를 하겠다라고 밝혔고, 그날이 바로 어제였습니다.

최초의 GUI 운영체제에 도전한 것에 대한 많은 기대감과 도전정신을 높이 샀습니다.
저 역시 참 대단한 도전이다라는 생각이 듭니다.
많은 블로거들이 앞다퉈 대단한 도전을 극찬했었습니다.
그렇긴 하지만, 많은 이들이 티맥스행사를 참여한 후 실망을 감추지 않으시더군요.
그 외에도 많은 분들이 글을 남겨주셨습니다. 워낙 많은 분들이 정보와 함께 사진, 영상등을 올리셔서 윈도우에 대한 설명은 안하겠습니다.


그럼 왜 굳이 이렇게 어려운 일을 도전했고, 왜 성급하게 공개를 결정했을까요?
어떤 의도였는지 분석을 해 보도록 하겠습니다.

첫째, 지나치게 MS, 오라클에 대한 열등감
먼저, 박대연 회장은 늘 우리는 MS,오라클 등 대기업과 싸워서 이길 수 있다라고 말해 왔습니다. 당시 DBMS를 개발할 때도 IT강국이지만, 상대적으로 S/W개발 후진국인 한국내에서 DBMS를 국산화하겠다라고 호언 장담하면서 당시에도 MS나 오라클을 속된 말로 엄청 깠습니다. 국내 S/W산업은 안된다 특히 미국이나 일본에 비하면 너무 초라하다는 패배주의적 생각을 안고 시작한 S/W개발 업체다 보니 아무래도 심한 열등감에 사로잡혀서 상대의 좋은 점을 캐기 보다는 독점이니 뭐니 하면서 흠집내기에 바빴을 것입니다.

둘째, 의도된 마케팅 전략
상당히 의도된 마케팅이라는 생각이 듭니다. 일단 이번 티맥스데이행사를 통해 티맥스소프트라는 회사의 인지도는 상당히 올라간 건 사실입니다. 특히 언론플레이를 통해 MS와 싸우겠다라는 등의 기사가 연일 나오면서 티맥스소프트의 인지도는 상당히 상승했습니다. 많은 사람들이 국산화된 윈도우를 볼 수있겠구나라는 기대심리를 상당히 심어주었고, 티맥스소프트가 도대체 어떤 회사야라면서 검색을 통해 회사 홍보가 상당히 되었습니다. 이를 볼 때 어쩌면 아직 준비가 덜 되었지만, 얻은것은 상당히 많았을 것으로 보입니다.

셋째, 투자자를 잡기 위한 공격적인 전략
티맥스소프트는 대형기업임에도 아직 상장이 되어 있지 않습니다. 그런 회사가 2009년 10월 코스닥 상장을 하겠다라고 발표하였습니다. 이를 잘 보면, 윈도우 국산화 전략과 여러 프로그램들의 국산화 전략으로 인지도를 올린 티맥스소프트는 이미 이 행사를 통해 많은 투자자들을 얻었을 것입니다. 즉, 1인기업이 아닌 주식회사로 거듭날 수 있는 좋은 기회가 된 것입니다. 그 이유로 일단, 정부 관계자들이 행사장에 등장한 것을 보면, 정부에서도 관심을 가질 정도로 대단한 행사이며 대단한 회사이다라는 것을 보여줍니다. 특히, 강만수 전 장관의 축사라던지 하는 것을 보면 상당히 투자자를 모으기 위한 공격적인 전략으로 보입니다.

넷째, 어차피 돈줄은 정부기관
사실 티맥스 윈도의 주요 수요층은 바로 정부관련기관들입니다. 현재 티맥스소프트의 가장 큰 수익원이 바로 정부기관 혹은 지방자치단체입니다. 이처럼 정부관련 기관들에 티맥스윈도를 한copy씩 납품한다고 하면 바로 엄청난 수익원이 되는 것입니다. 일반 유저에게 싼값에 공급하기 위한 것이 아닌, 기존 MS Windows의 정부 납품을 막고 티맥스소프트의 윈도를 납품하겠다라는 것입니다.  현재 MS와 완벽한 호환을 자꾸 주장하고 있습니다. 이는 정부기관에 판매하기 위한 전략으로 여겨집니다. 일단, 국산화를 위해 정부지원도 예상되고 거기다 정부관련 기관에 1PC당 1copy씩만 팔아도 엄청난 수익이 예상되기 때문에 아마도 정부기관을 타겟으로 개발이 진행되고 있다는 것을 잘 보여줍니다. 특히, 사장되어가는 activeX기술을 그대로 수용한다는 것을 보면 말이죠....

이처럼, 티맥스소프트는 많은 혹평을 받았으나, 절반 아니 그 이상의 성공을 거두었다고 보입니다.
일단, 세간의 주목을 받았고, 거기다 국산화가 가능하다는 기술력을 인정받았습니다. 뿐만 아니라, 정부관련기관들에게 상당히 어필을 하였으며, 그로 인해 향후 투자자들도 엄청나게 받을 수 있게 되었습니다.

윈도9 출시를 11월로 잡은 것도 아마도 10월 상장이후 호재를 위한 전술일 수 있다는 생각이 듭니다.
그리고, 이번 행사를 통해 현재 법적 다툼 중인 내용에 대한 기사가 쏙 들어갔습니다. 이처럼 시기 적절할 때 비록 아직 미완성이라 보여줄 것이 없음에도 추진한 것은 여러가지 정황에서 많은 이익적인 계산이 뒷받침 된 것이라 보입니다.

하지만, 오히려 이것이 역풍으로 돌아올 가능성이 있어보입니다.
일단, 정부관련 기관에 납품을 위해서는 TTA인증을 받아야 하고, 여론에 약한점(사실 현 정부는 여론에 별 신경을 안쓰긴 합니다만..)과 MS에서 소송을 걸 가능성도 있어 보입니다.(XP 표절이라고 해야 하나..음.)

이처럼 호재라고 생각되는 부분들이 오히려 악재가 될 수 있어 보입니다.
과연, 티맥스소프트는 향후 어떻게 나아갈지 한번 지켜볼 만 합니다. 그리고, 과연 11월에 정말 윈도가 정식 출시 될 수 있을지 한번 더 지켜 봐야 할 것 같습니다.





by 無我 
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/07/08 12:25 2009/07/08 12:25