[C#] C#의 특징 및 C++와의 차이

2023. 3. 18. 15:54공부/C#

 

C#의 특징

 

 

C#은 C++을 계승한 객체지향 언어이다. (++ 밑에 ++를 붙이면  #이 된다는 사실. C++을 계승한 언어에게 딱 맞는 이름이다.)

마이크로소프트의 앤더스 헤일스버그가 만들었으며 범용성이 좋은 .NET(닷넷)에 최적화된 언어라고 볼 수 있다. 

 

 

그럼 C#의 특징을 몇 가지 살펴보도록 하자.

 

 


목차

1. .NET이란?
2. C#의 특징
3. C++와의 차이점

 

 

1. .NET이란?

 

.NET(닷넷)은 데스크톱과 웹, 모바일 어플리케이션, 게임, 사물인터넷등 다양한 프로그램을 빌드할 수 있는 오픈 소스 플랫폼이다. 때문에 하나의 프로그램을 다양한 플랫폼에서 실행할 수 있어 범용성이 좋은 프레임워크라고 한다. 닷넷은 마이크로소프트에서 제작되었기 때문에 윈도우 운영체제에서 가장 강력한 성능을 보인다.

 

C#은 이러한 .NET을 위한 언어로 제작되었다. 물론 C#외에도 C++와 같은 다른 언어들 또한 .NET 라이브러리를 사용할 수 있다. 하지만 C#은 닷넷의 모든 영역에서(닷넷 프레임워크, 닷넷 코어, 쟈마린 등) 사용할 수 있는 프로그래밍 언어라는 강력한 특징이 있다. (다른 언어를 사용하고자 한다면 방법이 있기야 하겠지만 C#을 사용하는 쪽이 훨씬 간편하다.)

이것이 우리가 닷넷에서 C#을 자주 사용하는 이유이다.

 

 

.NET Framework .Net Core Xamarin

- 윈도우 환경에서 동작

- 웹 또는 어플리케이션을 개발할때 주로 이용

- 윈도우 뿐 아니라 리눅스, macOS등에서도 동작 가능. - iOS, Android등 모바일 환경에서 앱을 개발하기 위해 주로 사용됨.

 

 

 

2. C#의 특징

 

 

- 객체지향언어

- .NET Languae 언어들과의 연동성.

- 윈도우 운영체제에서 프로그램을 프로그램을 개발하기 용이함.

- 가비지 컬렉터 기능으로 메모리 관리가 수월함.

- 엄격한 문법체계로 에러가 적음.

- 다양한 통합개발환경(IDE)과 라이브러리를 제공해 보다 편리한 프로그래밍이 가능함.

 

 

 

 

3. C++와의 차이

 

 

- 같은 객체지향 언어지만 C++은 객체(Object), C#은 컴포넌트(Component)를 지향한다. 때문에 C#은 객체지향 언어임과 동시에 컴포넌트 지향 언어라고도 한다. 컴포넌트는 프로그래밍에서 재사용이 가능한 최소 단위를 의미하는데, 쉽게 설명하면 컴포넌트 지향 언어는 레고를 조립하고, 분해하고, 다시 조립하는 것 처럼 화면을 구성할 수 있다. (여기서 레고조각은 이미 만들어진 컴포넌트들을 뜻한다. 한 레고조각을 다른 레고조각으로 바꾼다 하더라도 조립이 가능한 것 처럼 컴포넌트들은 재사용과 이동이 자유로운 독립된 모듈이다.) 객체는 사물을 구성하는 눈에 보이지 않는 작은 단위라고 한다면 컴포넌트는 우리 눈에 보이는 조금 더 명확한 결과물이라고 생각하면 된다. 

 

 

- C++에서는 new연산자로 할당한 동적 메모리를 delete를 통해 직접 해제해야 하지만 C#은 가비지 컬렉터를 이용해 자동으로 메모리를 해제해준다.앞서 C#의 특징으로 설명한 '메모리 관리가 수월하다'는 부분과 이어진다.

 

 

- C++은 모든 플랫폼에서 사용이 가능하지만 C#은 주로 윈도우 운영체에서만 사용된다.