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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[11563] 오랜만에.. 닷넷 이야기...
박지훈.임프 [cbuilder] 3188 읽음    2006-04-03 18:21
닷넷에 관련된 부분만 써보겠습니다. 꽤 오랜만이네요. ㅎㅎ

C#이 여러 플랫폼을 지원하는 것이 아니라 닷넷이죠. C#은 언어일 뿐이니까요.
그러면 닷넷은 실제로 여러 플랫폼을 지원하는가... 하고 둘러보면, 실제로는 그렇지 않습니다.

닷넷이 여러 플랫폼을 지원한다고 하는 말은 MS가 닷넷을 처음 꺼내놓을 당시에 늘어놓던 홍보문구인데, 물론 기술적으로
닷넷을 윈도우가 아닌 플랫폼에 포팅하는 것이 가능하기는 하지만 오픈소스 프로젝트인 모노 외에는 현재 진행중인 것은
없는 것 같습니다.

MS는 닷넷을 처음 발표했을 때부터 닷넷이 여러 플랫폼을 지원할 것처럼 광고를 해댔고, 실제로 그렇게 할 것처럼 여러
제스츄어를 보여주었죠. 몇개 업체들과 공동으로 닷넷 포팅을 추진한다고 연이어 발표했습니다. 그리고 그 이후로..
2002년 이후로, 대대적으로 보도자료를 뿌리며 착수했던 이들 공동 포팅 프로젝트들은 전혀 소식이 없습니다.

뭐 당연히 예상했던 결과입니다. 그리고 너무나 당연한 겁니다. MS로서는 다른 플랫폼을 지원해서 얻을 실익이 없습니다.
지금까지(그리고 아마도 앞으로도) 닷넷이 다른 플랫폼으로 포팅된 유일한 사례인 모노의 경우 MS의 협력을 전혀 얻지
못하고 프로젝트를 진행하고 있고, 닷넷이라는 이름조차 못쓰고 있습니다. MS가 모노를 반기지 않는다는 단적인 사례죠.
그리고 MS가 법적으로 문제삼겠다고 마음을 먹을 경우 모노 프로젝트가 엮일 가능성도 아주 높습니다.

현재의 상황으로서는 MS가 모노를 문제삼을 이유는 전혀 없습니다. 모노가 선풍적인 인기를 끌어서 윈도우에서의 닷넷의
입지에 위협이 될 가능성이 보이지 않는 한, 모노가 크게 성장하지도 못하고 닷넷 플랫폼의 포팅의 '역사적 사례' 정도로만
남으면 MS로서는 그보다 좋을 수가 없지요.

결국, MS가 멀티 플랫폼 어쩌구 한 것은 닷넷을 홍보하기 위한 거짓이었다는 결론밖에는 나오지 않습니다.
그리고 지금은 알만한 사람은 다 아는 사실입니다. 물론 MS는 지금에 와서는 여러가지로 변명할 수 있겠지요.
예를 들면, '포팅도 가능하다는 얘기였지 실제로 우리가 다 포팅하겠다는 얘기는 아니었다'라든지 말이죠.
그런데 당시에 MS가 자신만만하게 내세우던 말투는, 분명히 그런 뜻이 아니었습니다. 순진한 개발자들을 기만한거죠.

MS가 닷넷을 가지고 멀티 플랫폼 어쩌구 한 것은 자바를 겨냥했던 거라는 건 누구라도 쉽게 짐작할 수 있을 겁니다.
이미 자바가 장악한 시장에 새로 진입하려고 하는 닷넷의 입장에서, 개발자들에게 자바보다 못한 것도 있다는 인식을 주면
결코 자바를 이길 가능성이 없게 됩니다. 자바와 최소한 동등하고 자바보다 반드시 더 뛰어나기만 하다, 라고 광고를 해야
개발자들에게 먹히죠.

그러면 과연 닷넷이 성능 면에서 자바보다 뛰어난가.
아마 그럴 겁니다. 당연히 그럴 겁니다. 아니면 오히려 이상하죠.

기억하실 지 모르겠지만 MS가 닷넷을 내놓기 전에 자바의 VM을 독자적으로 만들었다가 썬과 소송까지 간 적이 있습니다.
이 소송의 결과로 MS가 참패를 하면서 MS가 자바에서 손을 떼고 닷넷이라는 새 프로젝트를 벌이게 된 거기도 한데요.
이 당시에 만약 MS가 독자적으로 만든 윈도우용 자바 VM이 썬의 표준 VM보다 못했다면 썬이 시비를 걸 이유조차 없었겠죠?

그런데 MS에서 만든 것이 썬의 표준 VM보다 성능이 더 뛰어났습니다. MS의 비주얼 J++이 꽤 인기를 끌었던 가장 큰
이유가 바로 비주얼 J++에서 내장한 VM이 성능이 월등했기 때문입니다. 게다가 MS의 JVM에는 MS가 의도한 비표준의
스펙이 많이 포함되어 있어서 자바의 표준이 흔들리게 될 가능성까지 보였고, 그래서 썬이 소송을 제기한 겁니다.
(제 기억으로는 포인터같은 시스템 접근도 가능하게 만들었던 걸로 기억합니다. 지금의 닷넷 모델과 좀 비슷하죠?)

MS가 독자적으로 만든 JVM이 썬의 것보다 더 뛰어났던 것은, 물론 비주얼 J++ 프로젝트의 개발 책임을 맡았던 앤더스
헤즐스버그의 능력 덕택이기도 하지만, 상식적으로 봐도 1. 윈도우 OS 자체를 만든 MS가, 2. 호환성을 생각하지 않고
오직  윈도우만을 위해 만든 JVM이 평균적인 성능밖에 못낸다면 그게 오히려 더 이상하겠죠?

이런 이유로, 닷넷이 자바보다 성능이 뛰어난 것도 당연할 수밖에 없습니다. 만약, 정말 만약 닷넷이 리눅스나 솔라리스
등의 다른 OS에 포팅이 되었다면 그런 OS에서는 같은 OS에서 돌아가는 자바보다 성능이 못할 수도 있을 것입니다.
하지만 MS는 아예 다른 OS로 포팅을 전혀 하지 않았기 때문에 그런 비교를 당할 위험의 가능성조차 없습니다.
오직 윈도우에만 최적화된 닷넷만이 있을 뿐이기 때문에, 공정한 성능의 비교는 있을 수가 없습니다.

그런데 현실적으로, 이미 대세로 자리잡은 자바나, 그 자리를 노리는 닷넷이나, 둘다 주 타겟 시장이 엔터프라이즈, 즉
업무 개발, 더 쉽게 말하면 SI쪽 시장이기 때문에, 웬만한 성능의 차이는 중요하지가 않습니다. 압축 유틸리티나 오피스같은
유틸리티, 데스크탑 툴 등에는 성능이 아주 중요하죠? 그런데 업무용 개발에서는 별로 그렇지 않습니다.

업무 개발의 로직들은 그렇게 엄청나게 CPU 타임을 많이 먹는 작업이 흔치 않을 뿐더러, 화면상에서 2초만에 뜨는 것을
1초만에 뜨게 만드는 성능상의 개선보다는, 개발 프로젝트의 일정이 잘 준수되느냐, 유지보수가 쉽느냐, 이런 것이 훨씬
중요한 문제입니다.

만약 성능상의 차이가 너무나 엄청나게 차이가 나서, 자바로는 10분 걸리는 작업을 닷넷에서 2분에 했다면 또 문제는
다를 것입니다. 하지만 비슷하게 경쟁하는 기술들 사이에 아무리 성능 차이가 나더라도 이런 경우가 있을 수 있겠습니까?
게다가 업무 개발에는 로직 자체로 몇분씩이나 걸리는 작업 자체가 거의 존재하지 않습니다.

물론, 디비의 퍼포먼스는 다른 문제죠. 쿼리를 하는데 결과를 받는 시간이 10초냐 20초냐는 대단히 중요합니다.
하지만 이건 닷넷이나 자바에서 나오는 성능의 차이가 아니기 때문에 논할 거리가 아닙니다.

그래서... 물론 윈도우에서 닷넷이 자바보다 뛰어난 것이 분명한 사실이긴 합니다.
하지만 그 정도의 약간의 성능 차이로는 자바가 점유하고 있는 대세를 뒤집는 데 거의 도움이 되지 못하고 있는 겁니다.

실제로 2001, 2002년쯤, MS가 처음 닷넷을 소개하면서 자바에 대한 공세를 펼쳤을 때만 하더라도 많은 자바 개발자들이
흔들렸던 것으로 보입니다. 그런데 지금은 잠잠합니다. 만약 실제로 닷넷이 대세가 된다고 하더라도 그때 가서 닷넷으로
전환하면 된다고 생각하는 거죠. 현재로서는 도입단계에서 지지부진한 닷넷보다 자바 쪽이 밥벌어먹기가 압도적으로
좋으니까요.

자바 개발자들은 MS가 아무리 닷넷이 대세가 될 거라고 떠들더라도 그것이 바로 진실은 아니라는 것은 알게 된 것입니다.
MS가 주장했던 닷넷 대세론은, 아무리 MS가 강력한 힘을 가지고 있다고 하더라도, 개발자들이 실제로 움직여주지 않으면
헛수고가 될 수밖에 없기 때문입니다.

그러면 기존에 이미 윈도우에서 MS쪽의 개발툴들을 이용하던 개발자들이라도 닷넷으로 발빠르게 움직여주면 될텐데,
그것도 현실과는 거리가 멉니다. 닷넷 프로젝트가 조금씩은 생기고 있는 것은 사실이지만 아직도 Win32와 기존의 ASP
기반 프로젝트가 훨씬 많습니다. 결국 지금까지는 닷넷이 파일럿 정도밖에 되지 않고 있는 겁니다.

이런 상태로는, 앞으로 다시 3년쯤 지나도 닷넷이 자바와 맞경쟁할 정도로 성장하기는 어렵습니다. 닷넷 프로젝트가
하나씩 생기면서 계속 증가하더라도, 자바는 최근 수년 사이에 대세로서의 위치를 점점 더 확고하게 해가고 있기 때문에,
자바에서 도저히 닷넷이 아니면 극복이 불가능할 엄청나게 치명적인 문제가 생기지 않는 한, 자바의 대세를 뒤집기는
해가 갈 수록 점점 더 어려워지기 때문입니다. 따라서 이대로 시간이 지나가다가 보면, 닷넷은 결국 자바의 틈새 시장에만
적용되는 소규모 시장 정도로 고착될 가능성도 충분히 있습니다.


김상면 님이 쓰신 글 :
: 안녕하십니까!!! 고수님들..
: 언제나 처럼 여기에 들러서 많은 정보를 훔쳐 갑니다.
:
: 역시나 오늘도 평소와 같이 지식을 훔치러 왔습니다.
: 1. C#이 멀티 플랫폼을 지원하다고 하는데 그 범위가 어느 정도이면 실제로 적용되는 범위도 궁금합니다.
:     멀티 원영체제와 멀티 브라우저의 지원 여부와 지금 어느정도까지 가능하지가 젤 궁금합니다.
: 2. C#이 자바보다 월등히 낮다고 하는데... 정말인가요?
: 3. 웹환경에서 클라이언트의 자원을 접근하는 범위는 어떻지 궁금합니다.
:     클라이언트의 프린터,파일,디렉토리,각종하드웨어 접근을 가능한가요?
:
: 제가 빌더와 관계없는 질문을 자주해서 여러 고수님이 질타를 주시는데....
: 정말 죄송합니다. 달리 물어 볼때도 없고....
:
: 그래서 관리자님께 요청을 합니다. 컴퓨터에 관한 여러가지 지식을 나눌수 있는 섹션을 하나 만들자고요...
:
: 아무토록 즐프 하시기 바랍니다.
: 그럼
해롱해롱 [seaeast2]   2006-04-03 22:17 X
현재로서는 임프님의 의견에 동의 합니다. 그러나 앞으로는 그렇게 자바의 일방적인 우세만을 장담 할 수는 없을것이라고 생각합니다. 닷넷이 처음 등장할때 다양한 플렛폼 호환성을 내걸었으나 그것이 거짓이었음은 이제 모두 알아 버린 사실입니다. 그러나 실제 최종 사용자 운영시스템의 90% 이상을 장악한 마이크로 소프트가 윈도우 기반의 프로그램 제작에서는 닷넷의 C#이 자바보다 더 좋은 위치에 있음을 인정해야 합니다.
최근 MS에서는 게임용 API인 DIRECTX 10을 발표하면서 XNA란 개발 플렛폼에서 C#이 어떻게 사용되고 있는가를 프레젠테이션 한 적이 있습니다. 그동안 C++의 생산성에 발목잡혀 있던 게임 개발에서 C#을 통한 혁신적인 생산성 향상의 비전을 제시한 것입니다. 따라서 많은 게임 개발자들은 C#을 배울 것 입니다.
위의 예는 단적인 예에 불과 하지만 MS가 이러한 방법으로 개발자들에게 어쩔 수 없는 선택을 강요하게 된다면 윈도우 플렛폼을 가진 MS의 입김에 개발자들은 닷넷과 C#을 선택할 수 밖에 없을 것 입니다.
해롱해롱 [seaeast2]   2006-04-03 22:19 X
제가 아는 분도 반도체 장비 업체에 일하는데 이번에 C#으로 프로젝트를 모두 전환했다고 합니다. C#은 이미 업계에서 서서히 받아들여지고 있는 추세입니다.
박지훈.임프 [cbuilder]   2006-04-03 23:23 X
말씀하신대로.. '서서히 받아들여지고 있다'라는 사실은 저도 잘 알고 있습니다.
문제는 '너무 서서히' 라는 겁니다.

해롱해롱님께서는 아마도, 서서히라도 진행이 되면 언젠가는 닷넷이 지금과 같은 파일럿 수준을 넘어서서 주류 플랫폼의 하나가 될 수 있을 거라고 생각하시는 것 같습니다.

IT 업계에서 무언가를 주류로 올려놓으려면, 그 파급 속도가 상당히 빨라야 합니다. 지금까지의 IT 역사를 되돌아봐도, 어떤 기술도 부지불식간에 서서히 스며들어서 주류가 된 사례는 거의 없습니다.

윈도우? 리눅스? 인터넷? 자바? 메신저? 블로그?
이런 주류 기술들은 모두 하나같이 일반 개발자들에게 알려지기 시작한 후로 불과 2~3년만에 급속하게 성장해서 주류가 된 케이스들입니다. 보다 오래된 케이스들을 봐도, C언어나 C++, 유닉스... IT 업계의 시간의 속도가 지금보다는 상당히 느렸던 60~80년대에도, 이런 주류 기술들은 5년 정도만에 주류로 올라섰습니다.

그럼 닷넷은 어떻습니까? 2001년 이후로 벌써 5년이나 지났습니다만 아직도 '서서히'입니다. 사실 지금 서서히라도 진행되고 있는 것은 MS의 엄청난 자금력과 막강한 인력으로 밀어붙이고 있기 때문에 그나마라도 빠르게 진행되고 있는 것입니다. IT 업계에서 역사적으로 볼 때, 이미 닷넷은 실패했다고 보는 것이 타당합니다.

그러면, 과연 MS가 지금도 2001, 2002년의 발표 초기때처럼 닷넷의 성공을 스스로 믿으면서 밀어붙이고 있는 걸까요? 제 생각에는 아닙니다. 현재 MS가 닷넷에 쏟아붓는 노력은, '본전찾기'에 지나지 않습니다.

지금과 같은 자바의 절대 우세에서는 자바 개발자들은 웬만해서는 움직이지 않을 것입니다. 이게 정말 중요합니다. MS가 기존의 Win32 개발자들을 유혹하기 위해 닷넷을 내놓았겠습니까. MS로서는 그럴 필요가 없습니다. 기업용 개발 시장을 휩쓸고 있는 자바가 없었다면, MS는 닷넷을 내놓을 생각조차 하지 않았을 겁니다.

그래서 자바 개발자들이 닷넷에 흥미를 못느끼는 지금 상황이 MS에게는 중요한 의미가 있는 것입니다. Win32 개발자들은 MS에게는 '본전'입니다. 그런데 그 '본전'이, 이미 몇년전에 MS가 지원을 포기하겠다고 선언한 Win32에 머물러 있는 것입니다. 한마디로 말하자면, 도박에서 남의 돈 따먹겠다고 탐내다가 내 본전이 압수당한 꼴입니다.

다시 말해서, MS가 닷넷과 관련된 새로운 멋진 기술을 계속 내놓아봤자 이런 상황에서는 최대한 본전을 가져가겠다는 것밖에 안되고, '이익'을 추구하고 있는 것이 아니라 '손실'을 최소화하려고 안간힘을 다하는 셈이죠.

조금 다른 얘기지만, MS의 개발환경을 이용하는, 소위 'MS쪽' 개발자들의 구성비가 어떻게 될까요? 정확한 비율은 몰라도, 적어도 비주얼 C++과 비주얼 베이직 개발자가 가장 많겠지요? 그런데 아시겠지만 2000년도 초를 지나오면서 비주얼 베이직 개발자들은 다수가 웹 기반, 즉 ASP로 넘어갔습니다. 어차피 똑같은 비주얼베이직 언어이고, 웹 환경이라는 것을 제외하면 업무의 성격도 비슷하니까요.

그런데 주위에서 ASP 기반 사이트에서 ASP.NET으로 넘어간 사이트를 얼마나 보셨는지요. 손에 꼽을 겁니다. 그러면 CS 환경에 남아있는 일부 비주얼 베이직 개발자들은 VB.NET이나 C#으로 잘 넘어가고 있습니까? 이것도 아니올시다입니다.

비주얼C++ 개발자들은 더욱 말할 것도 없습니다. 최신의 비주얼스튜디오 2005 버전으로 넘어간 경우라도 비주얼C++ 개발자들은 C++ 개발자들일 뿐입니다. 비주얼C++도 매니지드 코드를 생성할 수 있기는 하지만 여전히 언매니지드 코드 개발이 가능합니다. 다시 말해 비주얼C++ 개발자들은 닷넷으로 안넘어갈 수 있는 자유를 가진 거고, MS의 압박으로부터 비교적 자유롭습니다. 지금도 닷넷 프레임워크 전혀 안쓰고도 최신 버전으로 개발해서 밥벌어먹는 상황인 겁니다. MS가 왜 갑자기 그동안 전혀 코방귀도 안뀌던 ISO C++ 표준 호환성을 따지고 있고 한글 지원같은 것을 추가하고 있을까요? 그런 거라도 없으면 C++ 개발자들은 아예 비주얼스튜디오 최신 버전으로도 업그레이드할 필요 자체가 없기 때문입니다.

결국 기존의 Win32 개발자들의 다수는 닷넷보다는 Win32에 머물러 있습니다. MS가 닷넷에 올인한답시고 스스로 Win32 지원이라는 퇴로를 끊어버렸기 때문에, MS로서는 남의 밥그릇을 뺏기는 커녕 이도저도 못하는 상황이 되어버린 겁니다.

그런데, 닷넷이 성능이 좋다, 좋다라고 MS가 계속 주문처럼 웅얼대고는 있지만, 왜 오피스는 닷넷으로 포팅하지 않죠? 왜 SQL서버는 아직도 비주얼 C++로 만들고 있나요? MS의 공전의 히트작 게임인 헤일로는 과연 닷넷 기반에 XNA로 만들어졌나요? 또 결정적으로, 롱혼으로 불렸던 비스타는 왜 닷넷 기반으로 만들거라고 뉘앙스만 흘려놓고는 여전히 Win32로 만들고 있나요?

개발자들 대부분은 바보가 아니기 때문에, 기술 자체를 가진 MS도 하지 않는 위험한 시도를 하지는 않습니다. MS가 오피스를 닷넷으로 만들고, 그 오피스가 기존의 오피스와 대등하거나 더 뛰어난 성능을 내지 않는 한 Win32 개발자들이 닷넷으로 러시하는 상황은 벌어지지 않습니다.

썬의 스콧 맥닐리도 빌게이츠 못지않은 상당한 뻥쟁이죠. 그가 90년대 말부터 2000년대 초까지 입버릇처럼 했던 말이 있습니다. 자바의 성능이 결코 C++에 뒤지지 않으며 심지어는 더 빠르기도 하다구요. 물론 그 말을 그대로 믿었던 개발자는 많지 않았습니다. 지금은 어떻습니까? 스콧, 그런 말 더 이상 하지 않습니다.

마찬가지로, 닷넷이 Win32의 성능을 낼 수 있다는 것은 영원히 뻥에 지나지 않을 것입니다. OS인 윈도우를 만드는 MS니까 Win32 네이티브보다 더 빠르게 만들 수 있을 것이다라고 생각이 드시나요? 만약 그게 가능하다면, 자바가 똑같이 썬이 만든 솔라리스에서 C++보다 빠르게 동작했어야겠죠. 하지만 그런 일도 벌어지지 않았습니다.

닷넷 자체는 기술이 아닙니다. 마케팅일 뿐이죠. 인텔의 센트리노와 마찬가지입니다. 센트리노에 기술적 요소가 있기는 하지만, 센트리노가 특정 CPU와 특정 네트웍 칩 등등을 합친 것일 뿐이라는 것은 IT 업계의 사람은 다 압니다. ASP.NET? 이거 좋은 기술입니다. 그런데 이건 닷넷 계획이 있기도 전부터 계획중이던 ASP+가 이름만 바꾼 겁니다. 이런 좋은 기술들을 조합해놓은 것이 닷넷이고, 개별적으로도 좋은 기술을 단순히 엮어놨을 뿐, 시너지가 없습니다. 굳이 따지자면 웹 개발자가 같은 언어와 같은 플랫폼으로 게임 개발을 할 수 있다는 식인데, 얼마나 많은 웹 개발자가 게임 개발을 하겠습니까?

XNA를 자세히 보지는 않았지만 짬짬이 줏어듣기로는 좋은 기술인 거 같습니다. XAML 같은 것도 역시 좋은 기술입니다. 그런데 전체 개발자들을 확 휘어잡는, 대세가 될 수 있는 굵직한 기술이 아니라 일부 시장에만 적용되는 틈새 시장용 기술인 겁니다. MS가 왜 이런 개별적으로도 존재할 수 있고 그 자체로도 좋은 기술들을 자꾸 닷넷에 붙이고 있는가도 생각해볼 문제입니다. 닷넷이 통하지 않고 있기 때문입니다.

이런 이유로, 앞서 본문에서 썼다시피, 닷넷이 새로운 주류의 하나가 되지 못하고 다른 주류 시장들의 틈새 시장으로 전락할 가능성도 있는 것입니다.

+ -

관련 글 리스트
11556 빌더와는 관계 없는 질문... 김상면 1720 2006/04/02
11567     Re:빌더와는 관계 없는 질문... 김상면 1670 2006/04/04
11563     오랜만에.. 닷넷 이야기... 박지훈.임프 3188 2006/04/03
11564         Re: 댓글이 너무 길당 김상구.패패루 1987 2006/04/04
11559     Re:빌더와는 관계 없는 답변... 김태선 1889 2006/04/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.