placement new는 왜 필요할까?
들어가며 이전 글에서는 allocator를 사용해 직접 구현한 Vector를 개선해봤습니다. 그 과정에서 allocator는 단순 메모리 할당기가 아니라, 메모리 확보와 객체 생명주기를 분리하기 위한 구조라는 이야기를 했습니다. 그리고 allocator를 사용하다 보면 자연스럽게 이런 코드가 등장합니다. allocator.construct(ptr,…
Series Archive
이 주제와 관련된 글을 시간순으로 정리한 목록입니다.
들어가며 이전 글에서는 allocator를 사용해 직접 구현한 Vector를 개선해봤습니다. 그 과정에서 allocator는 단순 메모리 할당기가 아니라, 메모리 확보와 객체 생명주기를 분리하기 위한 구조라는 이야기를 했습니다. 그리고 allocator를 사용하다 보면 자연스럽게 이런 코드가 등장합니다. allocator.construct(ptr,…
들어가며 이전 글에서는 C++ allocator의 기본 개념을 정리했습니다. allocator는 쉽게 말하면 메모리 할당 정책을 컨테이너와 분리하기 위한 구조입니다. 그런데 allocator는 설명만 들으면 조금 추상적으로 느껴질 수 있습니다. 이번 글에서는 직접 구현한 동적 배열 Vector에…
들어가며 C++ STL 컨테이너를 보다 보면 이런 코드를 자주 보게 됩니다. std::vector<int, std::allocator> numbers; 그런데 대부분의 경우, allocator는 직접 건드리지 않습니다. 왜냐하면, 기본 allocator만 사용해도 대부분 잘 동작하기 때문입니다. 그래서 처음 allocator를 접하면 이런…
🚀 들어가며 이전 글들에서는 C++ 스마트 포인터의 기본 개념과 함께, shared_ptr, weak_ptr, enable_shared_from_this의 동작 원리를 살펴보았습니다. 그 과정에서 계속 등장한 핵심 개념이 하나 있습니다. 👉 바로 Control Block 입니다. shared_ptr은 객체의 생명주기 관리를 위해…
유니티에서 오브젝트 풀 만들기 Object Pool 2 – 오브젝트 풀 스크립트 만들기 오브젝트 풀 시리즈 전체 유니티에서 오브젝트 풀 만들기 Object Pool 1 – Pooled Object 정의하기 유니티에서 오브젝트 풀 만들기 Object Pool 2…
C# 메모리 관리 – 스태틱 변수 Static Variable 스태틱 변수 Static Variable 초보자 분들 중에 많은 분들이 아래와 같은 실수를 합니다: 그리고 다른 스크립트에서 아래 예제와 같이 사용하는 것을 찾을 수 있습니다. 적군이…
C# 메모리 관리 – 참조 생성하기 Creating a Reference 참조 생성하기 Creating a Reference 앞에서 값 타입 value type의 참조를 생성하는 것이 가능하다는 것을 살펴봤습니다. 함수 내에서 인티저 integer 변수를 하나 생성한다고 가정해 보겠습니다.…
메모리 관리 메모리 관리 이 강좌는 특히 유니티 개발을 위해서 C#을 익히려는 C/C++ 프로그래머에게 유용합니다. C#은 메모리를 다른 방식으로 관리하기 때문에, 매우 혼동스럽거나 처음에는 마법같이 보일 수 있지만 다른 시스템들과 마찬가지로 눈에…