내일배움캠프 54일차 TIL
오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다.
가비지 컬렉터 회피 전략
C#에서 가비지 컬렉터는 메모리 관리를 자동화해주는 역할을 하지만, 때로는 GC로 인해 성능 저하가 일어날 때가 있다. 따라서 다음과 같은 가비지 컬렉터 회피 전략이 필요하다.
- 메모리 할당 최소화하기 - 가비지 컬렉터는 메모리를 할당하고 해제하는 작업을 담당하기 때문에 메모리 할당을 최소화하면 가비지 컬렉션의 빈도를 줄일 수 있다.
- 가비지 컬렉션 빈도 줄이기 - GC.Collect() 메서드를 직접 호출하는 것은 피하고, 필요한 경우에만 호출한다.
- IDisposable 인터페이스 사용
- Finalizer 사용 최소화
- 값 타입 사용
팀 프로젝트 개발 - 절차적 맵 생성
먼저 통로와 벽으로 이루어진 방 프리팹을 만든다. 방 프리팹은 각 문의 방향과 위치에 대한 정보를 담은 스크립트를 컴포넌트로 가지고 있다. 이후 DungeonGenerator 스크립트에서 현재 방에서 연결 가능한 모든 문에 다음 방을 연결하는 메서드를 목표 방 개수에 도달할 때 까지 재귀호출하는 방식으로 구현했다. 내일은 맵 구조를 더 복잡하게 생성하고, 뚫린 부분이 존재하지 않도록 수정할 예정이다.