동기 Thread1이 작업을 시작 시키고, Task1이 끝날때까지 기다렸다 Task2를 시작한다. 따라서 함수를 호출한 곳에서 응답을 받는 것 호출과 응답이 동시에 이루어 진다. 설계가 간단하고 직관적이나 결과가 주어질 때까지 아무것도 하지 못한다. 비동기 Thread1이 작업을 시작 시키고, 완료를 기다리지 않고, Thread1은 다른 일을 처리할 수 있다. 따라서 호출시점과 응답시점이 같지 않다 즉 동기 비동기는 호출되는 함수의 작업 완료 여부가 관심사 구현이 복잡하나 그 시간동안 다른 작업을 할 수 있으므로 효율적이다. Blocking 함수를 call 했을 때 메소드의 return을 받을때 까지 Thread 가 멈춰있는 상태를 의미 예를들어 우리가 fn hello()라는 함수를 만들었다고 가정했을 ..
Kafka 등장배경 데이터를 전송 - Kafka Producer(source application) 데이터를 받음 - Kafka Consumer(targer application) 기존 단방향 통신에서 producer와 consumer가 많아져 데이터 라인이 복잡해졌다. 따라서 배포와 장애애 대응이 어려워졌고 프로토콜 포맷의 파편화(일한 코드로 작성된 웹페이지 또는 웹 앱임에도 불구하고 브라우저에 따라 서로 다른 화면이나 동작결과를 발생시키는 것)가 심해졌다. 따라서 sa와 ta의 커플링(연관성?)을 약하게 하기 위해 등장 producer -> kafka -> consumer 로 데이터를 주고받음 kafka : 일종의 큐 데이터를 넣는 역할 : producer 데이터를 받는 역할 : consumer Ka..