[jQuery] JSONP와 콜백 함수의 동작 과정

웹 개발을 하다 보면 jQuery를 사용하여 원격 서버에서 JSON 데이터를 가져와야 하는 경우가 종종 있습니다. 그런데, 보안 정책으로 인해 동일 출처 정책(Same Origin Policy) 때문에 서로 다른 도메인 간에는 AJAX로 직접 데이터를 주고받을 수 없습니다. 이때 JSONP(JSON with Padding)콜백 함수(Callback Function)을 사용하여 이러한 제한을 우회할 수 있습니다.

JSONP란 무엇인가?

JSONP는 JSON 데이터를 동적으로 가져오는 방법 중 하나로, 웹 페이지에서 도메인 간 데이터 교환을 허용하기 위해 사용됩니다. JSONP는 HTML <script> 태그를 사용하여 외부 도메인에서 데이터를 로드합니다. JSONP 요청에는 서버에서 JSON 데이터를 둘러싼 콜백 함수 이름이 포함되어 있습니다.

콜백 함수란?

콜백 함수는 다른 함수의 인자로서 전달되는 함수를 말합니다. JSONP에서 콜백 함수는 원격 서버로부터 데이터를 받아서 처리하는 역할을 합니다. 콜백 함수는 클라이언트 측에서 정의되어 있어야 하며, JSONP 요청을 보내기 전에 이미 정의되어 있어야 합니다.

JSONP와 콜백 함수의 동작 과정

  1. 클라이언트가 JSONP 요청을 보냅니다.
  2. 서버는 JSONP 요청을 받아서, 요청된 데이터를 지정된 콜백 함수로 둘러싸서 응답합니다.
  3. 웹 페이지는 지정된 콜백 함수를 호출하여 응답된 데이터를 처리합니다.
// JSONP 요청 예제
$.ajax({
    url: 'http://example.com/data.json',
    dataType: 'jsonp',
    jsonpCallback: 'callbackFunction',
    success: function(response) {
        // 데이터 처리 로직
    }
});

결론

JSONP와 콜백 함수를 사용하면 동일 출처 정책으로 인해 서로 다른 도메인 간에도 데이터를 교환할 수 있습니다. 하지만 보안상의 이유로 JSONP는 많은 위험성을 가지고 있으므로, 사용 시에는 신중을 기해야 합니다.

위 내용은 JSONP와 콜백 함수가 동작하는 전반적인 과정에 대한 간략한 설명이며, 보다 자세한 정보가 필요하다면 jQuery 공식 문서 또는 다른 신뢰할 수 있는 출처를 참고하시기 바랍니다.

JSONP Official Documentation

이상으로 JSONP와 콜백 함수의 동작 과정에 대한 내용을 정리해 보았습니다. 추가 질문이 있으시다면 언제든지 물어보세요!