상속이란 기존의 클래스를 확장하거나 재사용하여 새로운 클래스를 생성하는 것을 말한다. 클래스간의 멤버 변수, 멤버 함수 등과 같은 형질을 물려받는 것을 상속이라고 한다.
22. 오버로딩과 오버라이딩의 차이점을 설명해주세요.
오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 말하고, 오버라이딩은 상위 클래스가 가지고 있는 메서드를 하위 클래스에서 재정의하는 것을 말한다.
23. 인터페이스와 추상클래스의 차이를 설명해주세요.
인터페이스는 구현 객체의 동일한 실행 기능을 보장하기 위한 목적이 있는 반면 추상클래스는 상속 받아서 기능을 확장시키는데 목적이있다.
추상 클래스는 하나 이상의 추상 메서드를 포함할 수 있는 클래스이다. 추상 클래스를 상속한 클래스는 반드시 추상 함수를 재정의해야 하고 추상 클래스와 달리 메서드를 정의할 수는 없고, 함수 선언만 할 수 있다. 인터페이스에 선언한 모든 함수는 인터페이스를 상속하는 클래스에서 반드시 구현해야 합니다.
24. 디자인 패턴(Singleton, Observer 등) 사용하는 이유는 무엇인가요? (꼬리질문) 프로젝트에 디자인패턴을 적용해 본 경험이 있나요? 왜 그 디자인패턴을 선택해서 구현하였나요? (꼬리질문) Unity를 사용하면서 경험해볼 수 있는 대표적인 디자인패턴이 무엇인지 설명해주세요.
디자인 패턴을 사용하는 이유는 주로 코드의 재사용성, 유지보수성, 확장성, 그리고 코드의 가독성과 이해도를 향상시키기 위함이다. 사용한적 있다. 이벤트 기반 시스템을 구현하기 위해 Observer 패턴을 사용한 적이 있다. 이 패턴을 선택한 이유는 여러 객체 간에 느슨한 결합을 유지하고, 객체 간의 상호작용을 효율적으로 관리하기 위함이었다. 또한, 코드의 유연성을 높이고, 변경 사항에 대응하기 쉽도록 만들어줬다. Unity에서 가장 대표적인 디자인 패턴 중 하나는 Component 패턴이다. 이 패턴은 게임 오브젝트를 구성하는 각각의 구성 요소(컴포넌트)를 분리하여 관리하고, 각 컴포넌트는 특정 동작이나 기능을 담당한다.
25. MVC 모델이란 무엇인지 설명해주세요.
26. Unity 의 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
27. MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.
28. Unity 오브젝트가 다양하게 씬에 올라와 있다면 동시에 시작되고 무엇이 먼저 초기화 되는지 알 수 없을 수 있는데, 프로젝트에서 코드를 만들 때 이에 대해 고민하고 해결해본 경험이 있다면 설명해주세요.
29. Update의 종류와 각각 어떤 특징을 가지고 있는지 설명해주세요.
30. 서로 다른 성능을 가진 기기에서 Update 사용 시 주의할 점에 대해 설명해주세요.
31. 유니티로 타이머를 구현하는 알고리즘을 설명해주세요.
32. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요.
33. 유니티 렌더링 파이프라인에 대해 설명해보세요. 랜더링 파이프라인에는 어떤 종류가 있나요?
34. 드로우콜(Draw Call) 배칭이 무엇인지 설명해주세요.
35. 코루틴(Coroutine)이 무엇이며, 어떤 상황에서 유용하게 사용될 수 있나요? (연관질문) 코루틴을 사용한 경험에 대해 설명해주세요.
36. 오브젝트 풀링(Object Pooling)이 무엇이며, 어떻게 구현하는지 설명해주세요.
37. Object pool을 사용하는 이유는 무엇인가요?
38. 객체를 이동할 때 벡터를 정규화(Nomarlized) 하는 이유에 대해 설명해주세요.
39. 월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이에 대해 설명해주세요.