-
오늘은 도감UI를 만들어주셔서
도감UI에 데이터를 넣는 것을 했습니다.
버그인지 무슨 이유에서인지 AddListener이 작동이 안되서 고쳐봐야하지만..
처음에 구조에 대해서 많은 고민을 했었는데 그덕이라고 할까요? 코드 정리가 괜찮게 되는 것 같아서 기분이 좋습니다.
도감UI를 만들 때 고민했던 부분인데
원래는 모든 아이템 데이터를 가지고 있는 Json과 플레이어가 플레이하는 정보를 가지는 Json 두개를 사용하려고 했습니다.
그런데 도감에 대해 생각해보니깐 플레이어가 플레이하는 정보도 있어야하지만 n회차를 하게 되면 전 회차에서는 A아이템을 주웠는데 이번 회차에서는 A아이템을 줍지 않았다면? 이라는 생각이 들게 되면서 도감아이템 정보를 가지고 있는 Json을 또 생성하게 되었습니다.
그러면서 Json을 생성하고 로드하는 경우가 많다보니깐 좀 더 효과적으로 사용할 수 있는 방법을 생각하게 되었고, 그 결과를 Utility.cs에 넣게 되었습니다.
개인적으로는 Resources.Load도 넣고 싶긴한데 이 한줄을 쓰겠다고 새로운 함수를 만드는게 좋은걸까? 싶기도 해서 아직은 만들지 않았습니다.
그리고 적는 기술면접 질문!
5. 가비지 컬렉터에 대해 설명해주세요.
가비지 컬렉터는 더 이상 사용하지 않는 메모리 공간을 회수하여 다시 사용 가능하도록 해줍니다.
가비지 컬렉터가 있다고 해서 메모리 공간을 남용하면 안됩니다. 가비지 컬렉터가 많이 실행될 수록 시스템의 성능이 떨어지게됩니다.
그리고 가비지 컬렉터를 쉽게 믿으면 안되는데, 일반적으로 게임 오브젝트를 Destroy하면 가비지 컬렉터가 회수해갑니다. 그러나 Destroy해도 어떻게 어떻게 연결된 부분이 있다하면 가비지 컬렉터가 회수를 할 수 없게 됩니다.
그렇기 때문에 Destroy를 할 때 null을 해주는 것도 중요합니다.
이 부분은 전에 강의를 들으면서 들었던 내용인데 정확하게 적어두지 않아서 가물가물한 부분이긴 합니다.