본문 바로가기
Programming/Javascript

자바스크립트 콜백, 비동기처리. 비동기 콜백

by Saans 2022. 2. 6.

변수, 함수의 매개변수, 리턴값의 다양한 용도로 사용될 수 있는 데이터를

프로그래밍에서 first-class citizen/object 라고 부른다.

자바스크립트의 함수가 이에 해당됨.

 

- 콜백 : 어떤 함수가 수신하는 인자가 함수인 경우

함수를 값으로서 사용할 수 있으니까 오리지널 함수의 동작방법을 값(함수)을 전달하는 것으로 바꿀 수 있다.

콜백은 자바스크립트에서 함수가 값이기 때문에 가능한 것

 

- 비동기처리 

글작성> 이메일발송> 작성완료 순차적 진행:3시간 걸림    =>동기적 처리

이메일 발송 예약 (발송은 프로그램이 백그라운드 실행)/to do (지금은 아니어도 앞으로 할 일을 기록해두고 나중에 처리하듯)     => 비동기적 처리

 

Ajax(Asynchronous Javascript and XML)  :

화면 전체를 불러오는게 아니라 웹페이지가 변경되지 않고 서버와 브라우저가 내부적으로 조용히 통신하는 기능

화면의 일부만을 불러오는게 가능하기 때문에 사용자는 화면 내의 다른 작업을 할 수 있음.

브라우저마다 사용 방법이 다름

 

비동기적 제어, 통신 

 

<<<집중 아 주 중 요>>>

누가 ajax를 부르건 서버에서 정보를 가져오는 행위 자체는 같음

이같은 부분은 get이라는 메소드가 알아서 처리.

 

정보를 가져온 다음 무슨 일을 해야할 것인가는 같지 않음 >비지니스 로직

같지 않기 때문에 사용자에게 위임해야함

위임하는 기법 : 콜백 함수를 통해 인자를 전달받는 것

함수를 인자, 매개변수의 값으로 전달하는 것을 통해

get이라는 메소드가 동작하는 방법을 완전히 바꿀 수 있음

 

/* 내 말 정리

ajax는 화면전체를 불러오는게 아니라 일부만 불러올 수 있는데 그걸 비동기적 제어, 통신이라함

정보를 그냥 불러오는건 누가 해도 상관없으니까 메소드가 알아서 처리함

근데 정보를 가져온 다음에 무슨일을 할지는 사용자한테 위임해야함

(사용자가 홈페이지와의 상호작용하는거임 로그인하든 검색해서 뭘 찾든 뭘 추가하든)

이 위임하는 기법이 '콜백 함수를 통해서 인자를 전달받는거'임

콜백은 자스에서 함수는 값으로 사용될 수 있으니 그걸로 오리지널 함수의 동작방법을 바꾸는거임 

메소드의 동작방법을 바꿔 사용자에게 정보처리방식을 위임가능

이게 비동기 콜백 */

 

 

출처 _ 생활코딩

값으로서의 함수와 콜백 - 생활코딩 (opentutorials.org)

댓글