C, C++, C#
카테고리: C++
C, C++, C#
개발 프로젝트에서 자주 사용되는 3가지 언어 C, C++, C#의 공통점과 차이에 대한 포스트입니다.
언리얼과 C++ 프로젝트를 진행하며 C#으로 진행되는 프로젝트에 참가한다면 C#을 습득하기 위해 알아둬야 할 기본 지식과 기존에 하던 C++과의 차이점을 알고 싶어 찾아보게 되었습니다.
둘 모두 C에 기반한 프로그래밍 언어인 만큼 C부터 찾아보는 것이 좋다고 생각되었습니다.
C
유형: 절차 지향 프로그래밍 언어 (Procedural Programming Language)
개발 연도: 1972년
주요 용도: 시스템 프로그래밍, 임베디드 시스템, 빠른 연산이 필요한 프로그램
특징: 빠른 속도, 높은 효율, 저수준 메모리 관리
C는 1972년 데니스 리치와 켄 톰슨 유닉스에서 활용하기 위해 개발된 언어입니다.
기존에 바이트 접근기능을 사용하지 못한 B언어를 개량하였기 때문에 C언어라는 이름이 붙여졌으며, C언어는 몇번의 개량을 통해 대부분의 시스템에서 사용되는 언어가 되었습니다.
가장 대표적인 장점으로는 작은 메모리 사용과 빠른 속도로 인해 많은 시스템에서 자주 사용되며, 단점으로는 많은 요소를 프로그래머에게 맡기기 때문에 오류가 발생하기 쉽고 오래된 기능이 많아 난잡합니다.
C언어는 오랜 기간이 지났음에도 자주 사용되며, 이를 기반으로한 C++과 C#은 게임 프로그래밍, 그래픽 프로그래밍에 사용됩니다.
C++
유형: 객체 지향 프로그래밍 언어 (Object Oriented Programming Language)
개발 연도: 1985년
주요 용도: 게임 프로그래밍, 블록 체인, 운영 체
특징: 다형성, 상속, 추상화, 캡슐화
C++는 1985년 Bjarne Stroustrup가 C언어를 개량하여 만든 언어입니다. 기존에 존재하던 ++연산자를 활용하여 C언어에서 한발자국 나아간 언어라 하여 C++라 이름 지어졌습니다.
객체 지향 특징을 가진 C++는 C에서 작업할 때 보다 거대한 소프트웨어를 관리하고 개발하는 것이 용이해 졌으며, C의 절차 지향적 특성도 어느 정도 보존하여 기존 C언어를 사용하던 사람도 원활히 사용할 수 있도록 하였습니다.
C++를 사용하는 게임 엔진은 대표적으로 언리얼이 존재합니다.
C#
유형: 객체 지향 프로그래밍 언어 (Object-Oriented Programming Language)
개발 연도: 2000년
주요 용도: 게임 프로그래밍, 윈도우 애플리케이션, 웹 애플리케이
특징: 가비지 컬렉션, 안전성
C#은 2000년 마이크로소프트사가 .NET Framework를 기반으로 개발한 프레임워크 입니다. C#은 완전히 객체 지향 언어이며, 컴포넌트 지향 언어라고도 불립니다.
C++과 달리 내장된 여러 기능이 존재하기 때문에 C++ 보다 고수준 언어로 취급되며, 그로인해 컴파일 과정 시 바로 어셈블리어로 컴파일 되지 않고 한단계를 거쳐 컴파일 됩니다.