Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

게임공장

액터 모델을 간단히 알아보자 본문

Articles

액터 모델을 간단히 알아보자

짱승_ 2021. 3. 18. 11:44

  하드웨어를 모두 활용하려면 코드를 동시에 실행시켜야 한다. `Threads` 가 길이 아니라보고 이를 대신할 방법 중 하나가 액터 모델이다.

 

모델

  • 액터 모델은 동시 연산을 다루기 위한 개념적 모델이다.
  • 시스템의 구성 요소는 서로 상호 작용해야 한다.
  • 이를 사용하는 가장 유명한 언어는 `Erlang`.

액터

  • 메시지를 받고 이를 바탕으로 어떠한 계산을 한다.
  • 객체지향 언어와 동일한 부분이 있다
    • 오브젝트는 메시지를 받고(메서드 호출) 이를 바탕으로 무엇인가 한다.
    • 가장 큰 다른 점은 액터들은 서로 완전히 독립적이고 메모리를 공유하지 않는다.
    • 다른 액터가 직접적으로 변경하지 못하는 상태를 가지고 있다.
  • 액터는 우체통을 가지고 있다.
    • 여러 액터들이 동시에 가동된다고 해도 하나의 액터는 메시지를 순차적으로 처리한다.
    • 우체통은 이 메시지들을 저장하는 곳이다.

  • 액터가 메시지를 받으면 아래 3가지 일 중 한가지를 할 수 있다.
    • 액터들을 더 생성
    • 다른 액터들에게 메시지를 보냄
    • 다음 메시지로 무엇을 할 것인지 결정
  • 첫번째, 두번째는 직관적으로 이해할 수 있지만 세번째가 흥미롭다. "다음 메시지로 무엇을 할 것인지 결정"의 의미는 다음 메시지가 왔을 때 상태가 어떻게 보여져야하는지 결정한다는 의미이고 이는 곧, 액터가 상태를 어떻게 변경시킬지 결정한다는 의미이다.
  • 결함을 받아들임
    • `Erlang` 은 "크래시 나도록 내버려두라" 라는 철학을 가지고 있다. 
    • 크래시 나도록 내버려두되 다만 누군가 이를 관리하고 크래시가 났을 때 어떤일이 일어났는지 알아야 한다.
    • 모든 코드는 "프로세스" 안에서 동작한다. (`Erlang` 에서 액터를 "프로세스"라 부른다.)
    • 이 "프로세스"는 완전히 독립적이며 다른 "프로세스"에 어떠한 영향도 미치지 않는다.
    • 관리자 프로세스를 가진다. 이 프로세스는 관리받는 프로세스가 크래시나면 이를 알아채고 어떠한 동작을 하게된다.

 

원문: www.brianstorti.com/the-actor-model/

 

The actor model in 10 minutes

The actor model in 10 minutes

www.brianstorti.com

 

반응형