STL 컨테이너 구현하기
그동안은 C++을 사용하면서 STL의 사용법과 내부 동작을 이해하는데 그쳤고 리스소 관리에 대한 고민은 STL에 넘겨버렸습니다. 그러니 코드 구현 능력이 부족한 것도 당연하거니와 다른 사람들의 코드나 오픈소스를 보더라도 코드에 담긴 의도를 파악하는 감각이 부족하다고 느꼈습니다. C++을 제대로 이해하기 위해서 직접 메모리를 관리해보는 경험에 대한 필요성도 느꼈습니다. 그래서 이번 프로젝트를 시작하게 되었습니다.
목표는 cppreference 문서에 나와있는 컨테이너들의 인터페이스들을 확인하고, 최대한 비슷하게 해당 인터페이스들을 제공할 수 있도록 구현할 예정입니다. 그리고 비슷한 문제들을 다른 오픈소스 라이브러리(boost, 언리얼 엔진)에서는 어떻게 해결했는지 비교하면서, 직접 구현한 컨테이너의 성능도 비교해보면서 최적화할 계획입니다. 장기적으로는 현재 제작 중이던 게임 프레임워크에 해당 컨테이너들을 적용해서 컨테이너의 내부 동작들을 커스터마이징 해볼 계획도 하고 있습니다.
이 과정을 통해서 C++문법과 설계를 조금 더 깊이 있게 이해하고 언리얼 엔진의 컨테이너에 대해서도 더욱 깊은 이해를 할 수 있을 거라 기대합니다. 부가적으로 성능 테스트 환경, 빌드 최적화를 위한 환경도 구축하면서 프로젝트에 대한 경험도 쌓을 수 있을 것 기대합니다. 그리고 함께 할 사람이 있다면 협업 환경 구축과 코드 리뷰를 통해서 협업에 대한 역량도 기를 수 있을 것으로 기대합니다.
중간 과정들을 종종 포스팅하도록 하겠습니다.