amazon web service
고성능 애플리케이션 제작을 위한 AWS C++ SDK 커스터마이징
고성능 애플리케이션 제작을 위한 AWS C++ SDK 커스터마이징 게임과 같은 고성능 애플리케이션 제작의 경우, 가상머신(VM)기반의 언어 사용시 성능상 제약이 있기에 C++와 같은 네이티브 바이너리를 직접 생성하는 언어를 쓰게 됩니다. C++의 경우 가비지 컬렉션(Garbage Collection)기능이 없는 언어이기 때문에 사용자가 직접 메모리 관리를 해주어야 합니다. 빈번히 메모리를 할당(new)하고 해제(delete)하는 일은 실행 시간 비용 측면에서도 상당히 비싼 편에 속합니다. 그래서, 고성능을 요구하는 게임 애플리케이션의 경우, 빈번한 메모리 할당과 파편화(memory fragmentation) 문제를 막기 위해서 메모리 풀링(pooling)을 주로 사용하게 됩니다. 이러한 기능을 제공하는 잘 알려진 tcmalloc이나 jemalloc과 같은 범용 메모리 관리자를 사용하는 경우가 많지만, 게임 엔진이나 서버 프레임워크의 경우에는 자체적으로 메모리 관리자를 제공하는 경우가 많습니다. 이러한 환경에서 AWS C++ SDK를 사용하기 위해서는 별도의 커스터마이징 작업이 필요합니다. 그래서, 지난 글에 이어 이번에는 AWS C++ SDK를 사용자의 상황에 맞게 커스터마이징하는 방법에 대해 다루겠습니다. AWS C++ SDK는 메모리 관리자뿐만 아니라 HTTP 클라이언트, 작업 실행용 스레드(worker thread), 로그 에이전트(log [ more… ]