[면접대비] 기본 소양 면접 대비
C#과 C++의 차이에 대해 설명해주세요
C++은 시스템에 가까운 저수준 언어로 메모리 제어나 성능 최적화에 유리한 언어입니다. 반면 C#은 생산성과 유지 보수성을 높인 고수준의 언어로 런타임 환경을 기반으로 안정적으로 동작합니다
그래서 C++은 엔진이나 코어 로직, 성능이 중요한 영역에 사용되고, C#은 툴 개발이나 게임 콘텐츠, UI같은 상위 로직 구현에 적합합니다.
.NET이란?
마이크로소프트에서 만든 통합 개발 툴입니다. 여러 언어로 작성된 프로그램을 한 곳에서 실행, 관리, 배포할 수 있게 해주는 프레임워크 또는 런타임 환경입니다
객체지향의 4대 특성
- 상속 : 클래스가 다른 클래스의 속성과 매서드를 상속할 수 있도록 하는 것
다형성 : 서로 다른 클래스의 객체를 공통 부모 클래스의 객체로 취급하는 것- 캡슐화 : 객체 구현 세부 사항을 외부 세계로부터 숨기는 것
- 추상화 : 불필요한 세부 사항을 숨겨 복잡성을 줄이는 것
객체지향 프로그래밍이란?
객체와 상호 작용하여 응용 프로그램과 컴퓨터 프로그램을 설계하는 프로그래밍 패러다임
절차지향은 함수 중심으로 데이터와 기능이 분리된 구조이고,
객체지향은 객체 중심으로 데이터와 기능을 하나로 묶어
재사용성과 유지보수성을 높인 프로그래밍 패러다임입니다.
오버로딩과 오버라이딩 차이
오버로딩 : 클래스가 이름은 갖지만 함수의 기능이 다른 메서드를 만들 수 있는 기능
오버라이딩 : 부모 클래스에서 상속된 메서드의 다른 구현을 제공하는 자식 클래스의 기능
콜바이벨류 vs 콜바이레퍼런스
call by value : 인자 값이 함수에 전달되고 함수 내에서 인자 값을 변경해도 함수 외부의 인자 값에는 영향을 미치지 않는 것
call by reference : 인자 값이 함수에 전달되고 함수 내에서 인자 값을 변경하면 외부 인자 값에도 영향 미치는 것

