구조체와 클래스의 차이점 : 값 타입과 참조 타입(깊은 복사와 얕은 복사)
- 여러 곳에서 참조되어야 할 데이터의 경우는 구조체보다 클래스로 참조하는 형식을 사용하는 편이 좋다
- c++에서는 구조체와 클래스의 차이가 명확하지 않았다. 보통 데이터만 모아둔 경우 구조체로 선언하고, 이를 하나의 정리 방식으로 사용했을 뿐 구조체에 클래스처럼 함수도 넣을 수 있었고 클래스처럼 동작하도록 할 수 있었으나 c#에서는 그렇지 않다고 한다. 구조체에 메서드가 포함될 수 있으나 클래스처럼 동작하지 않고, 메서드가 포함된다고 해서 메서드가 위치한 주소값이 구조체에 정의되어 같이 복사되어 가는 것도 아니라고 한다.(메서드의 주소는 코드 영역에 존재하며 컴파일러가 이를 호출하는 형식)
사용이 되지 않음에도 GC의 수거 대상이 아닌 경우 - 순환 참조
순환 참조가 일어날 경우, 예를 들어 a가 b를 참조하고, b가 a를 참조하고 있다면 이는 GC의 대상이 아니어서 메모리 누수로 이어진다
사용하지 않을 것이라면 확실히 끊어내는 작업이 필요하다(GC도 결국 코드로 동작하는 프로세스인 것)
'[내일배움캠프 Unity 9기]' 카테고리의 다른 글
| 05/15 TIL 프로젝트 마무리 및 Unity 실전 팁 (0) | 2025.05.15 |
|---|---|
| 05/14 TIL - 람다식 클로저, RigidBody 없는 Collider의 트리거 (0) | 2025.05.14 |
| 05/12 TIL - 프로젝트 작업 방향성 (0) | 2025.05.12 |
| 05/09 TIL (0) | 2025.05.09 |
| 05/08 TIL (0) | 2025.05.08 |