1. 동기와 비동기

minj-j·2023년 8월 8일
0

JUST STUDY

목록 보기
1/4
post-thumbnail

웃기지만 아직도 헷갈린다.
그럼 지대로 모른다는 소리겠지?

대충이라도 정리해보려고 한다.

1. 동기 Synchronous

동기는
어떤 요청에 대한 결과가 동시에 일어난다는 것이다.
그래서 응답을 하는 도중 다른 응답을 받을 수 없다.

요청에 대한 결과가 동시에 일어나려면 해당 요청만 처리해야 겠지?
그래서 해당 요청에 대한 응답이 끝날때까지 다른 요청에 대한 결과를 반환하지 못한다.

한번에 한 요청만 처리

이때 동기적인 작업으로 인해 이후의 작업이 막히게 된 것을 Blocking이라고 한다.

안 잊어버릴라구 많이 돌아다니는 예시까지 주워왔다.

🍨 카페에서
커피를 주문했을 때,
자리에서 안기다리고,
커피가 나올때까지 카운터에서 기다림,
다른 손님은 기다리는 나 때문에 주문을 할 수가 없음

💁‍♀️
장점 : 직관적
단점 : 근데 한 요청에 대한 결과가 끝날때 까지 다른 일을 못함

2. 비동기 Asynchronous

비동기는
응답을 하는 도중 다른 응답을 받을 수 있다.

그래서 해당 요청을 받는 중 다른 요청이 들어오면 그 요청도 처리하러 간다.
그래서 해당 요청에 대한 결과가 바로 일어나지 않는다.

이말은 즉, 여러개의 요청을 동시에 처리한다는 것이다.

하나의 작업이 진행되는 도중 다른 작업에 대한 처리가 막히지 않으니
이는 non-blocking 이라고 한다.

🍨 카페에서
커피를 주문했을 때,
점원이 진동벨 주고 자리에서 기다려 주세요 함,
나는 자리에 가고 점원은 다른 손님의 주문을 받음

💁‍♀️
장점 : 효율적
단점 : 직관적이지 못해 복잡함

📃reference
https://www.freecodecamp.org/news/node-js-what-when-where-why-how-ab8424886e2/

🤔서버를 비동기식으로 구성하면 좋은 점이 뭘까요?

장: 하나의 요청을 처리함과 동시에 다른 요청도 처리할 수 있다.
단: 설계가 복잡하며 데이터의 정합성이 떨어질 수 있다.

📃비동기 모니터링
https://jennifersoft.com/ko/blog/tech/asynchronous-monitoring

간단하게 여기까지만 정리해 보긴 했는데
동기 비동기를 공부하면서 Thread, Promise등 비동기적 처리를 위해
봐야할 것들이 많음을 알게되었다. 이것도 차차 정리해보고자 한다.

profile
minj-j`s Development diary!

0개의 댓글