https://www.reddit.com/r/gamedev/comments/18od4yw/what_are_your_thoughts_on_entity_component/
OOP : 로봇 하나 만들 때마다 일일이 해당되는 부품 창고 들어가서 부품 가져옴.
ECS : 각 부품 담당자(System)가, 일렬로 정렬된 로봇들(Entity)을 스캔하면서, 자신이 다루는 부품(Component)을 찾아 직접 조작함.
https://www.youtube.com/watch?v=6gFyoMoa8dM
https://www.youtube.com/watch?v=gqJlQJn0N2g
| 용어 | 의미 |
|---|---|
| ECS | Entity Component System – 설계 패턴 |
| DOTS | Data-Oriented Technology Stack – Unity가 만든 전체 구조 |
| Jobs System | 멀티스레딩 처리 구조 – 작업을 병렬로 처리 |
| Burst Compiler | Unity의 초고속 컴파일러 – Jobs + ECS 성능 극대화 |
Unity에서 말하는 DOTS (Data-Oriented Tech Stack)는 아래 세 가지로 구성돼요:
ECS
→ Entity/Component/System 구조
→ 모든 게임 오브젝트를 데이터 중심으로 관리
C# Jobs System
→ 로직을 병렬로 실행할 수 있게 함
→ 예: 총알 수천 개를 한꺼번에 움직일 때 CPU 코어 다 활용
Burst Compiler
→ C# 코드를 네이티브 수준으로 최적화함
→ 벡터화, SIMD, 캐시 최적화 등
✅ DOTS는 ECS + Jobs + Burst를 묶은 “패키지 이름”이에요.
| 이름 | ECS 기반? | 역할 | 연결성 |
|---|---|---|---|
| ECS | ✅ 핵심 설계 | 데이터 분리 + 구조화 | DOTS 안에 포함 |
| Jobs | ❌ 아님 (하지만 ECS에 잘 맞음) | 멀티스레딩 로직 처리 | ECS 시스템 내부에서 많이 사용 |
| DOTS | ✅ ECS + Jobs + Burst 묶음 | 전체 최적화 스택 | Unity의 새로운 퍼포먼스 패러다임 |