동기, 비동기 통신에 대해서 알아보자

송기훈·2023년 7월 16일
0

컴퓨터가 통신하는 방법은 크게 직렬 통신/병렬 통신, 동기 통신/비동기통신으로 구분되는데요. 오늘은 동기 통신과 비동기 통신에 대해서 알아보는 시간을 가져보겠습니다.

출처 : https://khj93.tistory.com/entry/네트워크-Synchronous동기식-통신과-Asynchronous비동기식-통신이란

🍎동기(Synchronous) 통신

Synchronous : 동시 발생하는

동기 통신의 경우 뜻 처럼 요청과 응답이 동시에 일어난다는 뜻입니다.
여기에서 '동시에 발생한다'라는 것은 Request를 보내게 되면 시간이 얼마나 걸리든 그 자리에서 Response를 받는다는 의미입니다.
즉, '두 서버 사이의 Transaction을 맞추겠다.' 라는 뜻 입니다.

동기 통신의 가장 대표적인 것이 폼(Form) 제출입니다.

그렇다면 동기 통신의 장점과 단점에 대해서 알아 보겠습니다.

🍎동기(Synchronous) 통신 장점

  1. 설계가 매우 간단하고 직관적입니다.
  2. Request와 Response 연결되어 있어 응답에 대한 순서를 보장할 수 있고 에러 발생시 에러에 대한 처리가 쉽습니다.

🍎동기(Synchronous) 통신 단점

  1. Request를 보낸 Thread는 Response가 도착하기 전까지는 Block상태가 됩니다.
    즉, 명령이 끝날 때까지 사용자에게 제어권을 돌려주지 않습니다.
  2. 전체 페이지를 다시 로딩하기 때문에 서버와의 통신량이 많아지고, 자원의 낭비가 될 수 있고, 웹 페이지의 성능을 저하시킬 수 있습니다.

🍏비동기(Asynchronous) 통신

Asynchronous : 동시에 발생하지 않는
비동기 통신의 경우도 뜻 처럼 요청과 응답이 동시에 일어나지 않는다는 뜻입니다.
여기에서 '동시에 발생하지 않는다'라는 것은 Requset를 보냈지만 Response를 언제 받아도 상관 없다는 것을 의미합니다.

비동기 통신의 가장 대표적인 것은 제이쿼리의 AJAX입니다.

비동기 통신의 장,단점에 대해서 알아 보겠습니다.
동기 통신의 장점이 비동기 통신의 단점이되고,
동기 통신의 단점이 비동기 통신의 장점이 됩니다.

🍏비동기(Asynchronous) 통신 장점

  1. 웹 페이지의 성능을 향상시킬 수 있습니다.
  2. 서버의 리소르를 효율적으로 활용, 관리 할 수 있습니다.

🍏비동기(Asynchronous) 통신 단점

  1. Requset와 Response가 연결 되어 있지 않기 때문에 에러 발생시 에러에 대한 대처가 어려울 수 있습니다. 비슷한 이유로 보안 상의 문제가 발생할 수 있습니다.
  2. 설계가 상대적으로 복잡합니다.

🥝알아두면 좋은 것!

Block상태

Requset를 보낸 Thread는 Response가 도착하기 전까지 아무것도 하지 못하는 상태를 Block상태라고 합니다.

Non-Block상태

Requset를 보내고 Response를 기다리지 않고 다른 일을 하는 상태를 Non-Block상태라고 합니다.

인터페이스 구현이란?

송수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업을 의미힙나다.
대표적인 인터페이스 구현 방법으로는 1.데이터 통신을 이용한 인터페이스 구현과 2.인터페이스 엔티티를 이용한 인터페이스 구현이 있습니다.

XML(eXtensible Markup Language)

XML은 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어입니다.

AJAX(Asynchronous JavaScript and XML)

  • 자바 스크립트를 사용하는 클라이언트와 서버 간에 XML 데이터를 주고 받는 비동기 통신 기술입니다.
  • 전체 페이지를 새로 고치지 않고도 웹 페이지 일부 영역만을 업데이트 할 수 있습니다.

JSON(JavaScirpt Object Notation)

  • 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성 값의 쌍(Attribute - Value Pairs)형태로 표현하는 개방형 표준 포맷입니다.
  • 비동기 처리에 사용되는 AJAX에서 XML을 대체하여 사용되고 있습니다.
profile
하루 하루 성장하는 코린이 블로그입니다.

0개의 댓글