SlideShare una empresa de Scribd logo
1 de 13
Track :: RunTime Type Information (런타임 타입 정보) 12장  |RTTI 각 개체들의 생성과 관리 13장  |   객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
Track :: RunTime Type Information (런타임 타입 정보) 12장  |RTTI 각 개체들의 생성과 관리 13장  |   객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
Track :: RunTime Type Information (런타임 타입 정보) 12장  |RTTI 표준RTTI 커스텀RTTI 사용시 고려점 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
RTTI(RunTime Type Information)? -런타임시에도 특정 개체에 대한 정보를 알아낼 수 있는 기능 -성능 문제로 예전에는 대부분 컴파일러가 디폴트옵션 꺼짐이었다고 함. - 클래스당 약 30~50바이트 정도의 용량을 잡아먹음. type_info class GameObject { }; GameObject object; const type_info& info= typeid( object ); _vfptr void* _m_data char _m_d_name[1] http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
Standard RTTI :: 예제 I am Child Number= 5 I am Parent Number= -858993460 Dynamic_cast 일 경우 NULL 반환 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
CustomRTTI http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
RTTI 사용시 고려점 +필요한 곳에만 적절히 사용하자. (적재적소에) +개체들이 상호작용하는 상황이 빈번하게 나타나는 경우 사용. - 프레임당 호출 회수가 많아 질 경우 문제. -동적 타입의 가상 함수 외에 RTTI를 쓸 필요는 없다. - RTTI를 사용하는 것보다 나은 디자인을 고려하는 방법도 있다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
사용할 수 밖에 없는 경우 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
Track :: RunTime Type Information (런타임 타입 정보) 12장  |RTTI 각 개체들의 생성과 관리 13장  |   객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
Track :: RunTime Type Information (런타임 타입 정보) 12장  |RTTI 각 개체들의 생성과 관리 13장  |   객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
개체의 효율적인 관리 코드 비용==하드코딩 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
생성 과정에서의 관리(패턴) 구현 kFactory.Register(“Zealot”); Zealot Gate GateWay StarGate Templar Scout Carrier IFactory Register GameUnit IAction kFactory.Register(new Zealot); kFactory.Register(“Ground”,new Zealot); Zelaot() {kFactory.Register(“Zealot”, this); } -팩토리 : 직접 new를 호출X, 생성 대리. -인터페이스와 구현 클래스의 구분. -필요한 헤더와 개체 타입을 팩토리만알아도 구현에 문제 없음. -각 소스에 대한 의존성이 줄어듦. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
게임 프로그래머를 위한 C++를 읽고나서… - 짧은 시간이지만 주마다 발표가 있어 더욱 알찬 공부가 되었던 것 같습니다. - 게임 프로그래밍을 주제로한 C++책을 처음보게 되었는데 실무적인 내용도 게임쪽에 맞추어 중요 핵심만 간추려 볼 수 있어서 좋았습니다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr

Más contenido relacionado

Destacado

로그라이크 (Rogue like)
로그라이크 (Rogue like)로그라이크 (Rogue like)
로그라이크 (Rogue like)Mark Choi
 
구름펙토리사업소개
구름펙토리사업소개구름펙토리사업소개
구름펙토리사업소개석준 이
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법noerror
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기noerror
 
Dungeons & dragons
Dungeons & dragonsDungeons & dragons
Dungeons & dragonsckl11
 
Game math.points and lines
Game math.points and linesGame math.points and lines
Game math.points and linesHoseo University
 
목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동Hoseo University
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect techniqueMinGeun Park
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문noerror
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrainsnoerror
 
Kgc2011 1
Kgc2011 1Kgc2011 1
Kgc2011 1lesely
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
Water technology-of-uncharted-gdc-2012
Water technology-of-uncharted-gdc-2012Water technology-of-uncharted-gdc-2012
Water technology-of-uncharted-gdc-2012MinGeun Park
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집noerror
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 

Destacado (20)

로그라이크 (Rogue like)
로그라이크 (Rogue like)로그라이크 (Rogue like)
로그라이크 (Rogue like)
 
FoundationKit
FoundationKitFoundationKit
FoundationKit
 
구름펙토리사업소개
구름펙토리사업소개구름펙토리사업소개
구름펙토리사업소개
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
Dungeons & dragons
Dungeons & dragonsDungeons & dragons
Dungeons & dragons
 
Game math.points and lines
Game math.points and linesGame math.points and lines
Game math.points and lines
 
Raven
RavenRaven
Raven
 
목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
 
07_PhysX 강체물리 입문
07_PhysX 강체물리 입문07_PhysX 강체물리 입문
07_PhysX 강체물리 입문
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
Kgc2011 1
Kgc2011 1Kgc2011 1
Kgc2011 1
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
Water technology-of-uncharted-gdc-2012
Water technology-of-uncharted-gdc-2012Water technology-of-uncharted-gdc-2012
Water technology-of-uncharted-gdc-2012
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
프로젝트 구성
프로젝트 구성프로젝트 구성
프로젝트 구성
 

Similar a RTTI

[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
9장10장,stl abstract interface
9장10장,stl abstract interface9장10장,stl abstract interface
9장10장,stl abstract interfaceMark Choi
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링Ted Won
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집Daegwon Kim
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링HWANGTAEYONG
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)Amazon Web Services Korea
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon Web Services Korea
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016perillamint
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법NAVER D2
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
쇼핑검색 React 전환 경험 공유
쇼핑검색 React 전환 경험 공유쇼핑검색 React 전환 경험 공유
쇼핑검색 React 전환 경험 공유NAVER SHOPPING
 
PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2Juwon Kim
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain전 민규
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project JourneyJinwoong Kim
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Daum DNA
 

Similar a RTTI (20)

[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
9장10장,stl abstract interface
9장10장,stl abstract interface9장10장,stl abstract interface
9장10장,stl abstract interface
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
Showroom 2019-react
Showroom 2019-reactShowroom 2019-react
Showroom 2019-react
 
쇼핑검색 React 전환 경험 공유
쇼핑검색 React 전환 경험 공유쇼핑검색 React 전환 경험 공유
쇼핑검색 React 전환 경험 공유
 
PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project Journey
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012
 

Más de Mark Choi

GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링Mark Choi
 
GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수Mark Choi
 
GameMath-Chapter 03 변환
GameMath-Chapter 03 변환GameMath-Chapter 03 변환
GameMath-Chapter 03 변환Mark Choi
 
Chapter 02 행렬
Chapter 02 행렬Chapter 02 행렬
Chapter 02 행렬Mark Choi
 
GameMath-Chapter 11 운동학
GameMath-Chapter 11 운동학GameMath-Chapter 11 운동학
GameMath-Chapter 11 운동학Mark Choi
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터Mark Choi
 

Más de Mark Choi (6)

GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링
 
GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수GameMath-Chapter 04 사원수
GameMath-Chapter 04 사원수
 
GameMath-Chapter 03 변환
GameMath-Chapter 03 변환GameMath-Chapter 03 변환
GameMath-Chapter 03 변환
 
Chapter 02 행렬
Chapter 02 행렬Chapter 02 행렬
Chapter 02 행렬
 
GameMath-Chapter 11 운동학
GameMath-Chapter 11 운동학GameMath-Chapter 11 운동학
GameMath-Chapter 11 운동학
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터
 

RTTI

  • 1. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 2. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 3. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 표준RTTI 커스텀RTTI 사용시 고려점 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 4. RTTI(RunTime Type Information)? -런타임시에도 특정 개체에 대한 정보를 알아낼 수 있는 기능 -성능 문제로 예전에는 대부분 컴파일러가 디폴트옵션 꺼짐이었다고 함. - 클래스당 약 30~50바이트 정도의 용량을 잡아먹음. type_info class GameObject { }; GameObject object; const type_info& info= typeid( object ); _vfptr void* _m_data char _m_d_name[1] http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 5. Standard RTTI :: 예제 I am Child Number= 5 I am Parent Number= -858993460 Dynamic_cast 일 경우 NULL 반환 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 6. CustomRTTI http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 7. RTTI 사용시 고려점 +필요한 곳에만 적절히 사용하자. (적재적소에) +개체들이 상호작용하는 상황이 빈번하게 나타나는 경우 사용. - 프레임당 호출 회수가 많아 질 경우 문제. -동적 타입의 가상 함수 외에 RTTI를 쓸 필요는 없다. - RTTI를 사용하는 것보다 나은 디자인을 고려하는 방법도 있다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 8. 사용할 수 밖에 없는 경우 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 9. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 10. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 11. 개체의 효율적인 관리 코드 비용==하드코딩 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 12. 생성 과정에서의 관리(패턴) 구현 kFactory.Register(“Zealot”); Zealot Gate GateWay StarGate Templar Scout Carrier IFactory Register GameUnit IAction kFactory.Register(new Zealot); kFactory.Register(“Ground”,new Zealot); Zelaot() {kFactory.Register(“Zealot”, this); } -팩토리 : 직접 new를 호출X, 생성 대리. -인터페이스와 구현 클래스의 구분. -필요한 헤더와 개체 타입을 팩토리만알아도 구현에 문제 없음. -각 소스에 대한 의존성이 줄어듦. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
  • 13. 게임 프로그래머를 위한 C++를 읽고나서… - 짧은 시간이지만 주마다 발표가 있어 더욱 알찬 공부가 되었던 것 같습니다. - 게임 프로그래밍을 주제로한 C++책을 처음보게 되었는데 실무적인 내용도 게임쪽에 맞추어 중요 핵심만 간추려 볼 수 있어서 좋았습니다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr