본문 바로가기
개발/Web

[Web] 동기 방식과 비동기 방식의 차이점

by zuzuu 2022. 5. 4.
반응형

 

 

동기(synchronous) 방식

요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다.

  • 요청과 결과가 한 자리에 동시에 나타나는 것으로 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다려야 한다.
  • 특정 프로그램을 구동시키는 데 시간이 5분 소요된다고 하면, 이 프로그램이 구동되는 5분동안 컴퓨터는 다른 프로그램을 동작시키지 못하고, 구동되기를 기다려야 한다.
  • 장점 :  설계가 간단하고, 직관적이다.
  • 단점 : 요청에 대한 결과가 반환되기 전까지 대기해야 한다.

 


 

비동기(Asynchronous) 방식

요청과 결과가 동시에 일어나지 않는 방식으로 요청과 결과가 동시에 일어나지 않는다.

  • 요청한 곳에 결과가 나타나지 않으며, 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 기다리지 않고, 다른 것을 수행할 수 있으며 서버로 다른 요청을 보낼 수도 있다.
  • 특정 프로그램을 구동시키는 데 시간이 5분 소요되어도 그 시간동안 다른 프로그램을 수행할 수 있다. 
  • 장점 : 요청에 대한 결과가 반환되기 전에 다른 작업을 수행할 수 있어서 자원을 효율적으로 사용할 수있다.
  • 단점 : 동기 방식보다 설계가 복잡하고, 논증적이다.

 

비동기 방식 예제 

1.학생은 시험 문제를 푼다.

2.문제를 푼 학생은 선생에게 자신이 푼 시험지를 건낸다.

3.선생은 학생으로 부터 받은 시험지를 채점한다.

4.채점이 다 된 시험지를 학생에게 전송한다.

5.학생은 선생이 전송한 시험지를 받아 자신의 시험 결과를 확인한다.

 

학생과 선생은 시험지라는 연결고리가 있지만 시험지에 행하는 행위(목적)은 서로 다르다. 학생은 시험지를 푸는 역할을 하는 반면 선생은 시험지를 채점하는 역할을 한다.

서로의 행위(목적)은 다르기때문에 둘의 작업 처리기간은 일치하지 않고, 일치하지 않아도 된다.

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


이 비동기 방식 예제를 통해 블록과 논블록의 차이를 간략히 설명해보자!

학생이 시험지를 선생에게 건낸 후 채점이 완료된 시험지를 돌려받기만을 기다린다면 학생은 블록 상태이다.

하지만 채점이 완료된 시험지를 돌려받기 전까지 다른 과목을 공부한다거나 다른 일을 하게 되면 학생은 논블록 상이다.

728x90
반응형

댓글