반응형
서버 액터 모델은 상태를 가진 객체 하나가, 메시지를 한 번에 하나씩만 처리하도록 강제하는 서버 설계 방식이다.
액터는 다음 규칙을 가진다.
- 액터는 자기 상태를 소유한다
- 외부에서는 상태를 직접 수정할 수 없다
- 모든 요청은 메시지로 전달된다
- 액터는 한 번에 하나의 메시지만 처리한다
이 네 줄이 액터 모델의 전부다.
왜 서버에서 액터 모델이 필요한가?
서버에서 가장 위험한 상황은 다음이다.
1.여러 요청이 동시에 들어온다.
2.같은 상태를 동시에 수정한다.
3.실행 순서에 따라 결과가 달라진다.
이 문제는 서버 개발에서도 가장 흔하면서도 재현하기 어려운 버그의 원인이 된다.
액터 모델의 접근 방식
액터 모델에서는 상태의 주인을 하나로 제한하고 상태 변경 경로를 메시지 처리로만 한정하며 메시지를 순차적으로 처리하도록 강제한다.
그 결과 동시성 문제는 코드가 아니라 구조 차원에서 차단된다.
요약하자면
1.액터 모델은 동시성을 없애는 것이 아니라 상태 접근을 직렬화한다.
2.락을 잘 쓰는 방법이 아니라 락이 필요 없는 구조를 만든다.
3.서버 액터 모델은 상태 안정성을 우선하는 설계 방식이다.
반응형
'개발관련 > ETC..' 카테고리의 다른 글
| 가십 프로토콜 (0) | 2025.01.25 |
|---|---|
| Akka 클러스터 (0) | 2024.05.14 |
| Git 커밋된 계정 기록 변경하기 (0) | 2024.04.28 |
| MMF(Memory Mapping File) (0) | 2024.03.18 |
| Https 적용하기 (0) | 2024.03.11 |