자바스크립트 예제로 살펴보는 JSONP의 기본원리

JSONP는 한 웹페이지에서 도메인이 다른 웹페이지로 데이터를 요청할 때 사용하는 자바스크립트 개발 방법론입니다.

기본적으로 웹 브라우저는 도메인이 다른 웹 페이지로는 Ajax 등의 방법으로 접근하지 못하게 제한하고 있는데, 이것을 동일출처원칙(Same-origin policy)이라고 합니다. 그러나 실무에서는 부득이 다른 도메인에 연결된 서버로 데이터를 요청해야만 하는 상황을 만나게 됩니다. JSONP는 바로 이러한 경우에 동일출처원칙을 회피하는 일종의 편법 입니다.

JSONP는 동일출처원칙을 회피하기 위해 <script> 요소를 이용합니다. 본래 자바스크립트에서는 Ajax를 비롯한 어떠한 방법으로도 직접 다른 도메인의 웹페이지로 데이터를 요청할 수 없습니다. 그러나 <script> 요소는 도메인이 다른 스크립트 파일이라 하더라도 임베드할 수 있기 때문에, 이 성질을 이용하는 것입니다.

국내 웹에서 JSONP에 대해 검색을 하면, jQuery를 사용하여 간편하게 JSONP를 구현한 방법을 소개하는 포스팅이 주류를 이루고 있습니다. 이 방법은 Ajax를 구현할 때와 유사한 방식으로 쉽고 간편하게 JSONP를 구현할 수 있게 해주지만, 한편으로는 JSONP의 기본원리에 대해서는 소홀하게 만드는 양면성을 가지고 있습니다.

금번 포스팅에서는 JSONP의 기본원리를 설명하기 위하여, 순수 자바스크립트로 JSONP를 구현한 예제코드를 소개합니다. 또한 Ajax와의 비교를 통해 JSONP의 효용과 한계에 대해서 짚어볼 것입니다. 마지막으로 실무에서 활용하기 좋은 jQuery에서의 JSONP 구현방법까지 살펴보고 나면 글을 마치게 될 것입니다.

Continue reading

PHP에서 try-catch 구문을 통한 예외처리와 확장방법

try-catch문은 프로그램 실행 중 예외가 발생했을 때, 개발자가 이를 직접 처리할 수 있도록 제공하는 구문입니다. C++이나 Java 등의 언어에 등장한지는 제법 시간이 흘렀지만, PHP에서는 5.1.0 버전에 들어와서야 사용할 수 있게 되었습니다.

예외(Exception)특별한 처리가 필요한 이례적인 상황을 이야기합니다. PHP를 기준으로 하면, $_POST 파라메터로 받은 어떤 값이 나눗셈에서 분모로 들어가는 소스코드를 예로 들 수 있겠습니다. 이러한 코드에서 $_POST 값이 0인 상황이 벌어지면, 해당 값을 별도의 값으로 치환하거나 이전 웹페이지로 되돌려보내 사용자의 새로운 입력을 요구한다던가 하는 특별한 처리가 필요할 것입니다.

기본적으로 예외처리는 if-else문 만으로도 가능합니다. 그러나 예외가 발생했을 때의 처리방법에 일관성이 있을 때는 try-catch문을 사용하여 무척 간결한 코드를 작성할 수 있습니다. 금번 포스팅에서는 간단한 예제를 통해서 try-catch문의 기본적인 성질과 사용법, 확장방법에 대하여 설명합니다.

Continue reading

한국 웹 20주년 컨퍼런스 – 참관후기 및 청취세션 다이제스트 #3

지난 포스팅에서 소개한 한국 웹 20주년 국제 컨퍼런스의 오후 세션 5개에 이어, 이번 포스팅에서는 마지막 4개의 세션에 관하여 다룹니다. 첫 포스팅에서 말씀드렸던 것과 같이, 이 포스팅의 내용은 발표 전체의 흐름 또는 발표자의 의도와는 다를 수 있습니다.

Continue reading

한국 웹 20주년 컨퍼런스 – 참관후기 및 청취세션 다이제스트 #2

지난 포스팅에 이어서, 이번 포스팅에서는 한국 웹 20주년 국제 컨퍼런스의 오후 세션들 중에서 제가 청취한 세션 중 앞에서부터 5개의 세션에 관하여 다룹니다. 지난 포스팅에서 언급하였던 이유로, 이 포스팅의 내용은 발표 전체의 흐름 또는 발표자의 의도와는 다를 수 있습니다.

Continue reading

한국 웹 20주년 컨퍼런스 – 참관후기 및 청취세션 다이제스트 #1

대한민국에 웹(Web)을 소개한 주역들이 20년만에 모여 조직한 한국 웹 20주년 국제 컨퍼런스가 지난 10월 17일 세종대학교에서 있었습니다. 2014년의 IT 업계는 빅데이터에 대한 열기가 진정세를 보이면서 큰 이슈 없이 조용히 지나가는 분위기였는데요, 하반기에 이렇게 대규모 컨퍼런스가 열리면서 아쉬움을 달래주네요.

한국 웹 20주년 국제 콘퍼런스: 오전 해외 패널 인터뷰 현장

한국 웹 20주년 국제 컨퍼런스: 오전 해외 패널 인터뷰 현장

금번 행사는 트랙 3개가 동시에 진행되는, 비정기 컨퍼런스치고는 상당히 큰 규모로 열렸습니다. 연사들 중에는 CSS 창시자 호콘 뷔움 리, 자바스크립트 창시자 브렌던 아이크 등, 평생에 다시 현장강의를 들을 수 있을까 싶은 분들도 다수 있었습니다. 개인적인 견해입니다만, 내용면에 있어서도 그동안 제가 참관해왔던 콘퍼런스들과 비교할 때 높은 퀄리티를 보여주었다고 평가하고 싶습니다.

이번 포스팅에서는 금번 행사에서 제가 청취했던 세션들의 내용 중 제가 관심있게 보았던 내용을 간추리고, 그에 대하여 제가 어떤 의미를 부여했는지에 관하여 이야기하고자 합니다. 다만, 현장에서 메모할 때는 저에게 인상적이었던 부분을 중심으로 선별적으로 정리하였고 세션 또한 제 흥미를 좇아 찾아갔기 때문에, 이 포스팅의 내용은 발표 전체의 흐름 또는 발표자의 의도와는 다를 수 있음을 알려드립니다.

Continue reading