Tech

Diary

Lecture

About Me

개발중

비동기의 다양한 의미

JeongSeulho

2023년 02월 13일

준비중...
클립보드로 복사

asynchronous programming

  • 여러 작업을 동시에 실행하는 방법론
  • multiThreading, non-blocking IO 등으로 실제 구현됨

Image

멀티 스레딩은 다수의 스레드로 병렬 처리
non-blocking IO는 하나의 스레드가 IO 작업을 요청해두고 기다리는 동안 다른 작업 진행

asynchronous IO

비동기 IO란 구체적으로 어떤 것을 지칭하는지 맥락에 따라 상의

case 1

  • synchronous IO : blocking IO를 의미
  • asynchronous IO : non-blocking IO를 의미

case 2

  • synchronous IO : 요청 주체가 IO 완료까지 신경 써야할 때
  • asynchronous IO : 완료에대해 알림을 주거나 callback을 통해 처리

case 3

  • asynchronous IO : blocking IO를 다른 스레드에서 처리

Image

백엔드 아키텍처에서 synchronous와 asynchronous

MSA에서 각 서비스가 API로 통신

Image

  • 만약 서비스 C에서 응답이 안오면 서비스 B와 A도 문제가 생길 수 있음

MSA에서 메세지 큐를 활용한 통신

Image

  • 각 서비스는 메세지 큐에 produce, consume 하는 방식으로 통신
  • 단, 일방적인 정보 전달에만 해당