Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이벤트 버스
- 프로젝트 생성
- 데이터 형식
- 의존성 주입
- 테이블 데이터
- event bus
- 구글 스프레드 시트
- 콘솔 앱
- 오브젝트 풀
- 게임 디자인 패턴
- Canvas Scaler
- Unity 기술면접
- Dependency Injection
- 상태 패턴
- 개발
- Di
- Object Pool
- 스타일 지침
- C#
- 추상 팩토리 패턴
- Render Mode
- 유니티
- New Input System
- Visual Studio Installer
- github desktop
- unity
- 구글플레이콘솔
- MVP 패턴
- 기술면접
- Abstract Factory Pattern
Archives
- Today
- Total
DevDino
[Unity 기술면접] GameObject와 Component의 관계 본문
"GameObject와 Component는 각각 무엇이며, 어떤 관계를 가지나요?"
GameObject와 Component
Unity의 아키텍처를 이해하기 위해 가장 먼저 알아야 할 핵심 개념입니다.
GameObject는 컨테이너이고 Component는 기능입니다.
GameObject
- 정의: 유니티 씬(Scene)에 존재하는 모든 객체의 기본 단위이자, 기능들을 담는 컨테이너(Container) 역할을 합니다.
- 특징: 스스로는 아무런 동작도 하지 못하는 빈 껍데기입니다. 하지만 위치, 회전, 크기 정보를 담는 Transform Component만큼은 무조건 기본적으로 1개 포함하고 있습니다.
Component
- 정의: 객체가 실제로 어떤 행동을 하고 어떤 데이터를 가질지 결정하는 실제 기능 단위입니다.
- 특징: 물리 효과를 주는
Rigidbody, 화면에 모델을 렌더링하는MeshRenderer, 그리고 개발자가 직접 작성하여 객체의 동작을 제어하는 C# 스크립트 모두가 컴포넌트입니다.
두 객체의 관계: 컴포지션(Composition) 중심의 설계
이 둘의 관계는 유니티가 '상속(Inheritance)'이 아닌 '컴포지션(Composition)' 중심으로 설계되었음을 가장 잘 보여줍니다.
예를 들어, 전통적인 객체지향의 상속 구조면 Character라는 부모 클래스를 만들고, 이를 상속받아 Player와 Monster 클래스를 각각 분리하여 구현해야 합니다. 이 방식은 기능이 추가되고 상속 깊이가 깊어질수록 구조가 복잡해지고 코드가 경직되는 단점이 있습니다.
하지만 유니티 컴포지션 구조에서는 빈 GameObject를 하나 생성한 뒤, 필요한 컴포넌트를 레고 블록처럼 조립하여 개체를 완성합니다.
이처럼 GameObject에 Component라는 기능 블록을 끼워 맞추는 구조는, 코드의 중복을 줄이고 기획 변경에 매우 유연하게 대처할 수 있게 해주는 유니티의 핵심 철학입니다.
'Unity > 기술면접' 카테고리의 다른 글
| [Unity 기술면접] 메서드 Override와 Overload (0) | 2025.12.22 |
|---|---|
| [Unity 기술면접] Draw Call 관리 (1) | 2025.12.18 |
| [Unity 기술면접] Prefab과 Scene 관리 (0) | 2025.12.17 |
| [Unity 기술면접] 객체지향 프로그래밍의 4대 원칙 (0) | 2025.12.11 |
| [Unity 기술면접] Unity 생명주기(Lifecycle) (0) | 2025.12.10 |