Series Archive

[카테고리:] C++

C++의 문법 자체를 설명하기 보다는 왜 이런 구조가 필요한지, 내부에서 어떤 일이 일어나는지, 그리고 실제 게임 개발과 엔진 개발에서 어떻게 활용되는지를 중심으로 정리하는 카테고리입니다.

게임 개발자를 위한 메모리 구조 2 – 왜 캐시 미스(Cache Miss)는 게임을 느리게 만들까?

2026년 5월 12일

자료구조를 처음 공부할 때는 보통 시간 복잡도(Big-O)를 중심으로 배우게 됩니다. 그래서 연결 리스트(linked list)는 삽입/삭제가 빠르고, 동적 배열(vector)은 중간 삽입이 느리다고 배우게 됩니다. 저도 처음에는 게임 엔진에서도 연결 리스트 같은 자료구조를 굉장히 많이 사용할…

게임 엔진 프레임워크, 게임 개발 & 프로그래밍, C++

게임 개발자를 위한 메모리 구조 1 – 스택과 힙이 중요한 이유

2026년 5월 12일

게임 개발에서 스택과 힙을 아는 게 중요할까요? 개발을 처음 공부하시는 분들은 스택과 힙을 아는 게 그렇게 중요할까? 그냥 적절하게 변수를 생성하고, 생성한 변수를 다루는 함수를 잘 작성해서 기능을 구현하면 되는 게 아닐까? 정도로 생각하실…

게임 엔진 프레임워크, 게임 개발 & 프로그래밍, C++

placement new는 왜 필요할까?

2026년 5월 9일

들어가며 이전 글에서는 allocator를 사용해 직접 구현한 Vector를 개선해봤습니다. 그 과정에서 allocator는 단순 메모리 할당기가 아니라, 메모리 확보와 객체 생명주기를 분리하기 위한 구조라는 이야기를 했습니다. 그리고 allocator를 사용하다 보면 자연스럽게 이런 코드가 등장합니다. allocator.construct(ptr,…

게임 개발 & 프로그래밍, C++

C++ Allocator를 사용해 동적 배열 Vector 개선하기

2026년 5월 9일

들어가며 이전 글에서는 C++ allocator의 기본 개념을 정리했습니다. allocator는 쉽게 말하면 메모리 할당 정책을 컨테이너와 분리하기 위한 구조입니다. 그런데 allocator는 설명만 들으면 조금 추상적으로 느껴질 수 있습니다. 이번 글에서는 직접 구현한 동적 배열 Vector에…

게임 개발 & 프로그래밍, C++

C++ Allocator의 기본 원리와 실무에서의 활용

2026년 5월 9일

들어가며 C++ STL 컨테이너를 보다 보면 이런 코드를 자주 보게 됩니다. std::vector<int, std::allocator> numbers; 그런데 대부분의 경우, allocator는 직접 건드리지 않습니다. 왜냐하면, 기본 allocator만 사용해도 대부분 잘 동작하기 때문입니다. 그래서 처음 allocator를 접하면 이런…

게임 개발 & 프로그래밍, C++

C 언어로 코루틴 구현하기 – switch-case와 __LINE__ 트릭의 원리

2026년 5월 8일

🚀 들어가며 아래 링크는 C 언어로 코루틴을 구현하는 아주 유명한 글입니다. https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html 처음 보면 굉장히 충격적입니다. 왜냐하면 C 언어에는 coroutine 문법이 없고, yield도 없고, async/await도 없는데 코루틴처럼 동작하는 구조를 만들어내기 때문입니다. 게다가 스레드도 사용하지…

게임 개발 & 프로그래밍, Unity3D, C++

C++ shared_ptr의 Control Block은 어디에 생성될까?

2026년 5월 7일

🚀 들어가며 이전 글들에서는 C++ 스마트 포인터의 기본 개념과 함께, shared_ptr, weak_ptr, enable_shared_from_this의 동작 원리를 살펴보았습니다. 그 과정에서 계속 등장한 핵심 개념이 하나 있습니다. 👉 바로 Control Block 입니다. shared_ptr은 객체의 생명주기 관리를 위해…

게임 개발 & 프로그래밍, C++

C++ enable_shared_from_this 완벽 정리 | shared_ptr(this)가 위험한 이유

2026년 5월 6일

🚀 들어가며 이전 글에서는 weak_ptr이 왜 필요한지와 함께, shared_ptr의 순환 참조 문제를 어떻게 해결하는지 정리해보았습니다. shared_ptr은 매우 편리한 스마트 포인터입니다. 객체의 생명주기를 자동으로 관리해주고, 객체의 소멸 시점을 정확하게 알 수 없는 상황에서도 안전하게 객체를…

게임 엔진 프레임워크, C++