728x90

전체 글 93

[Unity] 다중 오브젝트 풀링 (Multiful Object Pooling)

오브젝트 풀링(Object Pooling) 오브젝트의 생성과 파괴는 꽤 많은 성능을 잡아 먹는다. 생성은 메모리 할당과 리소스 로드, 파괴는 가비지 컬렉션이 동작하기 때문이다. 게임 실행 중 다량의 오브젝트가 생성 및 파괴가 된다면 프레임 드랍 등의 성능 문제가 발생할 것이다. 이를 방지하기 위해 사용하는 기법이 오브젝트 풀링이다. 오브젝트를 필요한 만큼 미리 생성해놓고 필요 할 때 사용하고 사용이 끝나면 다시 풀에 반납하는 방식이다. 다중 오브젝트 풀링(Object Pooling) 하지만 게임을 개발하다보면 오브젝트 풀이 필요한 경우가 생각보다 빈번하다. (투사체, 적, 타일 등) 기본적인 오브젝트 풀 코드에서는 이를 한번에 관리할 수가 없다. 이 문제를 해결하기 위해 여러 코드를 참고하여 다중 오브젝..

게임/Unity 2022.11.06

[자료구조] 트리(Tree)

트리(Tree) 트리는 계층적 관계(Hierarchical Relationship)를 표현하는 비선형 자료구조이다. 트리를 만드는 도구를 만들어 놓으면 다양한 목적으로 활용이 가능하다. 트리의 관련 용어 노드(node) - 트리의 구성요소(A, B, C, D, E) 간선(edge) - 노드와 노드를 연결하는 선 루트 노드(root node) - 트리 구조에서 최상위 노드(A) 단말 노드(terminal node) - 아래로 노드가 연결 되어 있지 않은 노드(C, D, E) 내부 노드(internal node) - 단말 노드를 제외한 모든 노드(A, B) 부모 노드(parent node) 계층적 구조에서 위에 연결되어 있는 노드(A는 B,C의 부모 노드) 자식 노드(child node) 계층적 구조에서 아..

[자료구조] 해시 테이블(Hash Table)

테이블(Table) 맵(Map) 혹은 사전 구조(Dictionary)라고도 불리운다. 테이블은 데이터가 key와 Value가 쌍을 이루는 자료구조이다. key : 중복되지 않는 값 value : 실질적인 데이터 key를 기반으로 value를 탐색해야 하기 때문에 value를 근거로 key를 만드는 공식이 필요하다. 그렇지만 key와 value가 완전히 구분되지 않고 value의 일부를 key로 활용하는 경우도 있다. Ex) 학번이라는 value를 key로 활용 (학번은 중복되지 않기 때문) O(1)라는 빠른 속도를 가지지만 많은 공간이 낭비되는 문제가 발생한다. struct StudentInfo { int id; string name; }; StudentInfo arr[30000000]; arr[2020..