TIL

[TIL] 내일배움캠프_Unity 최종 프로젝트 4주차: Lobby Scene 제작5, 기술 면접 대비 28일차

Hwone 2023. 11. 27. 17:48

팀 회의 내용 

- 진행 상황 공유 

- 이번주 회고 및 개선사항 

 

오늘 한 일 

- 버그픽스 

- 파산 컷 씬 TimeLine 제작 

 

이번주 회고 후 개선 사항은 " UI가 뜰 때 뒷부분에 panel 색상, 투명도 맞추기" 이다 

UI를 띄웠을 때 다른 UI들과 상호작용할 수 없게 패널을 띄워서 막아두었는데 여러사람들이 각자 작업을 하다 보니 다 다른 값을 주고 있었던 것 !

이를 맞추기 위해 어떤 값을 적용할지 정하고 통일하는 작업을 진행하였다 더 찾아보면 통일성 없는 부분들이 더 많을 것으로 예상되는데 이 부분도 한번 찾아보는 것이 좋을 듯 싶다 

테스트할 때 신경써서 보자 !!

 

기술 면접 대비 28일 

Q: 유니티 최적화 기법은 어떤 것들이 있나요?

 

A : 프로파일링을 통해 어떤 부분이 성능 저하를 일으키고 있는지 파악하고 그에 맞는 해결 방법을 통해 최적화를 하는 것이 중요하다고 생각합니다  

렌더링 최적화를 위해서 주로 런타임에 움직이지 않는 오브젝트들을 정적 배칭을 이용하여 배치수를 줄이고 하나의 여러 Sprite 이미지들은 하나의 sprite 파일로 묶어서 하나의 재질로 여러가지 spriterenderer를 사용할 수 있는 아틀라스를 사용할 수 있습니다 또한, 렌더링이 필요없는 객체들은 컬링 기법들을 활용하여 불필요한 계산을 줄이는 방법이 있습니다

성능 및 메모리를 최적화 하기 위해서는 주로 오브젝트 풀링 기법을 사용하여 객체를 재사용하는 방법이 있는 초기에는 미리 일정 수의 객체를 생성해야해서 메모리를 더 많이 사용하지만 전체적으로 봤을 때 객체를 계속 생성하고 삭제하는 것 보다 가비지 컬렉션을 최소화 하여 메모리를 효율적으로 관리할 수 있습니다

 

(꼬리질문) 최적화를 위해서 적용해본 텍스쳐 포맷이 있나요?

: 아직 사용한 적은 없지만, 주로 모바일에서는 ASTC 포맷을 사용합니다 

ASTC는 블록의 크기를 조절할 수 있어서 텍스처의 특성에 따라 최적의 설정을 선택할 수 있습니다 

그러나 구형기기에서는 ASTC를 지원하지 않을 수 있으며, 이러한 경우에는 애플이나 안드로이드에서 각각 제공하는 다른 포맷인 PVRTC나 ETC를 사용합니다 단, ASTC 보다는 퀄리티가 낮을 수 있습니다 

데스크탑에서는 주로 BC 포맷을 사용하는 경우가 많은데 DXT포맷들이 속합니다 DXT1 은 알파채널이 없는 텍스처에 사용되어 메모리 사용량을 낮출 수 있습니다 반면에 DXT5는 알파채널이 있는 텍스처에 사용되며, DXT1보다는 높은 메모리 사용량을 가집니다 또한, BC7은 더 높은 비트레이트를 사용하여 세밀한 텍스처에 적합합니다 

이렇게 각 상황에 맞는 텍스처 포맷을 선택함으로써 메모리를 절약하면서도 퀄리티있게 사용할 수 있습니다 

 

Q : 가비지컬렉터(GC)란 무엇인가요?  

 

A: 가비지 컬렉터란 동적으로 할당된 메모리를 해제 및 관리하는 자동 메모리 관리자입니다 

장점으로는 개발자가 힙에 할당한 메모리들을 완벽하게 관리할 필요가 없어서 어느정도의 메모리 누수를 방지할 수 있습니다

단점으로는 어떤 메모리를 해제할 지 식별하는데 비용이 들고, 정확한 메모리 해제 시점을 알 수 없어 안정성과 성능을 예측하기 어렵습니다