Search

컴포넌트 패턴

class
디자인 패턴
상태
완료
날짜

컴포넌트 패턴

유니티(Unity)에서 컴포넌트 패턴은 게임 개발에서 매우 중요한 역할을 합니다.
이 패턴은 유니티의 핵심 설계 개념 중 하나로, 게임 오브젝트에 다양한 기능을 독립적으로 추가하고 조합할 수 있게 해주는 방식입니다.
Transform 컴포넌트, Rigidbody 컴포넌트

컴포넌트 패턴의 구조 및 목적

목표는 복잡한 서브 시스템에 대한 간결한 인터페이스를 제공하는 것입니다.
구조 : 유니티에서 모든 게임 오브젝트는 기본적으로 빈 컨테이너로 시작합니다. 개발자는 이 오브젝트에 필요한 기능을 하는 컴포넌트들(예: 물리, 렌더링, 스크립트 등)을 추가하여 기능을 부여합니다. 각 컴포넌트는 독립적으로 동작하며, 오브젝트에 필요한 기능들을 조합하여 복잡한 동작을 구현할 수 있습니다.
목적 : 이 패턴의 주요 목적은 재사용성과 유연성을 높이는 것입니다. 개발자들은 기존 컴포넌트를 재사용하고, 필요에 따라 새로운 컴포넌트를 추가하여 개발 시간을 단축하고, 유지보수를 용이하게 할 수 있습니다.

컴포넌트 패턴의 장단점

1.
재사용성 : 이미 만들어진 컴포넌트를 다양한 오브젝트에 적용할 수 있어 코드 재사용성이 높습니다.
2.
유연성 : 게임 오브젝트의 기능을 쉽게 추가하거나 제거할 수 있어, 게임의 요구 사항이 변경되더라도 손쉽게 대응할 수 있습니다.
3.
유지보수 용이 : 각 컴포넌트는 독립적으로 작동하기 때문에, 하나의 컴포넌트를 수정하거나 업데이트해도 다른 컴포넌트에 영향을 미치지 않아 유지보수가 용이합니다.

단점

1.
성능 오버헤드 : 많은 컴포넌트를 사용할 경우, 각각의 컴포넌트가 독립적으로 업데이트되어야 하므로 성능에 부담을 줄 수 있습니다.
2.
복잡성 증가 : 컴포넌트가 많아지면 게임 오브젝트의 동작을 이해하고 관리하는 것이 복잡해질 수 있습니다.
3.
의존성 관리 : 서로 다른 컴포넌트 간의 상호작용이 필요한 경우, 이들 간의 의존성을 관리하는 것이 어려울 수 있습니다.
a.
의존성 관리에 대해서는 개인적으로 Monobehaviour에 대한 깊은 이해가 필요하다고 생각합니다. Monobehaviour를 상속받지 않고 컴포넌트를 만드는 방법도 있지만, 일반적으로 유니티의 컴포넌트를 제작할 때는 이 클래스를 상속받아 시작합니다. 따라서, 해당 클래스의 데이터 생명주기와 사용 과정을 정확히 이해해야 합니다.

컴포넌트 패턴 UML

아래는 컴포넌트 패턴의 UML입니다.

컴포넌트 패턴 구현

유니티에서 컴포넌트 패턴을 구현하는 것은 기본적으로 Monobehaviour를 상속 받으면 됩니다.