📝 24.03.28
인터페이스와 추상클래스의 차이를 설명해주세요.
추상 클래스는 하나 이상의 추상 메서드를 포함할 수 있는 클래스입니다. 추상 클래스를 상속한 클래스는 반드시 추상 함수를 재정의해야 합니다. 인터페이스는 추상 클래스와 달리 메서드를 정의할 수는 없고, 함수 선언만 할 수 있습니다. 인터페이스에 선언한 모든 함수는 인터페이스를 상속하는 클래스에서 반드시 구현해야 합니다.
디자인 패턴(Singleton, Observer 등) 사용하는 이유는 무엇인가요?
디자인 패턴을 사용하는 가장 큰 이유는 이미 효율성이 검증되었기 때문입니다. 많은 사람들에 의해 이미 코드의 재사용성이나 유지 보수성, 확장성 측면에서 효율적인 코드임이 검증이 되었기 때문에 소프트웨어 품질 향상에 도움이 됩니다. 또한, 개발자들끼리 이미 공유되고 있기에 개발자들간의 소통 향상에도 도움이 됩니다.
꼬리 질문 a. 프로젝트에 디자인패턴을 적용해 본 경험이 있나요? 왜 그 디자인패턴을 선택해서 구현하였나요?
젬 크로니클 프로젝트에서 플레이어 캐릭터에 상태 머신 패턴을 적용했습니다. 플레이어의 특성상 걷기/공격/점프 등의 다양한 행동 패턴이 동시에 일어나지 않고 각각이 분리되어 작동하므로 상태 머신을 적용하기에 적합하다고 생각했습니다. 또한, 캐릭터의 행동 패턴을 추가할 경우 상태 머신 디자인 패턴은 이를 확장하기에도 용이하다 생각하여 선택하였습니다.
꼬리 질문 b. Unity를 사용하면서 경험해볼 수 있는 대표적인 디자인패턴이 무엇인지 설명해주세요.
유니티에서 사용하는 가장 대표적인 패턴은 싱글톤 패턴이라고 생각합니다. 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 패턴으로, 해당 클래스의 인스턴스를 전역적으로 접근할 수 있게 하여 객체 생성 및 메모리 사용을 최적화하는 데 사용됩니다.
실수로 생긴 오류를 잡는 것이 세상에서 제일 어려운 것 같다.
상속을 해놓고 base의 함수를 불러오지 않는 등의 행위를 하지 않도록 주의해야겠다.