Search

2024년 여섯 번째 개발일지

작성자
상태
완료
날짜
생성 일시
2024/03/03 03:51

정리

이번에는 기존에 작성했던 문서를 보면서 복습하는 시간을 가졌습니다.
최근에 작성한 문서였기에 한 번만 읽으려 했지만, 고칠 부분이 많이 보여서 수정했습니다.
예를 들어, SRP Batcher와 같은 경우 유니티 공식 문서에서는 SRP Batcher에서 MPB를 사용하면 안 된다고 나와있지만, 최신 유니티 버전에서는 사용해도 무방하다는 것을 알게 되었습니다.
렌더링 파이프라인의 과정을 전체적인 순서에 맞게 재구성하였고, 이를 이해하기 쉽게 문서화하였습니다.

CS공부

이전에 언급했던 CS 공부를 좀 더 본격적으로 진행하고 있습니다. 현재 문서는 비어 있지만, 아직 문서를 작성하기에는 CS 지식이 부족하다는 것을 깨달았습니다.
학교에서 배운 CS 지식으로는, 유니티의 메인 스레드 방식에서 Job System을 사용한 멀티스레드로 전환하는 과정과, 직접 멀티스레드를 생성하지 않고 Job System을 사용하는 것이 더 안전한 이유에 대해 완벽하게 설명하기 어려웠습니다.
Job System이 어떻게 동작하는지, 그리고 기본적인 뮤텍스, 세마포어, 락 등의 멀티스레딩 환경에 대한 안전성을 위한 방법들을 포함해 어떻게 활용하면 이점이 생기는지, 그리고 그 이점이 단일 코어와 멀티 코어에서 어느 정도 의미를 가지는지 등을 알아보면서, CS 지식이 더욱 필요하다는 것을 깨달았습니다.
따라서, 아주 기초부터 차근차근 CS공부를 처음부터 시작하려 합니다. CPU의 발전 과정부터 인터럽트 커널 같은 운영 체제의 작동 방식을 처음부터 다시 공부하려 합니다. 약 1년 동안 유니티 빌드 과정인 Roslyn과 Job System, ECS, DOTS까지 필요한 컴퓨터 공학 지식을 차근차근 공부할 계획입니다.

리플렉션

회사에서 일을 하는 동안, CS 공부와는 별개로 궁금했던 부분이나 필요한 지식들을 계속해서 공부하려고 합니다.
이 번에는 리플렉션에 대해 자세히 공부해보았습니다.

Set Pass Call

이전에 최적화를 공부하면서 Draw Call에 대해 상세히 설명했지만, Set Pass Call의 중요성에 대해서는 언급하지 못한 것 같습니다.
Set Pass Call또한 Draw Call과 마찬가지로 그래픽 최적화를 진행할 때 빠져서는 안 되는 중요한 요소입니다.
이 부분은 아래의 문서에 제가 공부한 내용이 있습니다.