[면접대비] C++과 C# 차이점

muchan
muchan
∙∙조회 6

1. C++과 C#의 차이.

C++은 네이티브 코드로 컴파일되는 언어로, 메모리와 시스템 자원을 세밀하게 제어할 수 있다. 게임 엔진, 그래픽스, 시스템 프로그래밍 등에 많이 사용된다.

C#은 .NET 런타임을 기반으로 실행되는 관리형 언어로, 가비지 컬렉션(GC)을 통해 메모리 관리를 지원한다. Unity 게임 개발, 데스크톱 애플리케이션, 웹 서버 등에 사용된다.

주요 차이점

구분C++C#
실행방식네이티브 코드 컴파일IL 컴파일 후 런타임에서 실행
메모리 관리수동 관리 및 RAIIGC 기반 자동관리
포인터일반적으로 사용 가능unsafe 환경 등에서 사용
다중 상속클래스 다중 상속 지원클래스 단일 상속, 인터페이스 다중 구현
제네릭템플릿제네릭
대표 게임 엔진Unreal EngineUnity Engine

3. 면접 예상 질문.

Q1. C++과 C#의 가장 큰 차이는 무엇인가요

C++은 메모리와 시스템 자원을 직접 제어할 수 있는 언어이고, C#은 .NET 런타임과 GC를 통해 메모리 관리를 지원하는 언어입니다.

Q2. C++과 C#의 메모리 관리 방식은 어떻게 다른가요

C++은 객체의 수명과 자원 해제를 개발자가 관리하며, RAII와 스마트 포인터 등을 활용합니다. C#은 GC가 관리 힙의 사용하지 않는 객체를 자동으로 회수합니다.

Q3. C++이 C#보다 무조건 빠른가요

그렇지는 않습니다. C++은 네이티브 컴파일과 세밀한 메모리 제어를 통해 성능 최적화에 유리할 수 있지만, 실제 성능은 코드 구현과 실행 환경에 따라 달라집니다.

Q4. C++과 C#의 클래스와 구조체는 어떻게 다른가요

C++에서는 class와 struct가 기본 접근 지정자 등에서 차이가 있으며, 둘 다 값 타입 객체를 정의할 수 있습니다.

C#에서는 class는 참조 타입이고 struct는 값 타입입니다.

Q5. 게임 개발에서 C++과 C#은 각각 어디에 사용되나요

C++은 Unreal Engine이나 게임 엔진의 핵심 시스템 개발에 많이 사용되며, C#은 Unity에서 게임 로직과 시스템을 구현하는 데 주로 사용됩니다.