<당연히 알지만 다시 알고가자>
클라이언트(Client): 서버로 접속하는 컴퓨터, 보통 우리의 컴퓨터라고 해도 무방하다.
서버(Server): 서버는 무언가(서비스, 리소스 따위)를 제공하는 컴퓨터
- 동기(synchronous): 클라이언트에서 서버에 자료를 요청하고 서버에서 자료를 줄 때까지 기다린다.
- 비동기(asynchronous): 클라이언트에서 서버에 자료를 요청하고 서버에서 자료를 추출하는 동안 클라이언트는 기다리지 않고 할 일을 계속해서 한다.
동기와 비동기를 나타내는 그림(위의 사진첨부), 동기와 비동기에 대해서는 아래의 글에서 쉽게 설명해본다.
<가장 큰이유는 속도>
동기 프로그래밍은 기능을 요청을 한 후, 요청이 끝날 때까지 무작정 대기를 해야 하지만 비동기 프로그래밍은 기능을 요청을 한후, 다른 작업을 하고 있다가 끝났다는 이벤트를 받고 난 후 이후의 처리를 하면 되기 때문에 비동기 프로그래밍이 동기프로그래밍 보다 빠름. (특히 DB 호출이 잦은 경우)
1 function test(callback){
2 callback();
3 }
4
5 test(function(){
6 console.log("콜백");
7 })
8 // "콜백"
9
1 function loading(path, finish){
2 console.log("파일경로", path);
3 finish(path + "엑셀파일");
4 }
5
6 loading("/folder/test", function(result){
7 console.log("완료", result);
8 })
9
10 // 2번 줄: "파일경로" "/folder/test"
11 // 7번 줄: "완료" "/folder/test/엑셀파일"
12