[네트워크] 동기 / 비동기

2023. 2. 7. 15:10기술 창고/네트워크

728x90
SMALL

동기 통신 (Synchronous)

동기란 태스크(작업)을 직렬적으로 수행하는 방식이다.

요청(Request)을 보내고 난 이후에 반드시 응답(Response)을 받아야 다음 동작이 이루어진다.

흔히 말하는 동기화라고 하는 것은 이러한 수행 방식 때문에 작업이 완료될 동안 나머지 작업은 대기한다라고도 말할 수 있다.

HTTP가 대표적인 동기방식 통신 프로토콜이다.

반드시 수행이 완료되고 난 이후에 다음 작업이 수행되기 때문에 속도가 느릴 뿐 더러 시스템의 전체적인 효율이 저하된다.

 

# 동기 방식

 

동기 통신을 실제 환경에서 예로 들자면 대표적으로 흔히 말하는 탁구를 예로 들을 수 있을 것이다.

서브(요청)를 해야지 상대방이 요청을 받고 리시브(응답)를 해줄 것이다.

이때 리시브가 정상적으로 반환될 때까지 서브를 날린 사람은 리시브가 올 때까지 다른 작업은 할 수 없고 기다리기만 할 수 있다.

결국에는 승패가 가려져서 한쪽이 이기고 다른 한쪽이 졌다는 결과가 동시에 일어날 것이다.

 

따라서 동기 방식이란, 

  1. 요청에 따른 응답이 와야지 다음 작업을 수행
  2. 최종적으로 결과가 산출될 때 클라이언트와 서버 양측에 동시에 산출

이렇게 간단하게 정리할 수 있을 것이다.

 

 

 

비동기 통신 (Asynchronous)

비동기 통신은 직렬적으로 수행하는 것이 아닌 병렬적으로 수행하는 방식이다.

요청(Request)을 보낸 후 응답(Response)의 여부와 상관없이 다음 작업이 동작한다.

작업이 수행되는 동안 다른 작업이 수행될 수 있으므로 자원을 효율적으로 사용할 수 있다.

비동기 요청 시 응답 후에 처리될 콜백 함수를 같이 알려준다.

따라서 작업이 완료되었을 때 콜백 함수가 호출된다.

# 비동기 방식

 

바동기 방식을 실제 환경에서 예로 들자면 자격증 시험을 예로 들 수 있을 것 같다.

자격증 시험을 보고 시험지를 제출하여 채점이 되고 합격 발표가 나오기 이전까지 시험을 본 사람은 게임을 하거나 다른 시험 공부를 하거나 할 수 있을 것이다.

 

따라서, 비동기 방식이란

한 요청에 따른 응답이 오기 전에 그 사이에 다른 요청에 대한 작업을 수행할 수 있다 라고 정리할 수 있을 것이다.

 

 

 

 

 

 

[도움받은 출처]

https://velog.io/@khy226/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0%EB%9E%80-Promise-asyncawait-%EA%B0%9C%EB%85%90

 

동기, 비동기란? (+Promise, async/await 개념)

1. 동기 vs. 비동기 우선 차이점 부터 설명하자면, 동기는 '직렬적'으로 작동하는 방식이고 비동기는 '병렬적'으로 작동하는 방식이다. 즉, 비동기란 특정 코드가 끝날때 까지 코드의 실행을 멈추

velog.io

https://private.tistory.com/24

 

동기와 비동기의 개념과 차이

데이터를 받는 방식인 동기와 비동기. 이 둘의 개념에 대해 설명하는 게시물은 매우 많은데 프로그래밍적으로 생각했을 때 이해가 가지 않아서 쉽게 이해를 할 수 있는 동기와 비동기의 예가 어

private.tistory.com

 

728x90
반응형
LIST

'기술 창고 > 네트워크' 카테고리의 다른 글

[네트워크] FTP / SFTP  (0) 2023.06.03
[네트워크] TCP - 3 way handshake / 4 way handshake  (0) 2023.01.09