베이스 아카이브

C, C++, C# 의 차이점이 뭘까? 본문

IT/언어

C, C++, C# 의 차이점이 뭘까?

반키 2022. 1. 7. 21:40

안녕하세요!

오늘은 프로그래밍 언어 중 가장 기본이 되는

C언어부터 C++, C#의 차이점까지 알아보겠습니다.

 

C, C++, C#

이들은 모두 "C"를 이름에 달고 있습니다.

그래서 이 셋의 차이점에 대해 감이 잘 오지 않을 수도 있습니다.

 

먼저 C언어의 경우,

약 50년 전인 1972년에 만들어진 언어로

프로그래밍 언어 중에서는 아주 오래된 언어 중 하나입니다.

 

C는

자바, 자바스크립트, 파이썬, PHP, GO와 같은 많은 언어들에게 영향을 주었습니다.

그래서인지 C는 지금까지 꾸준하게 기본이 되는 프로그래밍 언어로 평가받고 있습니다.

 

C가 만들어진 50년 전에는 컴퓨터가 지금처럼 빠르지 않았습니다.

덕분에 C는 리소스가 많이 없는 기계에서 작동할 때 유용하고

하드웨어와 매우 밀접하게 작동합니다.

 

C로 만들어진 대표적인 예로는

큐리오시티(화성탐사선)가 있습니다.

이 화성 탐사선은

화성에 착륙해서 지면의 사진들을 찍고 그 사진을 다시 NASA로 보내는 역할을 했습니다.

 

화성 탐사선은 250만 줄의 C언어로 작성이 되었습니다.

아주 날것의 C코드라고 할 수 있죠!

화성 탐사선은 메모리가 충분하지 않고 프로세싱 파워도 약하기 때문에

가능한 작은 공간을 쓰면서 빠른 언어가 필요했습니다.

그에 적합한 언어가 바로 C언어였습니다.

그래서 화성탐사선 개발에는 C언어가 사용되었습니다.


C가 이런 언어라면 C++은 무엇일까요?

C++는 쉽게 말해 C와 비슷하지만 class를 가지고 있는 언어입니다.

C++을 만든 비아르네 스트로우스트루프(Bjarne Stroustrup)에 따르면

'C는 이제 쓸모가 없고 C++ 가 C의 superset이 되길 바란다'는 의도로 만들었다고 합니다.

또한 'C++ 이 C의 대체재가 되길 원하고 이 둘을 합쳐서 한 개의 언어가 돼야 한다.'라고 말했습니다.

이렇게 말한 이유는 C와 C++는 class라는 차이점 외에는 너무 비슷하기 때문인데요,

 

여기서 superset이라 함은

한 언어의 확장판 같은 것이라고 이해하시면 됩니다.

 

superset의 대표적인 예는 자바스크립트와 타입스크립트가 있습니다.

자바스크립트는 type이 없지만

타입스크립트는 type을 추가하기 때문에 자바스크립트의 확장판이라고 부릅니다.

타입스크립트는 자바스크립트와 동일하지만 확장해서 type을 추가한 것이라고 이해하시면 됩니다.

 

C, C++도 이와 마찬가지로 동일한 개념입니다.

C에는 class가 없지만 C++ 에는 class가 있고

C는 OOP(객체지향)와 같은 컨셉을 지원하지 않습니다.


이제 C#에 대해 설명해보겠습니다.

 

C#은 C++ 보다 Java와 훨씬 비슷합니다.

 

C#은 한 줄로 설명하자면 마이크로소프트가 만든 Java라고 할 수 있습니다.

C#은 기업용으로 만들어진 프로그래밍 언어입니다.

 

마이크로소프트는 C#을 만들기 위해 엄청난 시간과 돈을 투자했습니다.

C#은 닷넷 생태계를 위한 언어입니다.

Java, Oracle이 하나 시스템이면 C#, 닷넷은 또 다른 하나의 생태계인 셈입니다.

 

 

현재 한국에서는 자바를 사용하는 수가 상당히 높습니다.

반면 미국이나 유럽에서는 C#, 닷넷을 사용하는 비율이 높습니다.

 

C#은 개발자들 사이에서 꽤나 강력한 언어로 쓰입니다.

백엔드, 프론트엔드, iOS 앱에서도 사용할 수 있고

현재는 unity3D로 인해 C#을 더욱 많이 사용하고 있습니다.

( unity3D(이하 유니티)는 3d 및 2d 비디오 게임의 개발 환경을 제공하는 게임 엔진입니다. )

 

C#을 배우면 엑스박스, 플레이스테이션, iOS, Android 웹 용 게임을 다양하게 제작할 수 있습니다.

 

여기서 알아두면 좋은 것은 C#은 C++ 보다 빠르지는 않다는 점입니다.

왜 C#이 C++ 보다 빠르지 않냐면

C#은 수동으로 이루어지지 않고 컴파일러 등의 도움을 많이 받지만

반대로 C는 수동으로 이루어지기 때문에 좀 더 기계에 가까운 언어(low level)로 더 빠릅니다.

 

때문에 개발자들 사이에서는

C++ 에선 기계가 빨리 작동하고

C#에선 사람이 빨리 작동한다는 말도 있습니다..ㅎ

 

위의 말처럼 C#은 개발 속도가 좀 더 빠르기 때문에 많은 개발자들이 만족하는 언어라고 생각됩니다.

C++처럼 수동으로 작업할 것이 많지 않고 C#은 자바와 비슷하기 때문에

기존에 자바나 자바스크립트, 타입스크립트를 다룰 줄 아시는 분이라면

C#을 훨씬 빠르게 배울 수 있다고 생각합니다.

또한 커리어를 선택하는 부분에서 C#을 배우는 것도 괜찮은 선택이라고 생각됩니다.

 

 

정리해보면

C, C++은 작은 시스템으로 속도가 빠른 언어이고

C#은 회사용 시스템이면서 자바랑 비슷하게 생긴 언어입니다.

또한 C#은 개발자의 개발 속도가 빠르고

C, C++는 컴퓨터 속도가 빠르다는 차이점이 있습니다.

 

많은 회사들은 C#, Java를 사용하다가

컴퓨터 속도가 필요하면 C, C++로 갈아타기는 경우도 있습니다.

 

 

마지막 밈으로 오늘 포스팅은 여기서 마무리하겠습니다-!

 

어느 정도 C, C++, C#에 대한 가벼운 이해를 하는데

도움이 되셨으면 좋겠습니다!

 

 

앞으로는 IT 정보뿐만 아니라 

프로그래밍 언어 및 프로그래밍 툴 등

개발에 필요한 여러 요소들에 대해서도 포스팅할 예정이니

많은 관심 부탁드리겠습니다!

 

그럼 오늘도 감사합니다.


https://base-archive.tistory.com/entry/NFTP2E로-돈벌기한국은금지

 

NFT(P2E)로 돈 벌기, 한국은 금지?

Reality is broken 현실과 게임의 경계가 무너지고 있다. 앞으로는 현실이 게임이 될 것이다. 이게 무슨 얘기인가 싶겠지만 실제로 지난 21년 여름부터 계속해서 이러한 현상이 일어나고 있습니다. 바

base-archive.tistory.com

'IT > 언어' 카테고리의 다른 글

프로그래밍 언어의 이름은 어떻게 지어질까?  (9) 2022.01.15
Comments