액터모델이란?
액터는 상태(state)를 내부에 캡슐화하고, 다른 액터와는 메시지 전달(message passing)로만 통신하는 동시성 설계 패턴. 액터는 받은 메시지에 따라 상태를 변경하고, 다른 액터에 메시지를 보내며, 새로운 액터를 생성할 수 있다.
핵심 원칙
- 상태는 액터 내부에만 존재하고 직접 공유하지 않는다 (no shared mutable state).
- 통신은 비동기 메시지 전송(메일박스)을 통해 이루어진다.
- 액터는 독립적으로 실행되어 락 없이 병렬 처리 가능.
- 구성 요소: 액터, 메일박스(큐), 메시지, 감독(슈퍼비저) — 실패 격리와 재시작 정책을 통해 내결함성 제공.
- 장점: 확장성(수평 확장 쉬움), 데드락 회피, 결함 격리, 자연스러운 분산 처리 모델.
- 단점: 디버깅/추적 어려움, 메시지 지연·순서 문제, 설계 복잡성(상태 일관성, 트랜잭션 처리).
사용처
• 대규모 동시성, 분산 서비스, 실시간 게임 서버, IoT 등 다수 엔티티를 독립적으로 운영해야 할 때 적합.