LOGIN • JOININ

...

 '서버 엔진'으로 '탄생'했습니다.

CGCII는 1997년 처음 개발된 CGC을 완전히 리뉴얼 해  2004년 릴리즈되었습니다.

CGCII는 처음 개발 시부터 서버의 개발을 위해 설계된 C++ 서버 프레임워크형 엔진입니다.

 


 '서버 엔진'으로 '발전'해 왔습니다.

MMO, 캐쥬얼게임, FPS, 모바일 게임까지 수십개의 프로젝트에 사용되며 끊임없이 적응하고 발전해왔습니다.

CGCII는 단순한 네트워크 기능 제공을 위한 엔진이 아니라 서버의 개발에 있어 객체 관리부터  Network I/O, 최상층 콘텐츠의 개발까지 서버의 개발에 필요한 모든 부분을 지원해줍니다.



 '객체지향형 서버 프레임워크' 입니다.

CGCII는 추상화되고 패턴화된 설계로 상속/재정의/확장에 열려 있는 프레임워크 엔진입니다.

객체 괸리, 실행처리(Thread), 소켓 I/O등, 서버 동작에 관련된 기능까지 추상화하고 패턴화해 제공합니다.

템플릿을 적극 활용해 강력한 확장성 및 개발 편의성을 제공합니다.

'템플릿 메타 프로그래밍'(Template Meta Programming)으로 프로그래머가 결정해야 했던 많은 것들을 컴파일러가 자동적으로 처리하도록 해줍니다.



 '개방형 구조' 를 가졌습니다.

기존 서버엔진은 닫힌 구조의 엔진이 많아 확장성이나 유연성에  한계가 있었습니다만 CGCII는 열린 구조의 프레임워크형 엔진으로 설계되었습니다.

엔진의 기능 사용만을 목적으로 하는 함수나 클래스를 제공한는 것이 아니라 상속/재정의/추가 등을 할수 있도록 추상화된 객체를 제공해줍니다.

추상화되고 패턴화된 설계로 상속/재정의/확장에 열려 있어 강력한 확장과 다양한 응용을 제공해줍니다.



 '강력한 성능'을 제공합니다.

성능은 가장 자신있게 내세우는 가장 자신 있는 부분입니다.

고성능 메모리풀(Memory Pool)과 객체풀(Object Pool)을 사용해 객체의 동적할당 성능을 높여줍니다.

객체풀은 단순한 메모리 할당/해제 부하 뿐만 아니라 초기화 및 소멸 부하를 줄여줍니다.

다중 코어에 최적화된 분산 처리를 제공합니다.

락프리(Lock-Free)의 광범위한  사용으로  다중  쓰레드하에서도 최적의 성능을 제공합니다.

하드웨어 캐쉬에 최적화가 되어 설계되고 제작되었습니다.

반복문  최소화등 다양한 로직 최적화 알고리즘으로 구현되었습니다.

템플릿 메타 프로그래밍의 도입으로 컴파일러 차원의 최적화가 구현되었습니다.

Overlapped I/O와 IOCP 등 고성능 I/O에 최적화된 알고리즘을 사용해 뛰어난 처리능력을 제공합니다.

비복사 송수신을 구현해 최적화된 송수신 처리 능럭을 제공합니다. (1:N 전송에 위력을 발휘합니다.)

상황에 따른 다양한 튜닝 파라메터들을 제공합니다.

부하 적응형 송수신 처리를 합니다.

비동기식 접속 및 접속해제처리를 하며 소켓의 재활용을 지원합니다.

효율적인 세션 풀로 DB/Redis/HTTP 등의 고성능 동기식/비동기식 쿼리를 제공합니다.


 '쉬운 개발'을 가능하게 합니다.

편리함의 제공을 위한 다양한 원칙들과 철학을 추구해 개발되었습니다.

간단한 개발이란 단순히 짧은 코드만이 아니라 구조와 설계의 쉬움이 더욱 중요하다고 생각합니다.

   어떤 기능을 추가하고자 할때 어디에 어떤 코드를 추가하면 되겠다는 것이 바로 떠오를 수 있도록 하는 것

   어떤 기능의 수정이 필요할 때 이 기능은 여기에 구현되어 있겠구나 바로 찾을 수 있는 것

   그러한 것들의 제공이 간단한 개발의 핵심이라고 생각합니다.

적은 수의 직관적인 패턴과 일관성있는 체계로 복잡한 서버도 쉽게 설계/구현/유지보수할수 있도록 해줍니다.

쉬운 개발을 위한 다양한 서버 구조를 제공해줍니다.


 '강력한 안정성'을 제공합니다.

오랜 개발과 서비스 경험을 통해 코드의 무결성과 안정성을 확보해왔습니다.

다양한 네트웍 상황에 대한 오랜 실전 경험과 그에 대한 각종 대처 시스템의 구현으로 강력한 안정성을 제공합니다. 

레퍼런트 카운트 , 스마트포인터, 'RAII' 등 자동화된 동적 객체 관리 및 가비지 콜렉션 처리는 안정성을 더욱 강화해줍니다.

엔진 레벨의 '강한 예외 보장'(Strong Exception Guarantee)을 제공합니다.

네트워크 처리 중 어떠한 곳에서 예외가 발생하더라도 '강력 예외 보장(Strong Exception Guarantee)'이 제공되도록 설계되었으며 '훅 함수  페어링'의 동작도 보장해 줍니다.

'SEH'와 연동된 예외처리로 일반적인 엔진이라면 느닷없는 다운을 맞아야할 상황에서도 롤백 후 정상 동작이나 안정적으로 서버 종료해 줄 수 있도록 지원해줍니다.

초당 5천만회의 메시지 송수신 테스트를 1조회 이상, 초당 수천회의 접속/종료 테스트와 같은 극단적으로 가혹한 테스트 진행을 통해 안정성 확인합니다.