앞에서 언급한 Action의 내용은 다음과 같습니다.

A topic이 실행되는 동안, 다른 B topic도 같이 실행될 수 있습니다. 반면, service는 현재 진행중인 service의 request가 처리되는 동안, 다른 service는 기다리고 있어야 합니다.

action은 service와 비슷합니다. 하지만 큰 차이점이 있는데요.

결론부터 말씀드리자면,

  1. action client는 action server가 response를 보내기 전까지 기다리지 않고, 다른 일을 할 수 있습니다!
  2. action client은 request를 보낸 뒤에도 지속적으로 feedback을 받을 수 있습니다!!

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/38c2198d-f2bb-4e99-a23b-c7acbd2843bd/Untitled.png

image from : The Construct

사진과 같이 client와 server가 주고받는 내용은 크게 5가지가 있습니다. 더불어 이들이 전개되는 순서를 살펴보면 다음과 같습니다.

  1. client ⇒ server goal (service request와 유사합니다.)
  2. server ⇒ client feedback
  3. client ⇒ server cancel
  4. server ⇒ client status
  5. server ⇒ client result