ETC

동기와 비동기

MuGrammer 2013. 3. 31. 17:08

한 줄 요약.

동기는 순차적인 진행, 비동기는 순차적이지 않은 진행. 


일반적으로 프로그램은 소스코드의 순서대로 진행된다. 위에서 아래로. 좌에서 우로. 이를 동기화 방식이라 한다. 


비동기는 '콜백'이란걸 두어 일단 진행은 하되 결과는 나중에 처리할 수 있게 하는 것이다. 


직장에서도 일처리하는 방식을 순서대로 진행하다 하나가 막히면 더 이상 진행하지 못하는 사람이 있는 반면..

이것했다가 저것했다가 어떻게든 일이 돌아가게 하는 사람이 있다. 

어느 사람이 더 유능할까? 

막히지 않는다면 순서대로 일을 진행하는 사람이 더 유능할 것 같은데. 

현실은 여러 변수상황이 놓여있으니 이것저것 하는 사람이 더 유능하게 평가받는게 현실이다. 맘처럼되는 세상이 어딨던가. ㅋ


Ajax에서는 기본적으로 비동기를 쓴다. 

요청을 보내고 그에 대한 응답이 왔을 경우에 반응할 수 있도록 콜백을 등록한다. 그리고 실제 응답이 왔을 때 그 후의 로직이 실행되어진다. 


var xmlhttp = new XMLHttpRequest();

xmlhttp.Open("GET", "/request.html", true);


// 콜백함수 등록

xmlhttp.onreadystatechage = function(){

  if(xmlhttp.readyState == 4){

    if(xmlhttp.status == 200){

      handleResponse(xmlhttp.responseXML);  // 응답을 통해 xml데이터를 수신

    }

  }

}


xmlhttp.send(null);


// 콜백함수 구현

function handleResponse(responseXML)

{

  document.getElementById("div_result").innerHTML = responseXML.firstChildNodes.item(0).nodeValue;

}


반응형

'ETC' 카테고리의 다른 글

MongoDB 개요  (0) 2013.08.18
onCreate  (0) 2013.04.02
통기타관련 사이트  (0) 2013.03.03
Subversion 왜 이리 말썽이냐.  (0) 2013.01.22
alert 창 한글깨짐  (0) 2013.01.21