본문 바로가기

🏁 Product/⌨️ Programming

[ IT 용어 ] 동기화 vs 비동기화

반응형

 

 

자바와 자바스크립트에서 동기화와 비동기화의 차이

 

 

https://www.mendix.com/blog/asynchronous-vs-synchronous-programming/

 

동기 (Synchronized)
비동기 (Asynchronized)
어느 메소드가 실행하는 동안 다른 메소드 실행이 불가능하도록 블락하는 것을 의미
어느 메소드를 실행하는 도중에도 다시 메소드를 실행하는 것이 가능

Java
1. 수신자데이터 ↔ 송신자 데이터
2. 송신자데이터 ↔ 수신자 데이터
수신자가 어떤 데이터를 보낼 지 예상한 상태여야 가능
1. 수신자 데이터  수신자의 반응
2. 송신자의 답변   진행
즉, 수신자가 어떤 데이터를 보낼 지 예상 못하는 상태
서버와 클라이언트가 주고받는 것이 동시에 이루어짐 서버와 클라이언트가 주고받는 것이 동시에 이루어지지 않음
시스템의 일치가 필요(쉽지만 비쌈) 시스템의 일치가 필요하지 않음(어렵지만 싸다)
수신중에는 다른 매체 사용불가로 대기시간동안 버퍼링이 발생 수신하는 동안 다른 작업 실행 가능하며 버퍼링이 적음
시간적인 동기화가 필요한 곳에 주로 사용(현금인출기) 반응이 빠르므로 여러 방면에서 사용 가능
- 서버로부터 데이터를 미리 셋팅하는 경우
- 문제 발생 시 별도 실행이 필요한 경우
Java Script
요청에 대한 응답 결과 출력 후 다음 동작이 순서대로 실행되는 방식 요청 결과 응답과 별개로 다음 동작이 실행되는 방식
자바스크립트는 단일 쓰레드임.
그러나 동시에 동작하는 것처럼 보이게 하는 것이 비동기 방식
- 한 자원에 대헤 동시 접근하는 것을 제한하는 방식
- 클라이언트가 서버에 데이터를 요청하고 응답을 기다리는 동안 작업이 멈추고 기다려야 함
- 현재 실행중인 명령이 있어도 다음 명령을 실행가능한 방식
- 클라이언트가 서버의 응답을 기다리는 동안 다른 일 진행 가능
- 따라서 클라이언트가 편리하고 빠르게 작업할 수 있는 것처럼 느낌

 

 

 

 

 

 

 

 

 

 

 

참고 링크 :https://www.mendix.com/blog/asynchronous-vs-synchronous-programming/

 

 

반응형