IT/공부 정리

[Unity] ECS: Entity Component System

rinix_x 2026. 4. 12. 09:15

이 내용은 어레이의 개발 문고 라는 유튜브에서 참고했습니다.

 

ECS는 게임 오브젝트를 구성하는 아키텍처 패턴이다. 

세가지 요소로 구성되는데

1. Entity (엔티티)

  • 고유한 ID (숫자)
  • 데이터 없음, 로직 없음
  • 이 ID에 어떤 컴포넌트들이 붙어있다는 정보 (여러 컴포넌트 조합)
  • ex) Entity 25, Entity 1652

2. Component (컴포넌트)

  • 순수한 데이터 덩어리
  • 로직 없음, 함수 없음
  • ex) Position { x, y, z } , Health { current, max } , PlayerTag {   } (데이터 없는 태그도 가능)

3. System (시스템)

  • 로직을 담당
  • 특정 컴포넌트 조합을 가진 에티티들을 처리
  • ex) MovementSystem -> Position  Velocity + deltaTime

 

OPP 와 ECS의 차이

OPP의 경우 상속 계층이 복잡해지거나 여기저기 흩어져 있거나 비슷한 로직이 여러 클래스에 중복되는 경우가 발생

ECS는 같은 컴포넌트는 메모리에 연속 배치해서 캐시 효율, 상속 대신 조합으로 유연함, 로직을 재사용 가능

 

ECS의 저장 방식은 두가지가 있는데

Sparse Set : 컴포넌트 타입별로 독립된 배열

Archetype : 같은 컴포넌트 조합끼리 테이블로 묶음

 

자세한 내용은 유튜브 참고..

추 후에 실제 개발에 사용하게 되면.. 코드를 올려보겠습니다

반응형