2008.05.23 19:00

자바냐 닷넷이냐...

누구나 컴퓨터를 처음 시작할 때의 아련한 기억들은 한가지씩 가지고 있겠지만, 내가 처음 배웠던 프로그램은 아래한글이다. 리포트 쓰기 귀찮아서 편집 좀 빨리 빨리 하려다 보니 스타일과 친해지고 그 외 다양한 기능을 용이 주도하게 사용 가능하더라는 것이다.
컴퓨터 프로그래밍 언어를 처음 배우게 되는 사람들에게는 자바나 닷넷이 큰 흐름이라 생각해서 둘 중 어느 것을 먼져 배워야 할까를 고민하는 것 같은데...내 생각은 정말 정보 처리라는 어설픈 대열에 끼일 생각이 있느냐는 것 부터 확실히 해야 한다고 생각한다. 난 리포트를 배껴내기 위한 목적으로 아래한글을 선택했다. MS 오피스도 있었지만, 오히려 익숙한건 워드였지만 아래한글을 선택할 수 밖에 없었다. 이유는 아래 한글로 씌여진 리포트 구하기가 쉽기 때문이었다. 아래한글의 기능을 배우는 것은 그 다음의 문제였던 것이다.

프로그램을 처음 시작하려는 이들에게 궁금한 점이 있다. 과연 이걸 시작해서 뭐가 되고 싶은 것인지, 자신이 편리하게 사용할 뭔가를 만들기 위한 것이니지 아니면 그나마 취업이 가능한 프로그래머가 되고 싶은 것인지?
뭔가 되고 싶은 (훌륭한 프로그래머가 되고 싶습니다 같은 포괄적인거 말고 구체적인)목적이 있다거나 자신의 사용 목적이 있는 경우라면 자바를 배우던지 닷넷을 배우던지 C 를 배우던지, 파이썬을 배우던지 Object C 배우던지 루비를 배우던지 비쥬얼 베이직을 배우던지 VBscript, javaScript 를 배우던지 그 외 존재하는 다른 어떤 프로그래밍 언어를 선택하던지 별로 무리가 없을 것이다. 내가 아래한글을 선택했던 이유와 마찬가지로 보고 배울 소스가 많거나 주변에서 쉽게 도움을 얻을 수 있는 언어를 선택하거나 자신의 컴퓨팅 환경에서 지원되는 언어를 선택하면 될테니 말이다. 문제는 후자의 경우이다. 취업을 목적으로 시작하는 사람들...

자바를 배워야 하느냐 닷넷을 배워야 하느냐
이제 막 프로그래밍 언어를 배우려는 사람이 자바를 배워야 하느냐 닷넷을 배워야 하느냐는 질문을 한다면 아마도 그걸 배워서 뭣에든 생계에 도움이 되는 일로 활용하고 싶은 생각이 있기 때문이 아닐까? 즉 두가지 중에 어느게 좀더 남는 장사인가를 물어 보는게 아닐까^^
금전적 결론 부터 이야기 하면 일반적인 경우 자바 개발자 단가가 더 높습니다. 더블어 자바쪽 인력이 수급 상황에서 더 유리합니다. 내가 처음 컴퓨터일을 시작했을 때도 그랬고 지금도 그랬고 앞으로도 쭉 그럴 예정입니다. 앞으로 최소 5년은...왜~애~에~...어지간한 대규모 프로젝는 이미 자바로 개발 되어 있고 그 기반을 5년 이내에 닷넷에서 역전하긴 힘들기 때문이죠...MS 가 가장 큰 회사라고는 해도 IBM 이나 Sun 역시 작은 회사는 아니고 5년 내에 망할 것 같지도 않구요. 신규 프로젝트로 자바나 닷넷을 정하기는 쉬워도 이미 수십억 단위의 프로젝트를 진행해 유지 관리를 해 놓고는 3~5년 후에 닷넷에서 자바로 자바에서 닷넷으로 그렇게 바꾸긴 너무 어렵기 때문이죠...인프라에 소요되는 장비와 라이센스, 내부 유지 인력들에 소용되는 비용은 다 어떻하구 손바닥 뒤집듯이 바꾸겠습니까? 대형 프로젝트의 경우 기술 성숙도, 인력의 경험 정도, 레퍼런스 등이 요구 되기 때문에 쉽게 바꾸기 힘들죠. 신규 프로젝트라면 어느 정도 고려 대상이긴 하겠지만, 이미 사용되던 자바를 중심으로 개발된 시스템이 있는 경우라면 역시나 자바로 닷넷 시스템이 있다면 닷넷으로 개발 될 것입니다. 간혹 작은 소규모 프로젝트에서 이기종을 도입 할 수도 있긴 하겠지만, 기존 유지관리 인력과의 문제도 있고 여러모로 힘든 일이 될테니...자바로 시작한 회사는 자바로 닷넷으로 시작한 회사는 닷넷으로 정해지겠죠...또 한가지 닷넷이 불리한 점은 닷넷으로 개발된 시스템이 본사 시스템인 경우가 드물다는 점입니다. 우리나라처럼 대기업과 그 계열사 중심으로 편제된 나라에서 계열사가 독립적인 시스템을 운영해나간다고 해도 본사와의 단절을 의미하는 것이 아니기 때문에 여러모로 골치아픈일이 많이 발생합니다. 덕에 SOA 라는 것이 각광받기도 하지만, 아직은 힘든 일로 느껴집니다. 지금 시작한다면 자바로 시작해서 대규모 프로젝트에서 업무 관련 경험을 쌓는게 나중에도 오랫동안 좋은 조건으로 일을 유지해나갈 방법이라고 말하고 싶습니다. 지금도 자바로 개발되는 프로젝트의 고참들은 자바 개발 고참이 아닙니다. 오랜동안 해당 업무 처리에 익숙한 분들입니다.(은행권이라면 코볼 개발자 혹은 C 개발자였음을 예상해 보겠네요.) 즉 나중에 자바 이후의 새로운 프로그래밍 언어가 나온다 해도 대형 업무는 또 요구될테고 그에 필요한 고급 인력은 프로그래밍 언어보다는 업무 중심의 경력자들일 것이란 이야기죠. 지금 자바를 배운다면 5년 동안 열심히 써먹고 더 써먹거나 바뀐다고 해도 업무 경력자로 남을 수 있다고 말씀드리는 거죠...^^ 물론 작은 한 부분만을 이야기 하는 겁니다.  닷넷의 영역보다는 커보이는....^^그렇다고 닷넷이 비젼이 없거나 자바의 반값도 않되느냐...꼭 그렇진 않습니다. IT 가 많이 요구되는 곳은 신규 솔루션을 만드는 업체가 아닌다음에야 기존 기업이겠죠. (세상의 모든 기업이네...^^ )자체 전산 인력이 가능한 회사라면 아마도 중소기업 규모일꺼란 생각이 들고 그 기업들의 투자 가능성 부분에 있어서는 아마도 닷넷  쪽이 우세하리라 예상합니다. MS의 저렴한 유지관리 캠패인 덕에 개발자 마져 저렴한 비용으로 처리되긴 하지만, 자체 전산인력을 보유할 정도의 회사라면 결코 아쉬운 급여는 아닐껍니다. 또 대부분의 회사가 MS 계열의 OS를 사용하기에 대기업이든 중소기업이든 MS중심의 개발은 끊임없이 이어지는게 현실이기도 합니다. (저는 현재 XP 에서 인터넷 익스플러로로 운영되는 자바 모듈 프로젝트에 참가중이라는...^^) 다른 측면으로 대기업들은 보통 전산관련 자회사를 두고 아웃소싱하는 형태고 그 자회사에 들어가기 위해서는 자바나 닷넷 어느 걸 하더라도 별차이는 없을 겁니다. 자바든 닷넷이든 프로그래밍 교육 정도는 시켜 줄테고 프로그래밍 수준보다는 관리 능력이 더 중요할테니 말입니다. 다시 원점으로 돌아 오고 말았네요.

결국 자바든 닷넷이든 프로그래밍 자체는 그다지 중요하지 않습니다. 사람에게 있어 금전적 문제만이 중요한게 아니고 닷넷이라고 하더라도 자바의 반값 취급을 받는게 아니니...금전적 문제에서 약간 손해를 본다고 무조건 자바를 택할 필요도 없으며, 앞서 이야기한 대규모 프로젝트에 혹해 대기업 진출(뭐 정규직으로 프로그래머를 뽑는 일은 없으니까...)을 목적으로 자바를 배울 필요도 없습니다. 더구나 당장의 금전적 문제만 가지고 모든걸 결정짓겠다는건 문제가 있습니다. 실제 일을 하게되면 자바나 닷넷의 문법이나 기법보다는 데이타 베이스에 디비 사상에 더 많은 시간을 할애 해야 할 수도 있고 쿼리 자체에 더 많은 어려움을 겪을 수도 있습니다. 더블어 지치는 업무 중간에 대인관계도 원만히 지내며 틈틈히 관련 사이트 최신 정보도 뒤적이고 분기별로 책을 정해 공부도 하고 마감때 마다 뻘건 눈으로 버그와 씨름할 준비도 되셨나요? 당장은 덜 중요할지 모르지만 자신의 취미도 꿈도 자신이 원하는 업무 분야도 어디에 감춰두실껀가요? 자바, 닷넷을 정하면서 전산인의 암울한 현실은 가리고 꿈은 휴지통으로 넣어 버릴 심산인가요?  자바나 닷넷 보다 더 훌륭한 금전적 보상을 받을 일은 자바, 닷넷 프로그래밍 외의 전산을 포함하여 많이 있습니다. 전산으로 한정한다 해도 다른 더 많은 기술 형태와 직종이 있으니 자바냐 닷넷이냐를 금전적 문제로만 결정해선 않된다는 것입니다. 앞서 말씀드린데로 그 회사 나름의 기업문화에 맞는 프로그래밍 언어는 이미 정해졌을 테니 차라리 특정 회사를 목표로 준비를 하시는게 더 좋을 듯 싶습니다.

자신에게 좀더 충실해 지시길 부탁드립니다. 자신이 전산 일을 얼마나 하고 싶냐에 따라 달라질 문제지 자바냐 닷넷이냐의 문제가 아닌 것입니다. 더 많은 사람들에게 자신이 하고자 하는 구체적인 일을 설명해 주고 더 많은 사람들을 만나 보시길 바랍니다. 어떤 회사든 사이트든 나가서 일하면서 배우게 될 부분이 더 많을테니까. 뭐 경우에 따라서는 배운거 반도 않쓰는 안정적인 일을 구할 수도 있겠군요...^^

신고

'뭐하는데' 카테고리의 다른 글

IE 8 Developer Tools content  (0) 2009.08.03
윈도우 요리책 ㅋㅋㅋ  (0) 2009.07.22
Windows 7 RC Training Kit for Developers  (0) 2009.07.10
월화수목금금금  (0) 2009.07.08
자바냐 닷넷이냐...  (2) 2008.05.23
유연한 프로그램 만들기  (0) 2008.03.04
Trackback 1 Comment 2
2008.03.04 09:09

유연한 프로그램 만들기

유연한 프로그램만들기... 내 적은 경험으로는 이해하기 힘든 일인지 모르겠다. 유연하다는 것이 내 짧은 생각으로는 다양한 조건에도 그 대응이 있어야 하고 그 변경이 쉬워야 한다는 뜻으로 생각되는데... 다양한 조건이라는 것 자체에서 모든게 걸려 버린다. 다양한 if 문 (switch 도 있을 수 있겠지만)외에는 생각되는게 없기에 벌써 부터 머리만 아픈 것이다. 슬프다...

아무리 큰 틀을 가지고 있다고 해도 미세한 조정을 위해서 약간의 조정이 필요하고
인터페이스를 맞추기 위해서 예 아니오로 응답하게 하도록 했다고 해도 그 미묘한 조정을 위해서 수정이 불가피한 경우가 많고,

변경이 쉬우려면 변경에 대한 결과를 예측할 수 있는 사람이 있어야 하는 것이다. 그런데 난 그 예측하기가 너무 어렵다. 내가 만든 것 조차도...^^

단순히 기술적 문제로 소프트웨어적 유연함을 이루긴 힘들다고 생각한다. 결국 전체적인 원칙을 가지고 그에 맞도록 수정해 나가는 것이 중요하고 전체적인 흐름을 이해하는 사람이 필요한것이다. 도구로써 해결되는 것은 어디까지나 그 도구를 사용하는 사람의 생각에 따라 틀려지는 것이다. 사람이 중요하다. 그 시스템을 흐름을 이해하는 사람이 중요하다.

그 시스템의 전체를 아우르는 사상이 필요하다. 그런데... 네가 고객보다 높냐^^
신고

'뭐하는데' 카테고리의 다른 글

IE 8 Developer Tools content  (0) 2009.08.03
윈도우 요리책 ㅋㅋㅋ  (0) 2009.07.22
Windows 7 RC Training Kit for Developers  (0) 2009.07.10
월화수목금금금  (0) 2009.07.08
자바냐 닷넷이냐...  (2) 2008.05.23
유연한 프로그램 만들기  (0) 2008.03.04
Trackback 0 Comment 0
2008.02.29 10:50

프로그램의 함정

사용자의 실수를 유도하는 방법 : 참 나쁜 습관 되겠다. 정말 개떡같이 만든 소프트웨어 소리 듣기 좋은 케이스다.

함정파고 기다리기...
미리 입력 가능한 기본값을 미리 넣어 놓는다. -> 저장 시 반영된다. 꼭 넣어야 하는 추가 입력사항이라면 빈값을 넣어 두고 경고를 줘야 한다. 왜~ 그래야 변경한 진짜 값을 넣지...

수정한 값을 허용 범위를 넘어선 경우 허용 범위 최대 최소로 초기화 시키기 -> 역시나 잘못 저장될 가능성이 높다. 더구나 허용 범위가 넓은 경우 최대, 최소로 설정된 값은 실제 입력값에 대비 큰 차이가 날 수 있다.  초기화를 구분해서 사용하자. 지정된 값(입력 가능한 최소/최대값(기본값))으로 세팅 하는 change 와 아예 비워 버리는 Clear

사용자가 입력한 값을 이용, 자동 계산하여  번경하는 경우 사용자가 인지 할 수 있는 메시지가 필요하다.
신고
Trackback 0 Comment 0
2008.01.24 12:28

누구의 잘못인가?

살다보면 이래 저래 많은 일들을 겪게된다. 좋은 일 나쁜일 그냥 그런일... 그런데 나쁜일을 겪게 되면 누구의 잘못인가를 따지게 된다. 누구의 잘못인가? 어디서 잘못되었는가? 구조적 문제점은 아니가? 앞으로 더 많은 오류가 생기지는 않는가?

철수와 영희가 집에서 놀다가 잘못(화병을 넘어뜨린다거나 물건을 잘못 던져서 유리창이 깨지거나..^^)을 저질러 혼이 나야 한다면...
일단 덮어두기가 가능할 것 같다. 모른척하기...지금 당장은 혼나거나 문제되지 않겠지만, 발각되는 날에는 더 큰 책임과 과도한 처벌이 기다리고 있을 것이다.

try{
범죄 발생 위험이 높은 곳(은행 CD 기기, 편의점 카운터 기타 등등)에는 감시를 위한 보조 장치가 있다. 감시 카메라는 증거를 남기고 즉각적인 반응을 위한 것이다. 물론 감시카메라가 만능이 아니기에 모든 범죄를 예방하지는 못한다. 더블어 감시 기능을 교묘히 빠져나가는 범죄도 발생하기 마련이다. 감시한다는 것은 발생 할지 모르는 오류와 범죄에 대해 즉각적으로 반응하기 위한 하나의 방법인 것이다. 미연에 모든 것을 막아주진 못하더라도 발생 즉시 대처가 가능해야 함을 의미한다. 일반적으로 대처는 어떤 방식으로 하는게 좋은지 앞선 철수와 영희의 경우를 잘 생각해 보는 것이 좋을 것이다.
}
catch(Exception){
1. 첫 시작부터 잘못을 감지해 내고 알려준다.
2. 둔해서 모르고 지나간다.
3. 알았지만, 덮어 둔다.
4. 내 잘못이 아니라고 고자질, 발뺌한다. new Exception(ex);
5. 잘못된 점을 조목 조목 이야기 한다.
}
이제 적은 나이라고 말하긴 어렵지만 아직도 모르는 것이 더 많고 배우고 싶은 것도 많다. 프로그램 작업은 분명 사람들이 겪은 문제에 대한 일반적으로 분명 앞으로도 더 많은 것을 배워야 겠지만, 지금도 많은 것을 배우고 있지만, (작은 변명으로...)

아무리 혁신적인 프로그램 또는 프로그램 언어라고 할지라도 프로그램이란게 사람이 만든 것이니 만큼 사람들의 가치관을 많이 반영하고 있다. 더블어 분류 방식, 전달 체계, 기본 원칙(문법) 등 사회와 문화에서 통용되는 원칙을 기반으로 하고 있다.  또 프로그램 제작이 업무, 조직, 사회에서 적용되는 원칙에 대한 구현이기 때문에 사회에 대한 한 반영이기도 하다. 결코 지루할 만큼 길다고 할수는 없지만, 지난 7년여 생활 속에서 배운 몇가지가 그러하다.

신고
Trackback 0 Comment 0