• 이 문제들은 신입 개발자 대상으로 한 문제들입니다.

• 어떤 특정 회사의 기출 문제가 아님을 밝혀둡니다.

• 기술 필기 시험에 자주 나오는 문제들이 중심입니다.

• 이런 문제가 나오지 않는다고 해도 발표자를 원망해

서는 안됩니다. =ㅅ=
1. virtual 함수에 대해서 설명하여라

2. 소멸자에 virtual을 쓰는 이유는 무엇인가?

3. 포함과 상속의 차이점에 대해서 설명하여라

4. 메모리 단편화(fragmentation)을 해결 할 수 있는 기

법에 대해서 아는 대로 설명하여라.
5. 멀티 코어를 활용할 수 있는 프로그래밍 기법들에 대

해서 아는 대로 나열하고 설명하여라

6. STL에서 erase와 remove의 차이점은?

7. List 클래스를 직접 구현하고, 멤버를 추가/삭제 하는

함수를 구현하여라.
1. 타겟이 플레이어의 정면으로부터 몇도(각도)의 위
   치에 있는지 계산하여라.

2. 쿼터니언은 어떤 경우에 사용하는가? 그리고 사용
하는 이유는 무엇인가?

3. 컬링 기법들을 아는대로 나열하고 설명하여라

4. 그림자를 생성하는 기법들을 아는대로 나열하고 설
명하여라
• 클래스에 virtual 함수를 선언하면 vtable이 생성된다.
• 클래스의 virtual 함수들은 이 vtable에 매핑이 된다.
• 자식 클래스가 부모 클래스의 virtual 함수를 오버라이딩 하면
자식 클래스의 vtable에 오버라이딩 함수가 매핑된다.
• 다형성을 사용하여 자식 클래스가 부모 클래스로 형변환이
되었을 경우, virtual로 선언된 함수들은 vtable에서 가져오기
때문에 자식 클래스가 오버라이딩한 함수를 제대로 호출할 수
있게 된다.
• 다형성을 사용하여 자식 클래스가 부모 클래스로 형
변환을 하고 삭제를 한 경우, virtual로 소멸자를 선언
하지 않았다면 vtable을 참조하지 않고 부모의 소멸자
만을 호출하게 된다.
• 이런 경우, 만약 자식 클래스에서 메모리를 추가 할
당한 경우 메모리 누수가 발생한다.
• 파생 클래스가 부모 클래스와 is-a 관계가 성립할때
는 상속
• 클래스 2개가 has-a 관계가 성립할때는 포함
• is-a 관계가 성립하지 않음에도 단지 편의때문에 상
속을 남발해서는 절대 안된다.
• 메모리 풀링
• FreeList
• 프레임 기반 메모리 할당 기법
• Windows Low-Fragmentation Heap API
• 멀티 스레드
• 멀티 프로세스
• OpenMP
• C++ 0x PPL(Parallel Patterns Library)
• Intel TBB (Threading Building Blocks)
• erase - iterator에 해당하는 하나의 요소만을 삭제한
다. Capacity가 실제로 감소한다.


• remove – 해당 범위중에 해당 값과 일치하는 모든 요
소를 삭제한다. Capacity가 감소하지는 않는다.
• 플레이어 정면 벡터를 A
• 플레이어에서 타겟 위치까지의 벡터를 B
• 각도 = acos(dot(A,B))
• 방향까지 정확히 구하기 위해선 외적을 사용해야 한
다.
• 회전각에 대한 보간(= 구면 보간)이 필요한 경우 행
렬보다 계산이 빠르고 간단하다.


• 회전 행렬에 의해서 두축의 회전값이 겹칠때 발생하
는 문제(짐벌락)을 해결할 수 있다.
• Backface Culling – 폴리곤의 후면 제거
• Frustum Culling – 시야 절두체 외 제거
• Occlusion Culling – 가려진 폴리곤 제거
                 PVS (Potential Visibility Sets
• BSP, PVS (Potential Visibility Sets) – 구역별로 보일 수
있는 구역 지정 컬링
• 기타 공간 처리 기법들
• 원형 그림자
•Projected Shadow – 투영 그림자
• Shadow Map – 깊이 버퍼맵(쉐도우맵) 사용
• Volume Shadow – 쉐도우 볼륨을 생성하고, 스텐실
버퍼를 사용
Effect C++ & More Effect C++
Effective STL




게임 프로그래머를 위한
자료구조와 알고리즘
RealTime Rendering




DirectX 9
셰이더 프로그래밍
Head First Object-Oriented Analysis &
               Design
               (세상을 설계하는 객체지향 방법론)




Head First Design Patterns
 ((스토리가 있는 패턴 학습법))

[0410 박민근] 기술 면접시 자주 나오는 문제들

  • 2.
    • 이 문제들은신입 개발자 대상으로 한 문제들입니다. • 어떤 특정 회사의 기출 문제가 아님을 밝혀둡니다. • 기술 필기 시험에 자주 나오는 문제들이 중심입니다. • 이런 문제가 나오지 않는다고 해도 발표자를 원망해 서는 안됩니다. =ㅅ=
  • 4.
    1. virtual 함수에대해서 설명하여라 2. 소멸자에 virtual을 쓰는 이유는 무엇인가? 3. 포함과 상속의 차이점에 대해서 설명하여라 4. 메모리 단편화(fragmentation)을 해결 할 수 있는 기 법에 대해서 아는 대로 설명하여라.
  • 5.
    5. 멀티 코어를활용할 수 있는 프로그래밍 기법들에 대 해서 아는 대로 나열하고 설명하여라 6. STL에서 erase와 remove의 차이점은? 7. List 클래스를 직접 구현하고, 멤버를 추가/삭제 하는 함수를 구현하여라.
  • 7.
    1. 타겟이 플레이어의정면으로부터 몇도(각도)의 위 치에 있는지 계산하여라. 2. 쿼터니언은 어떤 경우에 사용하는가? 그리고 사용 하는 이유는 무엇인가? 3. 컬링 기법들을 아는대로 나열하고 설명하여라 4. 그림자를 생성하는 기법들을 아는대로 나열하고 설 명하여라
  • 9.
    • 클래스에 virtual함수를 선언하면 vtable이 생성된다. • 클래스의 virtual 함수들은 이 vtable에 매핑이 된다. • 자식 클래스가 부모 클래스의 virtual 함수를 오버라이딩 하면 자식 클래스의 vtable에 오버라이딩 함수가 매핑된다. • 다형성을 사용하여 자식 클래스가 부모 클래스로 형변환이 되었을 경우, virtual로 선언된 함수들은 vtable에서 가져오기 때문에 자식 클래스가 오버라이딩한 함수를 제대로 호출할 수 있게 된다.
  • 10.
    • 다형성을 사용하여자식 클래스가 부모 클래스로 형 변환을 하고 삭제를 한 경우, virtual로 소멸자를 선언 하지 않았다면 vtable을 참조하지 않고 부모의 소멸자 만을 호출하게 된다. • 이런 경우, 만약 자식 클래스에서 메모리를 추가 할 당한 경우 메모리 누수가 발생한다.
  • 11.
    • 파생 클래스가부모 클래스와 is-a 관계가 성립할때 는 상속 • 클래스 2개가 has-a 관계가 성립할때는 포함 • is-a 관계가 성립하지 않음에도 단지 편의때문에 상 속을 남발해서는 절대 안된다.
  • 12.
    • 메모리 풀링 •FreeList • 프레임 기반 메모리 할당 기법 • Windows Low-Fragmentation Heap API
  • 13.
    • 멀티 스레드 •멀티 프로세스 • OpenMP • C++ 0x PPL(Parallel Patterns Library) • Intel TBB (Threading Building Blocks)
  • 14.
    • erase -iterator에 해당하는 하나의 요소만을 삭제한 다. Capacity가 실제로 감소한다. • remove – 해당 범위중에 해당 값과 일치하는 모든 요 소를 삭제한다. Capacity가 감소하지는 않는다.
  • 16.
    • 플레이어 정면벡터를 A • 플레이어에서 타겟 위치까지의 벡터를 B • 각도 = acos(dot(A,B)) • 방향까지 정확히 구하기 위해선 외적을 사용해야 한 다.
  • 17.
    • 회전각에 대한보간(= 구면 보간)이 필요한 경우 행 렬보다 계산이 빠르고 간단하다. • 회전 행렬에 의해서 두축의 회전값이 겹칠때 발생하 는 문제(짐벌락)을 해결할 수 있다.
  • 18.
    • Backface Culling– 폴리곤의 후면 제거 • Frustum Culling – 시야 절두체 외 제거 • Occlusion Culling – 가려진 폴리곤 제거 PVS (Potential Visibility Sets • BSP, PVS (Potential Visibility Sets) – 구역별로 보일 수 있는 구역 지정 컬링 • 기타 공간 처리 기법들
  • 19.
    • 원형 그림자 •ProjectedShadow – 투영 그림자 • Shadow Map – 깊이 버퍼맵(쉐도우맵) 사용 • Volume Shadow – 쉐도우 볼륨을 생성하고, 스텐실 버퍼를 사용
  • 22.
    Effect C++ &More Effect C++
  • 23.
    Effective STL 게임 프로그래머를위한 자료구조와 알고리즘
  • 24.
  • 25.
    Head First Object-OrientedAnalysis & Design (세상을 설계하는 객체지향 방법론) Head First Design Patterns ((스토리가 있는 패턴 학습법))