SW/C++

C++ : STL : 목적, 문제점, 대체 방법

얇은생각 2020. 3. 15. 07:30
반응형

C++ : STL : 목적, 문제점, 대체 방법

 

SLT 컨테이너의 목적

모든 컨테이너에 적용되는 표준 인터페이스가 존재합니다. std 알고리듬은 많은 컨테이너에서 작동합니다. 템플릿 프로그래밍 기반이며, 메모리를 자동 관리해줍니다.

 

 

 

인터페이스 문제점

모든 컨테이너에 같은 인터페이스가 적용되는 것은 이상하다고 할 수 있습니다. 극단적으로 개체 지향 프로그래밍을 추구한 사례라고도 할 수 있습니다.

 

 

 

메모리 단편화

빈번한 메모리 재할당은 메모리 단편화를 초래할 수 있습니다. 메모리 단편화는 엄청난 문제가 될 수 있습니다. 특히 가상 메모리를 지원하지 않는 플랫폼에서 프로그램을 실행할 때, 문제가 야기될 수 있습니다. 

결국, 메모리 단편화 때문에 애플리케이션이 죽을 수 있습니다. 즉, 총 여유 공간은 충분하나 충분히 큰 연속되는 메모리가 없는 경우에 일어날 수 있습니다. 

이러한 문제는 디버깅을 하거나, 문제점을 발견하기 쉽지 않습니다. 

 

 

 

STL 대체품?

많은 회사들이 이러한 문제를 극복하기 위해 자신만의 컨테이너를 만들어 STL을 대체하였습니다. EA가 만든 EASTL은 STL과 호환됩니다. 이 것은 메모리 문제 등을 고친 컨테이너라 할 수 있습니다. Epic Games는 STL보다 나은 인터페이스로 구연한 언리얼만의 컨테이너입니다. EA STL과 언리얼 엔진 4는 모두 오픈 소스라고 합니다. 직접, 컨테이너를 만들어 보면 메모리 관리에 대한 이해를 높일 수 있습니다.

반응형