Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Tags
more
Archives
Today
Total
관리 메뉴

ksw_devlog

동기 비동기 차이 본문

기술면접/기타

동기 비동기 차이

kimcoach 2023. 4. 20. 17:50

데이터 처리 모델

데이터 처리 모델을 쉽게 표현하자면 데이터를 받는 방식이라고 할수 있습니다.
이 방식에는 동기식 처리와 비동기식 처리 모델이 존재합니다.
이 둘의 개념에 대해 알아보고 둘의 차이점을 알아보겠습니다.


💡동기(synchronous)

  • 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는것을 말합니다.

요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다.

사용자가 데이터를 서버에게 요청한다면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 사용자는 다른 활동을 할 수 없으며 기다려야만합니다.

ex)
브라우저를 실행시키는 시간이 약 10분이 소모된다고 가정했을시, 브라우저가 실행되는10분이라는 시간 동안 사용자는 컴퓨터💻의 다른 프로그램들을동작시키지 못하며 브라우저가 켜지는 그 순간만을 계속 기다려야한다는 것입니다. 이 시간이 10분이든 100분이든 관계없이 한 개의 데이터 요청에 대한 서버의 응답이 이루어질 때까지 계속 대기해야만합니다.


🕯 비동기(Asynchronous)

  • 비동기는 동시에 일어나지 않는다는 의미입니다.
  • 요청한 결과는 동시에 일어나지 않을거라는 약속입니다.

서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도되며 다른 외부 활동을 수행하여도되고 서버에게 다른 요청사항을 보내도 상관없습니다


동기와 비동기의 장단점

💡 동기

장점 : 설계가 매우 간단하고 직관적이다.

단점 : 결과가 주어질 때까지 아무것도 못하고 대기해야 합니다.


🕯 비동기

장점 : 요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행할 수 있습니다.

단점 : 동기식보다 설계가 복잡합니다.


📝 정리

  • 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 목적의 차이 입니다.
  • 동기는 추구하는 행위 와 목적이 동시에 이루어지고,
  • 비동기는 추구하는 행위 와 목적이 다를 수도 있고, 동시에 이루어지지도 않습니다.

블록 과 논블럭의 차이

블록 과 논블럭은 동기, 비동기와 연결되는 개념입니다.

🧱 블록이란?

  • 블록이란 동기의 개념에서 만들어진 상태로

브라우저가(크롬) 실행되는 시간이 10분(요청)이라고 가정했을시에
브라우저가(크롬) 이 오픈(결과) 되기전까지 다른 브라우저(사파리 등등)은 계속 대기해야 하는 상태를 블록 상태라고 부릅니다.


⚙️ 논블록이란?

  • 논블록이란 비동기 개념에서 만들어진 상태로

브라우저가(크롬) 실행되는 시간이 10분(요청)이라고 가정했을시에
브라우저가(크롬) 이 오픈(결과) 되기전까지 다른 브라우저(사파리 등등)은 시간을 대기 하지 않고 제약없이 자유롭게 사용할수 있는 상황을 논블록 상태 라고 부릅니다.


📝 블럭과 논블럭 정리

  • 블록이란 동기의 개념에서 만들어진 상태
  • 논블록이란 비동기 개념에서 만들어진 상태

 

https://velog.io/@slobber/%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

동기와 비동기의 차이

오늘은 개발을 하다보면 자주 등장하는 동기와 비동기 개념에 대해 알아보겠습니다.

velog.io