Series Archive

[카테고리:] 게임 엔진 프레임워크

게임 엔진 프레임워크의 구조와 설계 방법, 렌더링, 메모리 관리 등 내부 동작 원리를 중심으로 다루는 카테고리입니다.

게임 개발자를 위한 메모리 구조 7 – 왜 최근 게임 엔진은 ECS 구조에 관심을 가지기 시작했을까?

2026년 5월 13일

최근에 ECS라는 키워드를 굉장히 자주 듣습니다. Unity DOTS, Unreal Mass, Data Oriented Design 같은 키워드들을 살펴 보면 거의 반드시 등장합니다. 대표적인 상용 엔진들은 컴포넌트 기반(Component Based)으로 게임 객체를 설계했습니다. 유니티의 경우 GameObject가 MonoBehaviour를 상속하는…

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

게임 개발자를 위한 메모리 구조 6 – 최근 엔진들이 SoA 구조를 사용하기 시작한 이유

2026년 5월 13일

지금까지 메모리 구조와 관련해서 Stack과 Heap, Cache Miss, allocator, placement new, Object Pool에 대해 살펴봤습니다. 이 내용들을 하나씩 따로 보면 서로 다른 주제처럼 느껴질 수도 있습니다. 스택과 힙은 메모리 영역에 대한 이야기이고, Cache Miss는…

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

게임 개발자를 위한 메모리 구조 5 – Object Pool을 사용하는 이유

2026년 5월 13일

게임이나 프로그램을 개발하다보면 동적으로 메모리가 필요할 때가 있습니다. 이때 보통은 객체가 필요하면 생성하고, 필요 없어지면 제거하면 된다고 생각하게 됩니다. 이렇게 필요할 때 new로 필요한 메모리를 할당하고, 모두 사용한 객체는 delete로 해제해 사용하는 방식은 대부분의…

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

게임 개발자를 위한 메모리 구조 4 – placement new는 왜 등장했을까?

2026년 5월 12일

이번에는 placement new라는 문법에 대해 살펴보려고 합니다. placement new는 일반적으로 사용하는 new와 문법에서 다소 차이가 있습니다. 사용 방법은 아래와 같습니다. new (memory) Actor(); new와 타입 사이에 메모리 주소가 들어가는 특이한 형태의 문법입니다. 저도 처음…

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

게임 개발자를 위한 메모리 구조 3 – 게임 엔진은 왜 allocator를 직접 구현할까?

2026년 5월 12일

게임 개발을 하거나 게임 개발 공부를 하다보면, 힙에서 사용할 객체를 생성할 때 자연스럽게 new를 사용하게 됩니다. 사전에 객체 생성 시점을 정확하게 예측하기 어렵고, 언제 해제될지도 명확하지 않은 상황이라면 힙 메모리를 사용하는 것이 맞습니다. new를…

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

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

2026년 5월 12일

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

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

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

2026년 5월 12일

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

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

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

2026년 5월 6일

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

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