본문 바로가기
Computer Science

C언어, C++, C# 어떤 차이가 있을까?

by sy.cho__ 2024. 4. 2.

C, C++, C# 언어. 이름이 모두 비슷해요.
모두 이름에 C가 들어있어서 C -> C++ -> C# 순으로 발전된건지..? 아니면 어떤 차이가 있는지? 궁금하신 분들이 많을거에요. 
오늘은 이 언어들에 대한 차이점에 대해 한번 알아보겠습니다!



C언어의 경우 47년전에 처음으로 만들어졌습니다. 이 언어는 Java, Javascript, Python, PHP, GO등 많은 언어에 영향을 줬습니다.

C언어가 처음 나온 47년전에는 컴퓨터가 지금처럼 빠르지 않았어요. 컴퓨팅 파워가 현저히 낮았죠. 이 덕분에 자원이 부족한, 컴퓨티 파워가 부족한 상황에서 C언어는 꽤 유용합니다. 그리고 하드웨어와 매우 밀접하게 작동합니다. 


예를 들어 C언어가 주로 사용되는 분야는 우주선, 화상탐사선과 같은 우주항공분야가 있습니다.
우주선을 쏘고 우주에서 다른 행성을 탐사한다면 한정된 배터리와 메모리로 최대한 많은 시간 구동하고 좋은 퍼포먼스를 내야합니다.
한정된 자원으로 가능한 적은 공간을 쓰면서 속도도 빠르기 때문에 C언어가 많은 활약을 하게 되었습니다.

출처 - 위키피디아


C++는 C와 비슷하지만 Class개념이 추가되었습니다. C++를 창시한 개발자에 의하면 C는 이제 필요없다는 언급을 하기도 했어요. C언어에는 Class가 없어 OOP와 같은 객체자향을 컨셉을 지원할 수 있지만 C++에서는 C언어에서 사용할 수 있는 모든 기능과 객체지향 컨셉도 사용가능하기 때문이죠. 

그래서 C언어와 동일하게 메모리를 효율적으로 사용하고 하드웨어(기계)와 밀접한 코딩을 하고 싶지만 객체지향 개념을 추가하고 싶은 개발자는 C++를 많이 사용한다고 합니다. 



C#은 앞서 설명드린 2개의 언어와 완전 다른 언어입니다. C와 C++은 닮은 부분이 무척 많지만 C#은 거의 없다고 보면 됩니다. 

오히려 C#는 Java와 꽤나 비슷해요. 

C#을 한줄로 설명하면 마이크로소프트, MS가 만든 Java입니다. 마이크로소프트가 이 언어를 만들기 위해 어마어마한 시간과 돈을 투자했다고 합니다. 그래서 C#은 현재 .NET 생태계를 위한 언어가 되었습니다. 
Java와 Oracle이 한 세트라면 C#과 닷넷(.NET)  역시 한 묶음으로 이해하면 쉽습니다. 

한국에서는 서버 개발 시 Java Spring을 많이 사용합니다. 네이버나 카카오, 유명 IT스타트업의 채용공고를 보면 Java Spring 개발자가 많은것을 쉽게 확인하실 수 있을거에요.

그러나 미국시장, 실리콘밸리에서는 Java 만큼 C#, .NET도 많이 사용하고 있습니다.  2024년 프로그래밍 언어 랭킹을 보면 java와 c#모두 나란히 top5에 들어간걸 보실 수 있습니다.


C#은 백엔드 서버개발 뿐만 아니라 프론트 엔드도 만들 수 있고 iOS 개발, Unity 3D을 이용한 비디오 게임 개발도 가능합니다.  활용할 수 았는 영역이 많기 때문에 C#에 대한 수요가 점점 많아지는 것 같아요.

C#이 여러 분야의 개발도구로 사용할 수 있다는 장점이 있지만 단점도 있습니다.
바로 속도에요. C#는 C++보다 빠르지 않습니다C#은 컴파일러의 도움을 많이 받기 때문입니다. 수동으로 개발자가 제어하지 못하고 컴파일러가 알아서 해주기 때문에 손이 덜 가고 개발이 빠르다는 장점이 있지만 반대로 속도가 상대적으로 느리다는 단점이 있습니다. 

C#은 Java와 비슷하기 때문에 만약 Java, Javascript, Typescript 개발 경험이 있다면 C#을 학습는데 1~2주면 충분하실거에요. 엄청 비슷하거든요. 

아직 한국 IT산업에서 C#이 큰 각광을 받고 있지 않지만 전세계적으로 이미 많이 사용하고 있고 활용범위는 점점 커질거라고 생각해요. 미리 공부하면서 프론트, 백엔드 각종 게임까지 취미로 조금씩 개발해본다면 C#의 매력을 바로 느끼실 수 있을거에요.

그리고 C, C++는 최근 백악관이 사용 경고를 하기도 했죠. 이 내용에 대해선 아래 글에 포스팅했으니 궁금하신 분들은 읽어봐주세요!

백악관이 C, C++ 언어 사용을 금지한 이유 - Rust, Ada 시대의 시작?

백악관이 C, C++ 언어 사용을 중단할 것을 발표했습니다. 이 언어가 보안상 안전하지 않기 때문에 현재까지 사이버 공격을 받아왔으며 Rust와 같은 다른 언어로 대체해야 된다는게 이들의 의견이

toberich.co.kr


오늘은 자칫 헷갈릴 수 있는 3개의 언어. C, C++, C#에 대해 알아보았습니다.
읽어주셔서 감사드립니다!

반응형