Unity 이론 (ObjectingPooling, Boxing, Unboxing, 값/참조 형식, new)

로젠·2024년 5월 21일
0

게임 프로그래밍

목록 보기
44/49
post-thumbnail

ObjectPooling

Pooling은 주로 자주 삭제하거나 생성하는 데이터를 만들 때 사용하는 것으로 해당 데이터가 필요할 때마다 삽입, 삭제를 하는 것이 아닌 처음에 데이터를 생성해 주고 비활성화 시켜준 뒤 필요할 때 마자 활성화시켜 사용하는 것을 말한다.

Boxing

값 형식을 참조 형식으로 바꿔주는 것을 말한다. 예를 들어 정수를 Object형으로 바꿔주는 것을 말한다.

int a = 10;
Object b = a;

Unboxing

Boxing과 반대로 참조 형식을 값 형식으로 바꿔주는 것을 말한다. 예를 들어 정수를 Object형으로 Boxing 한 것을 다시 정수형으로 바꾸는 것을 Unboxing이라고 한다.

int a = 10;
Object b = a;
int c = (int)b;

값/참조 형식

값 형식은 메모리 할당 내에 데이터를 보유하는 경우를 말한다. 참조 형식은 데이터에 대한 참조를 저장하는 것을 말한다.

new

new를 해주는 경우는 값 형식과, 참조 형식 두 가지가 있다. 이때 구조체는 값 형식, 클래스는 참조 형식에 해당된다. 참조 형식은 공간 할당과 주소 할당을 해주고 힙에서 움직이는 것이다. 참조 형식을 new 해주면 힙 영역에 해당 클래스의 데이터가 생성이 되고 이를 변수에 할당해 주면 데이터가 생성된 곳의 주소를 넘겨준다. 값 형식은 임시 저장소 풀에서 임시 객체를 생성하고 값을 초기화하여 생성자를 호출해 준 뒤 해당 값을 복사해 주는 것을 말한다. struct는 값 초기화가 불가능하고 생성사는 모든 값을 초기화해주면 사용이 가능하다. 클래스에서 사용하는 기본 생성자와 같은 형태는 생성이 불가능하다.

0개의 댓글