TIL

[TIL] 내일배움캠프_Unity 최종 프로젝트 1주차: ScriptableObject 복습, 기술 면접 대비 6일차

Hwone 2023. 10. 30. 20:53

ScriptableObject 

: 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너

 

주로 언제 사용하는 가 ? 

: 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄이는 것으로 연결된 MonoBehaviour 스크립트에 변경되지 않는 데이터를 저장하는 프리팹이 있는 경우 유용하다 

- 에디터 세션 동안 데이터 저장 및 보관 

- 데이터를 프로젝트의 에셋으로 저장하여 런타임 시 사용

 

*ScriptableObject에 데이터를 저장하는 작업은 편집할 때나 런타임에 가능하다 

* MonoBehaviour 와는 달리 게임 오브젝트에 ScriptableObject를 연결할 수 없으며 대신 프로젝트의 에셋으로 저장된다 

 

기술면접 대비 6일차

Q: 가비지 컬렉터를 회피하기 위한 전략이 무엇이 있나요 ? 

A:  객체를 미리 생성해놓고 필요할 때 마다 사용하고 반납하는 객체 풀 방식을 사용하거나, 리소스 같은 경우에는 IDisposable 인터페이스를 이용하여 명시적으로 해제하고 Finalize 메서드를 사용하여 가비지 컬렉터가 수거하기 전에 정리 작업을 수행할 수 있습니다 

 

* IDisposable 인터페이스는 객체가 더 이상 필요하지 않을 때 괸리되지 않는 리소스를 명시적으로 해제하고 정리하는 메커니즘을 제공하는 인터페이스스 입니다 -> 인터페이스 안에 있는 Dispose 메서드는 직접 호출하거나 using 블록 내에서 자동으로 호출됩니다