1. C#은?

윈도우 95 초기 버전이 출시된 1995년 윈도우에는 인터넷 기능이 포함되어 있지 않았습니다. 그 때만 해도 마이크로소프트(이하 MS)는 인터넷의 잠재성을 깨닫지 못하고 있었습니다. 얼마 후 인터넷의 폭발적인 성장과 더불어 넷스케이프 웹브라우저, 자바 애플릿, 자바 스크립트 등의 인터넷 관련 기술이 등장해 시장을 급속하게 넓혀갈 때 MS는 부랴부랴 익스플로러와 비주얼 베이직을 변형한 비주얼 베이직 스크립트를 개발했습니다.

 당시 인터넷 관련된 핵심 이슈는 자바라는 네트워크 언어였습니다. 인터넷 개발에 늦게 발을 들여 놓은 MS는 선마이크로시스템즈(이하 SUN)가 개발한 자바를 임의로 변형해 익스플로러에 탑재했습니다. 또한 윈도우 개발 환경인 비주얼 스튜디오에도 자바 기술을 포함시켰습니다. 자바의 폭발적인 인기에도 불구하고 당시에는 변변한 자바 개발 툴이 없었는데 MS에서 비주얼 J++라는 강력한 자바 개발툴을 개발해 시장에 무료로 공급하기 시작했습니다. 실제 자바를 개발한 SUN은 MS의 이러한 자바 개발 정책을 지켜보고 자바 언어의 기득권을 빼앗길 수 있다는 위기의식을 느끼게 되었고, 곧 법정 소송을 진행해 더 이상 MS가 자바를 변형해 사용할 수 없다록 제동을 걸었습니다. 이후 MS는 자바 관련 프로그램을 개발할 수 없게 되었습니다. 특히 자바 개발 툴인 비주얼 J++는 프로그램 관련 책자까지 모두 회수하라는 법원의 판결이 떨어졌습니다.

 아이러니하게도 자바를 오늘날 가장 많이 사용하는 네트워크 언어로 만든 주역인 MS는 더 이상 자바 관련 기술을 사용할 수 없게 된 것입니다. 하지만 이미 시대의 대세는 인터넷을 기반으로 하는 분산 네트워크 기술로 옮겨가고 있었습니다. 특히 그 핵심 기술로 자바가 확고한 위치를 차지하고 있었으며 IBM, 오라클, BEA 등 대형 IT업체에서 자바를 중심으로 이러한 분산 네트워크 기술을 구현하기 시작했습니다. 이러한 상황을 타개하기 위해 MS에서 발표한 기술이 바로 .NET(이하 닷넷)입니다.

 닷넷을 짧게 요약하면, "애플리케이션, 서비스가 유기적으로 통합되기 위한 MS의 제품군과 기술 환경 및 서비스"라고 말할 수 있습니다. 즉, 자바 기술에 대응하기 위한 MS의 새로운 차세대 인터넷 환경이 바로 닷넷입니다. 닷넷은 자바가 제공하는 라이브러리인 JDK와 비슷한 라이브러리의 집합이며, 이 라이브러리를 가장 효율적으로 사용해 개발할 수 있는 언어로 C#언어를 새롭게 만들어 발표했습니다. C#은 MS의 자바 대응 전략의 핵심언어입니다. C#은 자바와 비슷한 용도로 사용되며 MS의 핵심 언어인 비주얼 베이직의 생산성과 비주얼 C++의 성능을 결합한 새로운 차세대 주력 언어입니다.




2. C#의 장점

C#은 네트워크 환경에서 개발자의 생산성을 증대시키고 프로그래머가 작성해야 하는 코드의 양을 줄이는 기술이 포함되어 있습니다.

<분산 환경에 적합한 언어>
ASP.NET, XML.NET, 모바일 프로그램을 빠른 시간안에 개발할 수 있습니다. 특히 ASP.NET은 웹 관련 프로그램 개발에 뛰어난 생산성과 성능을 발휘합니다.

<구조 중립적>
C#을 이용해 개발된 프로그램을 다양한 환경의 운영체제에서 실행할 수 있습니다.

<뛰어난 생산성>
C#은 비주얼 스튜디오 닷넷을 이용해 뛰어난 생산성을 제공합니다. 비주얼 베이직의 생산성과 비주얼 C++의 성능을 동시에 제공하는 C#은 개발 시간을 크게 단축시켜 줍니다.

<강력한 디버깅 기능>
ASP.NET, 모바일 프로그래밍 등 기존 언어에서 디버깅 제공이 곤란했던 분야에 대해 뛰어난 디버깅 기능을 제공합니다.




3. C#의 작동원리

C#언어도 자바와 마찬가지로 컴파일 방식과 인터프리터 방식이 혼합된 하이브리드 방식을 사용합니다. 확장자가 csc로 끝나는 소스코드를 작성하고 csc.exe 컴파일러를 이용해 중간 코드를 생성합니다. C#의 중간코드는 확장자가 EXE, DLL로 되어 있습니다. 그러나 C/C++등의 컴파일 언어가 생성한 EXE, DLL과는 다릅니다. C#의 중간코드는 닷넷 프레임워크가 설치된 환경에서만 작동하며, 닷넷 프레임워크가 설치되어 있지 않은 환경에서는 실행 파일이 동작하지 않습니다. C#은 현재 윈도우, 리눅스, 유닉스에서 사용가능한 해석기가 만들어져 있습니다.

 소스코드를 컴파일해 생성된 중간 코드는 CLR을 이용해 실행 파일로 변환되어 작동합니다. CLR은 자바의 JVM과 동일한 원리로 만들어졌습니다. 윈도우 비스타 버전부터는 운영체제 안에 닷넷 프레임워크가 설치되어 있기 때문에 별도의 CLR을 설치할 필요가 없지만 나머지 버전 윈도우에서는 반드시 닷넷 프레임워크를 설치해야만 실행할 수 있습니다. 중간코드를 클래스 로더가 읽어들여 JIT 컴파일러를 이용해 실행이 가능한 기계어 코드를 생성합니다. .NET Compact 프레임워크를 이용하면 윈도우 CE 운영체제를 사용하는 휴대폰, PDA에서도 실행되는 닷넷 프로그램을 작성할 수 있습니다.



4. C#과 C++의 차이점

   - 순현이가 너무 자세히 조사를 해서 저는 간단하게 보기좋게 표로 보여드립니다.

사용자 삽입 이미지

Posted by 알 수 없는 사용자
,