SlideShare une entreprise Scribd logo
1  sur  25
• 이 문제들은 신입 개발자 대상으로 한 문제들입니다.

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

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

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

서는 안됩니다. =ㅅ=
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
 ((스토리가 있는 패턴 학습법))

Contenu connexe

Tendances

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
devCAT Studio, NEXON
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
QooJuice
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
 

Tendances (20)

Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
 
Iocp advanced
Iocp advancedIocp advanced
Iocp advanced
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 

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

아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지
YoungSu Son
 
Direct x 12 초기화
Direct x 12 초기화Direct x 12 초기화
Direct x 12 초기화
QooJuice
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
devCAT Studio, NEXON
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
Sehyeon Nam
 
Effective c++ chapter 7,8
Effective c++ chapter 7,8Effective c++ chapter 7,8
Effective c++ chapter 7,8
문익 장
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
문익 장
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
MinGeun Park
 

Similaire à [0410 박민근] 기술 면접시 자주 나오는 문제들 (20)

effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
분석과 설계
분석과 설계분석과 설계
분석과 설계
 
아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지
 
Effective C++ Chaper 1
Effective C++ Chaper 1Effective C++ Chaper 1
Effective C++ Chaper 1
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
Direct x 12 초기화
Direct x 12 초기화Direct x 12 초기화
Direct x 12 초기화
 
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
 
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
 
A tour of C++ : the basics
A tour of C++ : the basicsA tour of C++ : the basics
A tour of C++ : the basics
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
Effective c++ chapter 7,8
Effective c++ chapter 7,8Effective c++ chapter 7,8
Effective c++ chapter 7,8
 
Boost
BoostBoost
Boost
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
 
C++ Advanced 강의 1주차
C++ Advanced 강의 1주차C++ Advanced 강의 1주차
C++ Advanced 강의 1주차
 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 

Plus de MinGeun Park

Plus de MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 

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

  • 1.
  • 2. • 이 문제들은 신입 개발자 대상으로 한 문제들입니다. • 어떤 특정 회사의 기출 문제가 아님을 밝혀둡니다. • 기술 필기 시험에 자주 나오는 문제들이 중심입니다. • 이런 문제가 나오지 않는다고 해도 발표자를 원망해 서는 안됩니다. =ㅅ=
  • 3.
  • 4. 1. virtual 함수에 대해서 설명하여라 2. 소멸자에 virtual을 쓰는 이유는 무엇인가? 3. 포함과 상속의 차이점에 대해서 설명하여라 4. 메모리 단편화(fragmentation)을 해결 할 수 있는 기 법에 대해서 아는 대로 설명하여라.
  • 5. 5. 멀티 코어를 활용할 수 있는 프로그래밍 기법들에 대 해서 아는 대로 나열하고 설명하여라 6. STL에서 erase와 remove의 차이점은? 7. List 클래스를 직접 구현하고, 멤버를 추가/삭제 하는 함수를 구현하여라.
  • 6.
  • 7. 1. 타겟이 플레이어의 정면으로부터 몇도(각도)의 위 치에 있는지 계산하여라. 2. 쿼터니언은 어떤 경우에 사용하는가? 그리고 사용 하는 이유는 무엇인가? 3. 컬링 기법들을 아는대로 나열하고 설명하여라 4. 그림자를 생성하는 기법들을 아는대로 나열하고 설 명하여라
  • 8.
  • 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가 감소하지는 않는다.
  • 15.
  • 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. • 원형 그림자 •Projected Shadow – 투영 그림자 • Shadow Map – 깊이 버퍼맵(쉐도우맵) 사용 • Volume Shadow – 쉐도우 볼륨을 생성하고, 스텐실 버퍼를 사용
  • 20.
  • 21.
  • 22. Effect C++ & More Effect C++
  • 23. Effective STL 게임 프로그래머를 위한 자료구조와 알고리즘
  • 25. Head First Object-Oriented Analysis & Design (세상을 설계하는 객체지향 방법론) Head First Design Patterns ((스토리가 있는 패턴 학습법))