Spring

비동기통신과 동기통신

block_626 2022. 4. 24. 14:36

동기(Sync)

  • 동기식 전송은 한 문자 단위가 아닌 미리 정해진 수 만큼의 문자열을 한 묶음으로 만들어서 일시에 전송하는 방법. 해당 방법에서 데이터와는 별도로 송신 측과 수신 측이 하나의 기준 클럭으로 동기신호를 맞춰 동작함

수신측에서는 클럭에 의해 비트를 구별하게 되므로, 동기식 전송을 위해서 데이터와 클럭을 위한 2회선이 필요.

송신측에서 2진 데이터들을 정상적인 속도로 내보내면 수신측에서는 클럭의 한사이클 간격으로 데이터를 인식

동기식 전송은 비동기식에 비해 전송효율이 높음

수식측에서 비트를 계산해야 하고 문자를 조립하는 별도의 기억장치가 필요해 비동기보다 가격이 높음

송신측에서 전송된 데이터를 수식측에서 정확히 수신하기 위해 보내는 측과 받는 측의 각 비트가 동일한 타이밍이 취해져야 하는데, 이때 송수신측의 타이밍을 일치시키는 것을 동기식 전송이라 함

 

비동기(Async)

  • 에디터 내에 동기신호를 포함시켜 데이터를 전송함. 송신 측의 송신 클럭에 관계없이 수신신호 클럭으로 타임 슬롯의 간격을 식별하여 한 번에 한 문자씩 송수신하고 이때 문자는 7~8비트로 구성되며 문자 앞에는 시작비트, 끝에는 정지비트를 첨가하여 보내는 방법

비동기식 전송은 시작비트와 정지비트 사이의 간격이 가변적이므로 불규칙적인 전송에 적합

필요한 접속장치와 기기들이 간단하므로 동기식 전송 보다 장비가 싸다는 장점

송수신간 동기를 맞추지 않고 문자단위로 구분하여 전송하는 방식은 비동기식 전송



 

 

동기(synchronous : 동시에 일어나는)

- 요청을 하면 (바로) 응답을 받는다는 의미. 말 그대로 동시에 일어난다는 뜻. 요청과 그 결과가 동시에 일어난다는 약속. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다.

-> 요청과 결과가 한 자리에서 동시에 일어남.

-> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다.

 

비동기(Asynchronous : 동시에 일어나지 않는)

- 동시에 일어나지 않는다를 의미. 요청과 결과가 동시에 일어나지 않을거라는 약속이다. 요청과 응답이 다른 시간대 존재하기 때문에, 요청내용에 대해 지금 바로 혹은 당장 응답받지 않아도 된다. (바로 응답이 와도 되고!)

-> 요청한 그 자리에서 결과가 주어지지 않음.

-> 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.

 

동기와 비동기 장단점

 

'Spring' 카테고리의 다른 글

Get과 Post  (0) 2022.04.24
파일 업로드 이해하기  (0) 2022.04.24
Ajax와 xmlhttprequest  (0) 2022.04.24
페이징처리  (0) 2022.04.24
HttpServletRequest과 HttpServletResponse  (0) 2022.04.24