Search

2024년 네 번째 개발일지

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

기초

개발자로서의 경력이 어느덧 2년차에 접어들었는데, 문득 아주 기초적인 지식들에 대해 제대로 알고 있는지에 대한 의문이 생겼습니다.
만약 다른 사람이 저에게 코루틴, async, await, 또는 유니티 게임 루프가 어떻게 돌아가는지와 같은 기초적인 지식에 대해 물어본다면, 제대로 대답할 수 있을지 고민이 됩니다.
취준생이었을 때, 아마도 위의 질문에 대해 확신에 차게 대답했을 것입니다. "코루틴은 비동기 작업을 수행하기 위한 메소드입니다." (아는 것이 없으니깐..)
그러나 실제로 코루틴이 유니티 내에서 어떤 방식으로 실행되는지, 실행 주기는 어떻게 되는지, 그리고 왜 코루틴의 반환 값이 IEnumerator인지에 대해 대답할 수 없을 것입니다.
따라서, 이번 개발 공부는 매우 기초적인 내용들에 대한 복습 과정이었습니다.
현업에서 일하면서 이런 기초적인 지식들을 다시 살펴보았을 때, 더 깊은 이해를 위해 질문하며 공부할 수 있었습니다.
2년 후에도 이런 기본적인 지식을 다시 살펴보면, '그때는 이것까지 몰랐을까?'하는 생각이 들 것 같습니다.
따라서, 이번 개발 페이지는 아마 2년마다 수정될 것 같습니다.

Coroutine vs async,await (Task)

유니티 개발자로서, 비동기 프로그래밍을 할 때 가장 많이 사용하는 방식은 코루틴과 Task라고 생각합니다. 그래서 개발 기초 지식을 공부하는 첫 단계로 이것을 선택했습니다.
UniTask라는 라이브러리는 Unity에서 Task를 사용하기 위해 최적화된 라이브러리입니다. 이 라이브러리가 어떻게 최적화되었는지, 그리고 Unity에서 Task 대신 UniTask를 사용해야 하는 이유에 대해 공부해 보았습니다.

유니티 게임 루프

유니티를 개발하면서 기본적인 순서인 Awake → OnEnable → Start를 알고 있지만, 전반적인 유니티의 게임 루프에 대해 설명하라하면, 아마 제대로 설명하지 못 할 것 같습니다.
유니티 게임 루프를 공부하는 과정은 위의 질문뿐 아니라, 왜 Awake에서는 코루틴을 사용할 수 없는지, 그리고 Awake에서 어떤 작업을 선택해야 하는지 등의 기본적인 지식을 얻는 과정이었습니다.

인터페이스, 추상 클래스

게임 개발자로서, 인터페이스와 추상 클래스에 대해 많이 연구했습니다. 이 두 도구를 잘 활용하고 있지만, 왜 그렇게 사용하고 있는지 물어보면 단순히 유지보수를 위해서라고만 대답할 것 같습니다.
두 도구를 사용하는 이유는 분명히 알고 있지만, 그 이유를 명확하게 설명하는 것은 어려울 것 같습니다.
따라서, 이번 개발 페이지는 공부보다는 제 지식을 정리하는 데에 좀 더 초점을 맞추었습니다. 따라서 개인적인 의견이 약간 포함되어 있습니다.
그리고 이 두 개발 페이지가 2년 후에 어떻게 보일지 기대하고 있습니다. ㅎㅎ..