SlideShare a Scribd company logo
Multiple InheritanceCGCIICho sanghyun’s Game Classes II
1. Multiple-Inheritance
2. Virtual Inheritance
3. Mix-In
4. CGCII Socket Layers
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (1)
 다중 상속은 악인가 ?
 다중 상속이란 여러 개의 클래스로 부터 상속받는 것 !
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (2)
The C++ Programming Language
이 책은 아는 사람이 봐야 알고 모르는 사람은 봐도 모르는 책
즉 , 아는 사람은 볼 필요 없고 모르는 사람은 봐도 모르는 책
아래는 다중 상속에 대한 내용 ~ 무슨 의미인지 이해 가는가
?
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (3)
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (4)
 다중 상속은 악인가 ?
 현대의 많은 언어가 사실상 다중 상속을 지원
 현실적으로 왠만한 프로그래밍에서는 다중 상속이 빠짐 없이 보임 .
 다중상속에 대한 무조건적인 무용론은 다중 상속에 대한 오해
에서 비롯된 것으로 보임 .
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (5)
추상화
(Abstraction)
다 따로 !!
 C++ 효율성의 핵심은
StartStop(…)
Steering(…)
Accel(…)
Brake(…)
SetGear(…)
구체화
(Implementation)
인터페이스 클래스 정의
{
p->StartStop(true);
for(int i=0; i<; ++i)
{
p->Steering(i);
P->Accel (i)
}
p->brake();
p->StartStop(false);
}
void Drive(CarD* p)
공용 !
추상화 (Abstraction)
(v)
(v)
(v)
(v)
(v)
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (6)
 한 객체는 여러 개의 Interface 를 가질 수 있다 .
 여러 개의 Inteface 를 가진 다중 상속은 얼마든지 있을 수 있다 .
 하지만 다중 상속의 진짜 힘은 여기서 부터닷 !!!
 사실상 다중 상속이 없으면 효율적인 C++ 프로그래밍이 힘들다 .
 Java 조차도 단일 상속만을 추구했지만 이런 다중상속의 효용성 문제로 Interface 상속이
란 변태적 개념으로 다중 상속을 넣었다 .
( 결국 이런 변태 상속이 또 다른 변태를 낳게 된다 .)
CGCIICho sanghyun’s Game Classes II
실행처리 가상상속 (1)
 그러나 다중상속의 문제점 !!!
 가상 상속은 죽음의 다이아몬드를 만들어 준다 .
IAnimal 이 중복됨 .
(v)
(v) 가상 (Virtual) 상속을 하면
IAnimal 이 중복을 막음 !
 근데 이게 가상상속의 전부일까 ?
CGCIICho sanghyun’s Game Classes II
 아래와 같이 2 개의 class 가 정의 되어 있다고 한다면 !
실행처리 가상상속 (2)
class ICalculate
{
public:
virtual int Calculate() =0;
};
class ICalculate
{
public:
virtual int Calculate() =0;
};
class IObject
{
private:
int m_iValue;
public:
int GetValue() const { return m_iValue;}
virtual void PrintCalculated() =0;
};
class IObject
{
private:
int m_iValue;
public:
int GetValue() const { return m_iValue;}
virtual void PrintCalculated() =0;
};
순수 가상 함수 !
순수 가상 함수 !
CGCIICho sanghyun’s Game Classes II
실행처리 가상상속 (2)
class NCalculate :
virtual public ICalculate,
virtual public IObject
{
public:
virtual int Calculate()
{
return GetValue() * 2;
}
};
class NCalculate :
virtual public ICalculate,
virtual public IObject
{
public:
virtual int Calculate()
{
return GetValue() * 2;
}
};
class NObject :
virtual public ICalculate,
virtual public IObject
{
public:
virtual void PrintCalculated()
{
printf(“Result is %d", Calculate());
}
};
class NObject :
virtual public ICalculate,
virtual public IObject
{
public:
virtual void PrintCalculated()
{
printf(“Result is %d", Calculate());
}
};
 CCalculate 는 ICalculate 부분만 구현 !
 CObject 는 IObject 부분만 구현 !
IObject 함수
ICalculate 함수
CGCIICho sanghyun’s Game Classes II
실행처리 가상상속 (3)
 CCalculate 와 CObject 를 다중 상속하게 되면… 객체의 합성
 일반적으로 이런 식의 객체 합성을 Mixin 이라 한다 .
 Java 도 결국 mixin 을 또 다른 변태적 문법으로 지원을 해서 사실상 모든 다중상속을 지원하
게 됨 .
CGCIICho sanghyun’s Game Classes II
실행처리 Mix-In (1)
 CGCII 의 Socket 은 Socket 의 기능을 7 개의 Layer 로 구분하여 정의
 Mixin 을 활용하여 정적 컴포넌트를 조합하도록 설계
• 다양한 Socket 을 유연하게 추가 / 변형 / 구성 가능 → Flexiblity
• 성능 손실 최소화 !( 정적 컴포넌트 조합 ) → Performance
• 코딩의 단순화 ( 상속만으로 합성 ) → Simple Coding
CGCIICho sanghyun’s Game Classes II
실행처리 CGCII Socket Layers (1)
• [ 저수준 ] Socket 기본 속성
• [ 저수준 ] Receive I/O 처리
• IReceiveable 에서 전달받은 데이터를 Message 별
로 분리
• IPacketable 에서 전달받은 Message 에 해당하는 처리
• 사용자 Send 함수 .
• Send 하려는 내용을 표준화된 전달 형식으로
ISendRequest 에 전달한다 .
• 중간 가공처리 . 전송하려는 내용을 ISendable 에
전달한다 .
• [ 저수준 ] I/O 로 Send 처리
• 전송이 완료된 후 처리를 위한 것 (Option)
• 접속 후 처리 / 접속 종료 처리를 정의한다 .
• 접속지향 (TCP) 면 필수 .
• 접속 요구 기능 (Client 측 )
CGCIICho sanghyun’s Game Classes II
실행처리 CGCII Socket Layers (2)
[ 저수준 I/O]
•저수준 함수를 호출하여 Receive I/O 처리
•ProcessReceivable() 에서
•데이터를 Receive 하고 IPacketable::ProcessPacketable() 을 호출
하여 받은 데이터를 넘긴다 !
[ 메시지 분리 ]
•ProcessPacketable() 에서 전달된 데이터를 Message 단위로 자른다 .
•잘려진 Message 는 ICGMessageable::ProcessMessage() 함수를
호출하여 전달한다 .
[ 메시지 처리 ]
•ProcessMessage() 함수에서 전달된 Message 에 따라 처리를 수행한다 .
CGCIICho sanghyun’s Game Classes II
실행처리 CGCII Socket Layers (3)
(v)
(v)
(v) (v)
(v) (v)
(v)
CGCIICho sanghyun’s Game Classes II
실행처리 CGCII Socket Layers (4)
class CSocketTCP :
public CGNetIO::Socket::NTCP,
public CGNetIO::Connectable::NTCP,
public CGNetIO::Sendable::NTCP,
public CGNetIO::SendRequest::NBase,
public CGNetIO::Sender::NStreamGather,
public CGNetIO::Receivable::NStream,
public CGNetIO::Packetable::NStream<WORD>,
public CGNetIO::Messageable::Nbase
{
public:
CSocketTCP() {}
virtual ~CSocketTCP(){}
};
class CSocketTCP :
public CGNetIO::Socket::NTCP,
public CGNetIO::Connectable::NTCP,
public CGNetIO::Sendable::NTCP,
public CGNetIO::SendRequest::NBase,
public CGNetIO::Sender::NStreamGather,
public CGNetIO::Receivable::NStream,
public CGNetIO::Packetable::NStream<WORD>,
public CGNetIO::Messageable::Nbase
{
public:
CSocketTCP() {}
virtual ~CSocketTCP(){}
};
CGCIICho sanghyun’s Game Classes II
실행처리 CGCII Socket Layers (5)
CGCIICho sanghyun’s Game Classes II
 자주 사용하는 다양한 Socket 을 미리 합성해 놓았다 .
실행처리 CGCII Socket Layers (6)
• 일반 TCP Socket
• 가변 Message 크기에 Message Head 를 가진
일반적 Message 처리
• 동일한 크기의 Message 를 처리하는 Socket
• CTCP<T> 에 Connector 를 상속 받은 Socket
• 일반 UDP Socket
• Reliable UDP 를 위한 Socket
• 재전송을 위한 처리 구조
• Web 용 Server/Client Socket
• 기본적으로 Text 로 동작
• 'rnrn' 으로 Message 를 구분
• HTTP Decoding
• Parsing
• 'GET', 'POST‘ 등의 명령어 처리
• 기타 Web 용 처리
CGCIICho sanghyun’s Game Classes II
실행처리 다중상속이란 ? (4)
 CGCII 은 Mixin 을 통해
• 확장성 (Extensibility)
• 유연성 (Flexibility)
• 은닉 (Encapsulation)
• 효율성 (Efficiency)
• 성능 (Performance)
개인적인 생각으론 C++ 만이 가능 !!
• 편리한 개발 (Easy to Developement)
CGCIICho sanghyun’s Game Classes II
질문 ?예외처리
중간질문 ?
sangduck@cgcii.co.kr

More Related Content

PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
PPTX
Quic을 이용한 네트워크 성능 개선
PDF
테라로 살펴본 MMORPG의 논타겟팅 시스템
PDF
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
PPTX
Ndc14 분산 서버 구축의 ABC
PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
PDF
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
Quic을 이용한 네트워크 성능 개선
테라로 살펴본 MMORPG의 논타겟팅 시스템
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
Ndc14 분산 서버 구축의 ABC
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)

What's hot (20)

PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
NDC12_Lockless게임서버설계와구현
PDF
Python 게임서버 안녕하십니까 : RPC framework 편
PDF
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
PDF
NoSQL 위에서 MMORPG 개발하기
PPTX
게임 분산 서버 구조
PPTX
Next-generation MMORPG service architecture
PDF
채팅서버의 부하 분산 사례
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
Multiplayer Game Sync Techniques through CAP theorem
PPTX
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PPTX
NDC 11 자이언트 서버의 비밀
PPTX
GA로 게임 로그 분석하기
PPTX
게임프로젝트에 적용하는 GPGPU
PDF
UE4 Garbage Collection
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
온라인 게임 처음부터 끝까지 동적언어로 만들기
PPTX
리플렉션과 가비지 컬렉션
MMOG Server-Side 충돌 및 이동처리 설계와 구현
NDC12_Lockless게임서버설계와구현
Python 게임서버 안녕하십니까 : RPC framework 편
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
NoSQL 위에서 MMORPG 개발하기
게임 분산 서버 구조
Next-generation MMORPG service architecture
채팅서버의 부하 분산 사례
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
임태현, MMO 서버 개발 포스트 모템, NDC2012
Multiplayer Game Sync Techniques through CAP theorem
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
NDC 11 자이언트 서버의 비밀
GA로 게임 로그 분석하기
게임프로젝트에 적용하는 GPGPU
UE4 Garbage Collection
임태현, 게임 서버 디자인 가이드, NDC2013
온라인 게임 처음부터 끝까지 동적언어로 만들기
리플렉션과 가비지 컬렉션
Ad

Viewers also liked (8)

PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
PPT
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
PDF
Iocp advanced
PDF
[KOSSA] C++ Programming - 14th Study - template
PPTX
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
PDF
Windows Registered I/O (RIO) vs IOCP
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
Iocp advanced
[KOSSA] C++ Programming - 14th Study - template
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
Windows Registered I/O (RIO) vs IOCP
Ad

Similar to GCGC- CGCII 서버 엔진에 적용된 기술 (7) - Multiple Inhertance (20)

PPTX
Effective c++ Chapter6
PPTX
[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계
PPTX
Effective c++ 정리 chapter 6
PDF
2013 C++ Study For Students #1
PPTX
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
PDF
상속과 구현
PDF
More effective c++ 항목30부터
PPT
카사 공개세미나1회 W.E.L.C.
PPTX
Effective c++(chapter 5,6)
PPTX
A tour of C++ : the basics
PDF
PDF
Tcpl 12장 파생클래스
PPTX
Effective c++ 3
PDF
Effective c++ chapter5 6_ 131039 신동찬
PPTX
Chapter5 ~ 6
PDF
Effective c++ chapter1 2_dcshin
PPTX
[11 0702] 추상 인터페이스를 이용한 프로그래밍
PPTX
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
PPT
Ai C#세미나
PPTX
Effective c++chapter1 and2
Effective c++ Chapter6
[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계
Effective c++ 정리 chapter 6
2013 C++ Study For Students #1
NDC 2011, 네트워크 비동기 통신, 합의점의 길목에서
상속과 구현
More effective c++ 항목30부터
카사 공개세미나1회 W.E.L.C.
Effective c++(chapter 5,6)
A tour of C++ : the basics
Tcpl 12장 파생클래스
Effective c++ 3
Effective c++ chapter5 6_ 131039 신동찬
Chapter5 ~ 6
Effective c++ chapter1 2_dcshin
[11 0702] 추상 인터페이스를 이용한 프로그래밍
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
Ai C#세미나
Effective c++chapter1 and2

GCGC- CGCII 서버 엔진에 적용된 기술 (7) - Multiple Inhertance

  • 1. Multiple InheritanceCGCIICho sanghyun’s Game Classes II 1. Multiple-Inheritance 2. Virtual Inheritance 3. Mix-In 4. CGCII Socket Layers
  • 2. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (1)  다중 상속은 악인가 ?  다중 상속이란 여러 개의 클래스로 부터 상속받는 것 !
  • 3. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (2) The C++ Programming Language 이 책은 아는 사람이 봐야 알고 모르는 사람은 봐도 모르는 책 즉 , 아는 사람은 볼 필요 없고 모르는 사람은 봐도 모르는 책 아래는 다중 상속에 대한 내용 ~ 무슨 의미인지 이해 가는가 ?
  • 4. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (3)
  • 5. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (4)  다중 상속은 악인가 ?  현대의 많은 언어가 사실상 다중 상속을 지원  현실적으로 왠만한 프로그래밍에서는 다중 상속이 빠짐 없이 보임 .  다중상속에 대한 무조건적인 무용론은 다중 상속에 대한 오해 에서 비롯된 것으로 보임 .
  • 6. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (5) 추상화 (Abstraction) 다 따로 !!  C++ 효율성의 핵심은 StartStop(…) Steering(…) Accel(…) Brake(…) SetGear(…) 구체화 (Implementation) 인터페이스 클래스 정의 { p->StartStop(true); for(int i=0; i<; ++i) { p->Steering(i); P->Accel (i) } p->brake(); p->StartStop(false); } void Drive(CarD* p) 공용 ! 추상화 (Abstraction) (v) (v) (v) (v) (v)
  • 7. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (6)  한 객체는 여러 개의 Interface 를 가질 수 있다 .  여러 개의 Inteface 를 가진 다중 상속은 얼마든지 있을 수 있다 .  하지만 다중 상속의 진짜 힘은 여기서 부터닷 !!!  사실상 다중 상속이 없으면 효율적인 C++ 프로그래밍이 힘들다 .  Java 조차도 단일 상속만을 추구했지만 이런 다중상속의 효용성 문제로 Interface 상속이 란 변태적 개념으로 다중 상속을 넣었다 . ( 결국 이런 변태 상속이 또 다른 변태를 낳게 된다 .)
  • 8. CGCIICho sanghyun’s Game Classes II 실행처리 가상상속 (1)  그러나 다중상속의 문제점 !!!  가상 상속은 죽음의 다이아몬드를 만들어 준다 . IAnimal 이 중복됨 . (v) (v) 가상 (Virtual) 상속을 하면 IAnimal 이 중복을 막음 !  근데 이게 가상상속의 전부일까 ?
  • 9. CGCIICho sanghyun’s Game Classes II  아래와 같이 2 개의 class 가 정의 되어 있다고 한다면 ! 실행처리 가상상속 (2) class ICalculate { public: virtual int Calculate() =0; }; class ICalculate { public: virtual int Calculate() =0; }; class IObject { private: int m_iValue; public: int GetValue() const { return m_iValue;} virtual void PrintCalculated() =0; }; class IObject { private: int m_iValue; public: int GetValue() const { return m_iValue;} virtual void PrintCalculated() =0; }; 순수 가상 함수 ! 순수 가상 함수 !
  • 10. CGCIICho sanghyun’s Game Classes II 실행처리 가상상속 (2) class NCalculate : virtual public ICalculate, virtual public IObject { public: virtual int Calculate() { return GetValue() * 2; } }; class NCalculate : virtual public ICalculate, virtual public IObject { public: virtual int Calculate() { return GetValue() * 2; } }; class NObject : virtual public ICalculate, virtual public IObject { public: virtual void PrintCalculated() { printf(“Result is %d", Calculate()); } }; class NObject : virtual public ICalculate, virtual public IObject { public: virtual void PrintCalculated() { printf(“Result is %d", Calculate()); } };  CCalculate 는 ICalculate 부분만 구현 !  CObject 는 IObject 부분만 구현 ! IObject 함수 ICalculate 함수
  • 11. CGCIICho sanghyun’s Game Classes II 실행처리 가상상속 (3)  CCalculate 와 CObject 를 다중 상속하게 되면… 객체의 합성  일반적으로 이런 식의 객체 합성을 Mixin 이라 한다 .  Java 도 결국 mixin 을 또 다른 변태적 문법으로 지원을 해서 사실상 모든 다중상속을 지원하 게 됨 .
  • 12. CGCIICho sanghyun’s Game Classes II 실행처리 Mix-In (1)  CGCII 의 Socket 은 Socket 의 기능을 7 개의 Layer 로 구분하여 정의  Mixin 을 활용하여 정적 컴포넌트를 조합하도록 설계 • 다양한 Socket 을 유연하게 추가 / 변형 / 구성 가능 → Flexiblity • 성능 손실 최소화 !( 정적 컴포넌트 조합 ) → Performance • 코딩의 단순화 ( 상속만으로 합성 ) → Simple Coding
  • 13. CGCIICho sanghyun’s Game Classes II 실행처리 CGCII Socket Layers (1) • [ 저수준 ] Socket 기본 속성 • [ 저수준 ] Receive I/O 처리 • IReceiveable 에서 전달받은 데이터를 Message 별 로 분리 • IPacketable 에서 전달받은 Message 에 해당하는 처리 • 사용자 Send 함수 . • Send 하려는 내용을 표준화된 전달 형식으로 ISendRequest 에 전달한다 . • 중간 가공처리 . 전송하려는 내용을 ISendable 에 전달한다 . • [ 저수준 ] I/O 로 Send 처리 • 전송이 완료된 후 처리를 위한 것 (Option) • 접속 후 처리 / 접속 종료 처리를 정의한다 . • 접속지향 (TCP) 면 필수 . • 접속 요구 기능 (Client 측 )
  • 14. CGCIICho sanghyun’s Game Classes II 실행처리 CGCII Socket Layers (2) [ 저수준 I/O] •저수준 함수를 호출하여 Receive I/O 처리 •ProcessReceivable() 에서 •데이터를 Receive 하고 IPacketable::ProcessPacketable() 을 호출 하여 받은 데이터를 넘긴다 ! [ 메시지 분리 ] •ProcessPacketable() 에서 전달된 데이터를 Message 단위로 자른다 . •잘려진 Message 는 ICGMessageable::ProcessMessage() 함수를 호출하여 전달한다 . [ 메시지 처리 ] •ProcessMessage() 함수에서 전달된 Message 에 따라 처리를 수행한다 .
  • 15. CGCIICho sanghyun’s Game Classes II 실행처리 CGCII Socket Layers (3) (v) (v) (v) (v) (v) (v) (v)
  • 16. CGCIICho sanghyun’s Game Classes II 실행처리 CGCII Socket Layers (4)
  • 17. class CSocketTCP : public CGNetIO::Socket::NTCP, public CGNetIO::Connectable::NTCP, public CGNetIO::Sendable::NTCP, public CGNetIO::SendRequest::NBase, public CGNetIO::Sender::NStreamGather, public CGNetIO::Receivable::NStream, public CGNetIO::Packetable::NStream<WORD>, public CGNetIO::Messageable::Nbase { public: CSocketTCP() {} virtual ~CSocketTCP(){} }; class CSocketTCP : public CGNetIO::Socket::NTCP, public CGNetIO::Connectable::NTCP, public CGNetIO::Sendable::NTCP, public CGNetIO::SendRequest::NBase, public CGNetIO::Sender::NStreamGather, public CGNetIO::Receivable::NStream, public CGNetIO::Packetable::NStream<WORD>, public CGNetIO::Messageable::Nbase { public: CSocketTCP() {} virtual ~CSocketTCP(){} }; CGCIICho sanghyun’s Game Classes II 실행처리 CGCII Socket Layers (5)
  • 18. CGCIICho sanghyun’s Game Classes II  자주 사용하는 다양한 Socket 을 미리 합성해 놓았다 . 실행처리 CGCII Socket Layers (6) • 일반 TCP Socket • 가변 Message 크기에 Message Head 를 가진 일반적 Message 처리 • 동일한 크기의 Message 를 처리하는 Socket • CTCP<T> 에 Connector 를 상속 받은 Socket • 일반 UDP Socket • Reliable UDP 를 위한 Socket • 재전송을 위한 처리 구조 • Web 용 Server/Client Socket • 기본적으로 Text 로 동작 • 'rnrn' 으로 Message 를 구분 • HTTP Decoding • Parsing • 'GET', 'POST‘ 등의 명령어 처리 • 기타 Web 용 처리
  • 19. CGCIICho sanghyun’s Game Classes II 실행처리 다중상속이란 ? (4)  CGCII 은 Mixin 을 통해 • 확장성 (Extensibility) • 유연성 (Flexibility) • 은닉 (Encapsulation) • 효율성 (Efficiency) • 성능 (Performance) 개인적인 생각으론 C++ 만이 가능 !! • 편리한 개발 (Easy to Developement)
  • 20. CGCIICho sanghyun’s Game Classes II 질문 ?예외처리 중간질문 ? sangduck@cgcii.co.kr