프로그래머 면접질문모음

2020. 3. 24. 18:49면접질문모음

1. class 와 구조체의차이점

1-1. 구조체는 값타입이라는것과 클래스는 참조타입이라는 점에서 차이점이 있다.


1-2. 구조체를 사용하는이유는 클래스 사용시에 참조로인한 시간적 비용적 낭비를 없애기 위해 사용한다. 구조체는
      값타입이기에 직접적으로 메모리에 접근하므로 낭비를 막을수 있다.


1-3. 구조체클래스의 다른점은 구조체는 상속자체가 불가능하다.

1-4. 접근지정자의 차이 public, private

 

2. Boxing Unboxing의 뜻

2-1. Boxing 

int i = 123;
// The following line boxes i.
object o = i;  Boxing 

특정 타입을 오브젝트 타입으로 변경

2-2. UnBoxing

o = 123;
i = (int)o;  // unboxing

오브젝트 타입을 원하는 타입으로 변경

 

장점 : 성능이 안좋다.

단점 : 개발의 편리성이 올라간다.

 

3. gc란?

메모리 관리 기법중 하나, 프로그램이 (동적)할당했던 메모리에서 필요없게 된 영역을 해제하는 과정이다.

 

가비지콜렉터는 메모리를 해제 할때 작업을 수행하는 데 시간이 소요된다. 메모리의 양과 프로그램을 실행 중인 플랫폼에 따라 다르고, 중요한 것은 메모리가 해제되는 시점을 개발자가 알 수 없다는 것이다.  게임과 같은 실시간으로 실행되는 프로그램에서는 큰 문제가 될 수 있다.

 

유니티에서 발생하면 프레임이 떨어지거나 렉이 걸리는것 처럼 보일 수 있다.

프로파일러로 돌려보면서 병목지점을 찾은다음 해소하는 것이 중요하다.