지금까지 닷넷과 닷넷 프레임워크에 대하여 살펴봤다. 이제부터 본격적으로 C#에 대해 알아보도록 하겠다.

C#은 마이크로소프트에서 기존에 발표한 언어 중에서 가장 강력한 기능을 자랑하는 C++를 기반으로 하며,자바의 장점을 혼합하여,닷넷이라는 새로운 개념을 도입해 만든 언어라고 할 수 있다.


C#이란 이름은 C#의 모태라고 부를수 있는 C++라는 명칭에 +표시를 두개 더하여 만들어졌다. 그만큼 C++보다 더욱 발전한 언어라는 것을 강조한 것이다. 또한 사용하기 쉽고, 간단하게 배우는 것도 어렵지 않다.


C#의 장점은 보면서 빨리 개발할 수 있다는 것이다. 기존의 비주얼 베이직처럼 보면서 빨리 개발할 수 있는 RAD를 기반으로 하는 언어다.하지만 비주얼 베이직처럼 개발할 때 제약이 있지는 않다는 것이 특징이다. 그리고 윈도우 API를 사용할 수 있다.

운영체제는 수많은 API로 이뤄져 있는데, API란 운영체제를 구성하고 있는 수많은 부분을 의미하며 그 자신 또한 프로그램이다. 이러한 API를 프로그래밍에 활용하면 해당 운영체제에서의 애플리케이션을 쉽게 만들 수 있는데, 비줄얼 C++나 비주얼 베이직 같은 언어에서는 윈도우 API를 사용해왔다.


C#도 마찬가지로 API를 사용할 수 있다. 기존의 API 80%를 지원한다. 대부분의 API 함수가 C 형태로 작성되어 있기 때문에 함수의 인자를 포인터로 전달하는 경우가 많다. 그렇기 때문에 포인터를 지원하지 않는 자바의 경우에는 API의 사용이 많이 제한적이다. C#도 기본적으로는 포인터의 사용을 자제하고 있지만 필요한 경우 사용이 가능하다. 이러한 점에서 볼때 C#이 기존 API에 접근해 사용하기 유리한 언어라고 할 수 있다.


COM(component Object Model)이란 프로그램의 단위를 컴포넌트(부품)로 생각하고 개발하는 것을 의미하는데 , 하나의 언어에만 사용 가능한 것이 아니라, 여러 언어와 도구에서 범용적으로 사용이 가능하다. 예를 들어 , ASP로 개발할 때 데이터베이스를 구현하기위해 ADO 컴포넌트를 사용한다. 이런 것이 COM인데, ASP 에서뿐 아니라 비주얼 베이직이나 C++등 수많은 언어와 도구에서도 사용한다.


COM을 쉽게 사용할 수 있다란 의미는 기존 COM을 닷넷 프레임워크에서 사용할 수 있고, 닷넷 프레임워크에서 개발한 컴포넌트도 COM으로 쉽게 변환된다는 것을 말한다. 기존의 COM을 닷넷 프레임워크에서 어떻게 사용할 수 있는지 확인할 수 있다.


닷넷 프레임워크 프로그래밍 모델을 잘 반영한다. C#은 MSIL 형태로 컴파일되는 닷넷 프레임워크의 프로그래밍 모델을 가장 잘 반여하고

있으며 닷넷 프레임워크의 의도를 언어적 차원에서 가장 많이 지원한다. C#과 CLR은 비록 마이크로소프트에서 개발한 것이지만, 다양한 플랫폼에서 사용될 수 있도록 마이크로소프트를 비롯한 많은 회사에서 표준화 작업이 한창이다. 예를 들면 윈도우 서버가 아닌 유닉스/리눅스 환경에서도 C#과 CLR을 사용할 수 있는 기술들을 속속 발표하고 있다.


C#은 기존 언어들의 장점만을 이식해서 만든 언어므로 그 기능이 막강하고, 여러가지 장점이 있지만, 그 중에서도 다른 언어와 구별되는 장점으로는 가비지 컬렉터를 들 수 있다. C#에서 프로그래머가 생성했던 객체를 언제 제거해야 될까? 객체를 전혀 사용하지 않을 때가 정답이다. 메모리가 부족하거나 메모리를 청소해야 할 상황이 되면 가비지 컬렉터는 객체를 검사해서 더 이상 사용되지 않는 객체를 메모리에서 자동으로 제거해준다.


프로그래머가 객체의 소멸도 담당해야 이치에 맞겠지만 그 역할을 주로 담당하는 것이 바로 가비지 컬렉터다. 가비지 컬렉터가 제대로 활동하는지 알기는 쉽지않다. 객체를 사용하지 않는데도 전혀 호출되지 않을 수도 있고, 제거하는 순서도 가비지 컬렉터에 의해 임의적으로

결정된다. 그렇다면 이런 결점 투성이의 가비지 컬렉터를 왜 사용하는 걸까?


그 이유는 객체를 소멸해야 하는 적절한 시점을 프로그래머가 판단하기에는 너무나 복잡하고 미묘하기 때문이다. 가비지 컬렉터는 이 부분을 대신 판단해 객체를 안전하게 저거하여 준다. 물론, 시스템의 성능을 떨어뜨릴 가능성이 있지만 가비지 컬렉터를 사용함으로써 얻는

이점이 더 크기 때문에 가비지 컬렉터를 사용한 메모리의 관리를 선택한 것이다. 차세대 언어 대부분은 이러한 방식의 메모리를 관리한다


실제로 복잡한 애플리케이션에서 더 이상 객체가 사용되지 않는다는 것을 판단하는 것은 그리 간단한 일이 아니다. 판단하는 것도 어렵지만 , 그보다 더 위험한 것은 사용하지도 않는 객체의 메모리를 제거하지 않고 유지하고 있거나 , 잘못 예측하여 사용중인 객체를 제거하였다면 프로그램이 객체에 접근하는 순간 오동작을 일으킬수 있거나 갑자기 멈추는 경우가 생기기 때문이다. 따라서 C#에서는 가비지 컬렉터라는 메모리 관리자를 두어 메모리를 정리한다. 이 방법은 이전 프로그래밍 언어의 가장 큰 단점을 보완했다고 할 수 있다.


사실 C#으로 프로그램을 개발할 때, 굳이 비주얼 스튜디오 닷넷을 사용하지 않아도 괜찮다. 기본적으로 닷넷 프레임워크 SDK만 설치되어 있으면 메모장 등과 같은 문서 편집기로 C#언어 구문을 작성하고 컴파일해서 프로그램을 개발할 수 있다. 하지만 윈도우용 애플리케이션에서부터 웹 애플리케이션과 웹 서비스, 그리고 분산 환경의 애플리케이션 등 여러 복잡한 응용 애플리케이션을 개발할 때 일반 문서 편집기를 사용하는 것보다 비주얼 스튜디오 닷넷을 이용하면 좀더 편리하고 효율적으로 개발할 수 있다.


따라서 비주얼 스튜디오 닷넷 개발환경에 익숙해지는 것이 닷넷 프레임워크 애플리케이션을 개발하고자 하는 여러분에게는 중요하다고 생각한다. 이 절에서는 콘솔 응용 프로그램을 만드는 과정을 통해 비주얼 스튜디오 닷넷의 기본적인 사용방법과 개발환경을 간략히 알아본다. 비주얼 스튜디오 닷넷을 실행하면 시작 페이지가 보인다. 여기에서는 기존에 작업했던 프로젝트 목록을 보고 선택할 수 있다. 또한 온라인 리소스를 검색할 수 있으며, 비주얼 스튜디오 닷넷의 환경을 설정할 수도 있다.


본격적인 작업에 들어가기 위해 새 프로젝트를 만들어 보도록 하자. 시작 페이지의 프로젝트 탭에서 새 프로젝트 버튼을 클릭하면 대화상자가 보인다. 새 프로젝트 대화상자를 이용해서 프로젝트를 만들면 목적에 맞는 프로그램 템플릿의 기본적인 코드를 자동으로 생성해주기 때문에 초보자에게는 편리하다. 왼쪽의 프로젝트 형식에서 개발에 사용할 언어를 선택할 수 있으며, 선택한 언어와 관련해서 윈도우 응용프로그램 , ASP.NET 웹 응용 프로그램 , 콘솔 응용 프로그램과 같은 템플릿이 오른쪽의 템플릿 부분에 아이콘으로 나타난다. 대화상자 하단에는 응용 프로그램명과 생성되는 프로젝트 파일의 위치를 지정할 수 있는 입력 창이 있다.


우리는 C#으로 프로그램을 작성할 것이므로 새 프로젝트 대화상자에서 프로젝트 형식은 Visual C# 프로젝트, 템플릿은 콘솔응용 프로그램을 선택한다. 프로젝트의 이름과 위치에 적당한 이름을 정하고 확인 버튼을 클릭해서 콘솔 응용 프로그램의 프로젝트를 생성한다.

새 프로젝트를 생성하면 코드를 직접 작성하고 편집하는 코드 편집 창이 있고, 오른쪽에는 솔루션 탐색기, 클래스 뷰, 동적 도움말, 속성창이 있따. 솔루션 탐색기에서 프로젝트나 프로젝트에 포함된 C# 소스코드 ,참고하는 어셈블리 등의 항목을 관리한다. 클래스 뷰를 통해 작성 중인 프로그램의 클래스와 클래스의 멤버들을 관리할 수 있다.


프로젝트를 생성하면 기본적으로 클래스명은 클래스1, 소스파일명은 클래스1.CS로 만들어진다. 따라서 코드를 작성하기 전에 클래스명과 소스 파일명을 개발자가 알아보기 쉬운 이름으로 바꿔주는 것이 좋은데, 여기사는 솔루션 탐색기 창에서 클래스1.CS 를 Hello.cs 변경하고 코드 편집기 창에서 직접 입력하고 편집하도록 해보자. 15행인 Console.Writeline에서 보면 문장 끝에 세미콜론을 넣어 주었다. C#에서 모든 명령문은 세미콜론을 사용해서 명령문이 끝났음을 꼭 나타내줘야 하므로 주의하자.


비주얼 스튜디오 닷넷과 같은 개발 도구에서는 코드 작성 , 컴파일 및 실행 등과 같은 작업과 참조 ,데이터 연결 폴더 및 파일과 같이 개발 작업에 필요한 관련 항목들을 모두 관리할 수 있다. 이런 편리한 기능을 제공하는 환경을 통합 개발환경이라고 한다., 비주얼 스튜디오 닷넷도 개발자의 작업 능률을 높일 수 있는 통합 개발환경을 제공한다.


이처럼 통합 개발환경을 제공하는 비주얼 스튜디오 닷넷을 사용해서 프로그램을 개발하려면 솔루션 파일과 프로젝트 파일이라는 것을 관리해야 한다. 비주얼 스튜디오 닷넷에서는 새 프로젝트 대화상자를 통해 프로젝트를 생성하며 자동으로 솔루션 하나와 그 하위에 프로젝트 하나를 생성한다. 솔류션에는 여러 프로젝트가 포함될 수 있으며, 프로젝트에는 여러 C# 소스 파일이 포함될 수 있다. 또한 비주얼 스튜디오 닷넷의 솔루션 탐색기 창을 통해서 쉽게 관리할 수 있다.


솔루션을 사용하는 이유는 여러 프로젝트를 집합적으로 관리할 수 있고, 프로젝트별로 적용해야 할 구성 사항의 적용, 빌드, 배포에 있어 편리한 점을 제공하기 때문이다. 비주얼 스튜디오 닷넷에서는 확장자가 SIN 및 SUO 로 만들어진 파일을 통해서 솔루션을 관리하게 된다

프로젝트는 프로젝트 및 해당 항목 집합에 대해서 관리자가 지정하는 구성및 빌드 설정이 저장되며, 확장자가 csproj로 만들어진 파일을 통해 관리된다. 이 소스들은 솔루션과 프로젝트가 같이 만들어진 상태로 제공된다. 따라서 각 예제를 컴파일하려면 솔루션 파일을 비주얼 스튜디오 닷넷에서 솔루션 열기를 통해 불러들여서 실행해야 한다.

'정보 > IT' 카테고리의 다른 글

코드 블록과 제어문의 종류  (0) 2018.03.10
코드 블록과 제어문  (0) 2018.03.10
프로그램 구성 요소  (0) 2018.03.10
프로그래밍 언어  (0) 2018.03.08

+ Recent posts