C# 소개 및 개요


지난 20년 동안 C와 C++는 상용 및 업무 소프트웨어 개발에 가장 널리 사용되었습니다. 두 언어는 모두 프로그래머가 세밀한 부분까지 제어할 수 있는 반면에 이러한 융통성은 생산성을 저하시킵니다. Microsoft � Visual Basic�과 같은 언어에 비해 C와 C++를 사용한 응용 프로그램 개발은 더 많은 시간이 필요합니다. C와 C++는 난해하고 개발에 많은 시간이 소요되기 때문에 많은 C, C++ 프로그래머는 성능과 생산성 간의 보다 나은 균형을 제공하는 언어를 찾으려고 노력해 왔습니다.

현재 C와 C++ 프로그래머가 요구하는 유연성을 줄이고 대신 생산성을 높일 수 있는 언어들이 있습니다. 이러한 솔루션은 개발자의 범위를 지나치게 제한하고(예: 저수준 코드 제어 메커니즘 삭제) 최소한의 일반적인 기능만 제공합니다. 이전의 시스템과 쉽게 호환되지 않으며 현재의 웹 프로그래밍에 알맞지 않은 부분도 있습니다. 

C와 C++ 프로그래머에게 이상적인 솔루션은 신속한 개발이 가능하고 기본 플랫폼의 모든 기능을 액세스할 수 있는 성능이 결합된 제품입니다. 이들은 웹 표준과 완벽하게 부합되고 기존의 응용 프로그램과 쉽게 통합할 수 있는 환경을 원합니다. 또한 C와 C++ 개발자는 필요한 경우 저수준으로 코드를 작성할 수 있는 기능을 선호합니다.

Microsoft, C# 소개
이러한 문제에 대한 Microsoft의 솔루션은 C# ("C 샵"으로 발음)이라는 언어입니다. C# 은 최신 개체 지향 언어입니다. 프로그래머는 새 Microsoft .NET 플랫폼에서 실행되는 광범위한 응용 프로그램을 신속하게 작성할 수 있습니다. 이 플랫폼은 컴퓨팅 및 통신을 완벽하게 활용할 수 있는 도구와 서비스를 제공합니다.

C#은 최신 개체 지향 설계를 통해 고수준 업무 개체부터 시스템 수준 응용 프로그램까지 광범위한 구성 요소를 작성할 수 있습니다. 모든 플랫폼의 모든 언어에서 간단한 C# 언어 작성을 통해 구성 요소를 인터넷에서 실행되는 웹 서비스로 변환할 수 있습니다.

특히 C#은 C와 C++의 장점인 성능과 세밀한 제어 기능을 희생하지 않고 신속한 개발이 가능하도록 설계되었습니다. 이러한 설계에 따라 C#은 C와 C++의 기능을 거의 가지고 있습니다. C와 C++ 언어에 익숙한 개발자는 C#을 쉽게 사용할 수 있습니다.

생산성 및 안전성
새로운 웹 경제로 인해 이전보다 더욱 신속하게 경쟁력을 갖추어야 하는 업무 환경에 직면하게 되었습니다. 개발자는 프로그램의 개발 주기를 단축하고 버전을 지속적으로 업데이트해야 합니다.

C#은 이러한 상황을 염두에 두고 설계되었습니다. 이 언어는 개발자가 더 적은 코드를 사용하여 더 적은 오류가 발생하는 프로그램을 개발할 수 있도록 지원합니다.

웹 프로그래밍 표준 준수
새로운 응용 프로그램 개발 모델은 더 많은 솔루션에서 HTML(Hypertext Markup Language), XML(Extensible Markup Language), SOAP(Simple Object Access Protocol) 등과 같은 웹 표준을 사용하도록 요구하고 있습니다. 기존의 개발 도구는 인터넷과 웹이 출현하기 이전이나 초창기에 개발되었습니다. 따라서 새로운 웹 기술에 적합하지 않은 부분들이 있습니다. 

C#프로그래머는 Microsoft .NET 플랫폼에서 응용 프로그램을 작성할 경우 광범위한 프레임워크를 활용할 수 있습니다. C#은 모든 플랫폼의 모든 언어에서 구성 요소를 인터넷에서 실행되는 웹 서비스로 변환할 수 있는 내장 지원 도구를 포함하고 있습니다.

또한 웹 서비스 프레임워크는 기존의 웹 서비스가 프로그래머에게 고유 C# 개체와 동일하게 보이도록 만들 수 있으므로 개발자가 기존의 웹 서비스에 개체 지향 프로그래밍 기법을 활용할 수 있습니다.

C#을 훌륭한 인터넷 프로그래밍 도구로 만드는 몇 가지 특징들이 있습니다. 예를 들어, XML은 인터넷을 통해 구조화된 데이터를 전달하는 표준 방식으로 등장했습니다. 이러한 데이터 집합은 대개 매우 작습니다. 성능 개선을 위해 C#은 XML 데이터를 클래스 대신 직접 struct 데이터 형식으로 매핑할 수 있습니다. 이 방법은 작은 데이터를 다루는 데 효과적입니다.

손해가 큰 프로그래밍 오류 제거
숙달된 C++ 프로그래머라도 변수 초기화를 잊는 등의 초보적인 실수를 할 수 있고 이러한 간단한 실수로 인해 오래 동안 발견되지 않는 예상치 못한 문제가 발생할 수 있습니다. 일단 프로그램이 제품으로 출시되면 아주 간단한 프로그래밍 오류라도 수정하는 데 비용이 많이 듭니다.

C#은 가장 일반적인 C++ 프로그래밍 오류를 줄일 수 있도록 설계되었습니다. 예를 들어,

쓰레기 수집 기능을 통해 프로그래머가 직접 메모리를 관리해야 하는 부담을 없애줍니다. 
C#에서는 환경에 따라 변수가 자동으로 초기화됩니다. 
안전한 형식의 변수를 사용합니다. 
따라서 개발자가 쉽게 프로그램을 작성하고 관리할 수 있으며 복잡한 업무 문제를 해결할 수 있습니다.

내장 버전 지원 프로그램을 사용하여 개발 비용 절감
소프트웨어 구성 요소의 업데이트는 주로 오류를 찾는 작업입니다. 코드를 수정할 경우 기존 프로그램의 내용이 의도와 다르게 변경될 수도 있습니다. 개발자가 이 문제를 해결할 수 있도록 지원하기 위해 C#은 버전 지원 도구를 포함하고 있습니다. 예를 들어, 메서드 재정의는 C++나 Java처럼 우연히 발생할 수 없도록 명시적이어야 합니다. 이렇게 하면 코딩 오류를 방지하고 버전을 유연하게 보존할 수 있습니다. 관련 기능으로 인터페이스와 인터페이스 상속의 지원 기능이 있습니다. 이러한 기능들을 통해 복잡한 프레임워크를 신속하게 개발하고 업데이트할 수 있습니다.

따라서 차기 버전의 프로젝트를 개발하는 과정이 더욱 간단해지고 버전 업데이트에 필요한 개발 비용을 줄일 수 있습니다.

성능, 기능 및 유연성
업무 프로세스 및 구현 사이의 뛰어난 매핑
기업에서 업무 계획을 수립할 경우 추상 업무 프로세스와 실제 소프트웨어 구현 사이의 밀접한 관련성은 필수적입니다. 그러나 대부분의 언어는 업무 논리와 코드를 연결하는 편리한 방법을 제공하지 못하고 있습니다. 예를 들어, 개발자는 추상 업무 개체를 구성하는 클래스를 식별하기 위해 대개 코드 주석을 사용합니다.

C# 언어는 모든 개체에 적용될 수 있는 형식이 지정된 광범위한 메타데이터를 허용합니다. 프로젝트 기획자는 도메인별 특성을 정의하고 클래스나 인터페이스 등의 모든 언어 요소에 이 특성을 적용할 수 있습니다. 그런 다음 개발자는 프로그램을 통해 각 요소의 특성을 조사합니다. 이렇게 하면 예를 들어, 각 클래스나 인터페이스가 특정한 추상 업무 개체의 일부로 올바로 식별되는 자동화 도구를 작성하거나 단순히 개체의 도메인별 특성에 따라 보고서를 생성하는 작업이 쉬워집니다. 사용자 정의 메타데이터와 프로그램 코드 사이의 엄격한 결합은 의도한 프로그램 동작과 실제 구현 사이의 연결을 강화할 수 있도록 지원합니다.

광범위한 호환성
엄격한 형식 검사 환경은 대부분의 기업 응용 프로그램에 적합합니다. 그러나 실제로 성능 및 기존 API와의 호환성 때문에 계속 원시 코드를 필요로 하는 일부 응용 프로그램이 있습니다. 이러한 시나리오 때문에 개발자가 더욱 생산적인 개발 환경을 선호하지만 C++를 사용해야 하는 경우도 있습니다.

C#은 다음과 같이 이러한 문제점을 해결합니다.

COM(Component Object Model)과 Windows 기반 API 지원. 
고유 포인터 사용 제한 가능. 
C#에서는 모든 개체가 자동으로 COM 개체가 됩니다. 개발자는 더 이상 IUnknown 및 기타 COM 인터페이스를 명시적으로 구현할 필요가 없습니다. 대신 이러한 기능들이 내장되어 있으므로 C# 프로그램은 사용된 언어에 상관 없이 기존 COM 개체를 고유하게 사용할 수 있습니다.

기존 COM 개체가 필요한 개발자를 위해 C#은 프로그램에서 모든 고유 API를 호출할 수 있는 특별한 기능을 포함하고 있습니다. 개발자는 특정 표시가 있는 코드 블록에서 메모리 직접 관리나 포인터 계산과 같은 이전의 C/C++ 기능들을 사용할 수 있습니다. 이 기능은 서로 다른 환경에서 많은 장점을 가지고 있습니다. 즉, C# 프로그래머는 기존의 C와 C++ 코드를 다시 사용할 수 있습니다.

COM 지원 및 고유 API 액세스 기능의 목적은 모두 개발자가 필요로 하는 성능을 제공하고 C# 환경을 벗어나지 않고 프로그램을 개발할 수 있도록 하는 것입니다.

결론
C#은 Microsoft .NET 플랫폼에서 실행되는 솔루션을 신속하고 편리하게 개발할 수 있는 최신 개체 지향 언어입니다. 제공되는 프레임워크를 통해 모든 플랫폼의 모든 언어에서 C#구성 요소를 인터넷에서 실행되는 웹 서비스로 만들 수 있습니다.

C#은 개발자의 생산성을 높여주고 개발 비용 증가의 원인이 되는 프로그래밍 오류를 줄일 수 있습니다. C#은 C와 C++ 프로그래머가 요구하는 성능과 유연성을 제공하면서 신속한 웹 개발이 가능합니다.


최종 수정일 2000년 7월 11일


'Tech:  > .NET·C#' 카테고리의 다른 글

웹 서비스 사용시 공식 네임스페이스  (0) 2008.06.26
유용한 Regular Expression  (0) 2008.06.26
.NET Enterprise Service에 사용되는 도구들  (0) 2008.06.26
.NET 성능 향상 팁 (영어 원문)  (0) 2008.06.26
.NET 성능 향상 팁  (0) 2008.06.26
C# 소개 및 개요  (0) 2000.07.11


Posted by 🐮Thermidor™ 떼르미
TAG ,

댓글을 달아 주세요



자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]