소셜네트워크(SNS, 사회관계망서비스)의 오픈API를 활용해 로그인 기능을 구현하거나 댓글 및 다양한 서비스의 제공이 가능합니다. 이런 서비스를 구현하기 위해 페이스북이 제공하는 SDK의 사용이 필요한데 일반적으로 많이 사용되는 방법으로 자바스크립트 SDK가 많이 쓰이고 PHP를 기반으로 하는 웹서버의 경우 PHP SDK 역시 많이 사용됩니다.


# PHP와 자바스크립트 SDK 중 더 효과적인 방법은? Facebook API를 사용하려면 먼저 Facebook에서 제공하는 SDK가 필요합니다. SDK는 간단한 자바스크립트 코드로 특정 위치에 코드를 삽입, 추가하면 해당하는 기능을 사용할 수 있습니다. 만약 현재의 서버환경이 PHP인 경우... 자바스크립트와 PHP 어떤 것이 더 나은 선택일까요?

! 검색 그리고 또 검색...
저 역시 둘 중 어떤 방법이 효과적일지 알아보기 위해서 적용 이전에 많은 검색.. 구글링을 해봤습니다~ 결론은 무엇이 더 좋다 나쁘다 하기 어렵더군요. 무엇을 선택하던 차이는 서버사이드나 클라이언트냐의 차이일 뿐입니다.

그래도 더 나은 방법이 필요하겠죠? 둘 중에 무엇이 좋을 것이라는 상반된 의견은 다수 찾을 수 있습니다. PHP SDK의 경우 아무래도 서버사이드에서 돌아가기 때문에 클라이언트에서 접근 가능한 부분이 한계가 있고 보안적인 측면에서 유리할 수 있다는 장점이 있습니다. 하지만 나중에 다른 서버 언어를 사용하는 경우? 이를 사용 또는 활용할 방법이 없으므로 자바스크립트 SDK를 통한 방법이 혹시 모를 서버 이전 또는 호환성 측면에서 유리할 수 있을 것입니다.

! 더 간단한 적용방법도 고려할 것
또 다른 고민은 아무래도 소스 코드를 얼마나 쉽게 구현할 수 있느냐의 여부입니다.(시간 및 어려움) 자바스크립트로 구현할 경우 api가 필요한 모든 페이지에 sdk와 관련 코드를 반복하여 사용해야하므로 번거로울 수 있습니다. 물론 개별 페이지에 import하는 방식을 사용할 수 있으나 제외할 페이도 고려해야하겠죠... 그리고 비동기식이다보니 로그인 정보의 반응이 즉시 이루어지지 않는 단점도 존재합니다.

* 반면 서버에서 구현하는 방법
서버단에서의 구현.. 즉 php sdk를 사용하는 경우 세션을 사용하는 경우 전페 페이지에서 글로벌함수로 접근이 가능하므로 크게 어렵지 않겠죠. 또한 비동기 방식이 아니므로 페이지 로딩과 함께 빠르게 적용될 수 있을 것입니다.


! 장단점의 요약 한 눈에 보기
* Javascript SDK
- 서버 언어를 다른 언어로 바꿀 경우에도 계속 적용할 수 있음. 호환성 유리
- 일반적으로 자바스크립트 SDK가 많으므로 함께 사용시 유리함
- 비동기식이라 처음 로딩시 조금의 지연시간이 있음
- 필요한 페이지에만 각각 SDK를 적용해야 함

* PHP SDK
- 서버 언어에 적용하므로 페이지 로딩과 함께 SDK 로딩이 가능
- 간단히 전체 페이지에 적용할 수 있음


사진) 페이스북 사이트 SDK

# 마치면서 제 경우 자바스크립트와 PHP 둘다 사용했었으나 지금은 자바스크립트 SDK를 사용해 로그인 및 기타 API를 활용하는 쪽으로 방향을 잡았습니다. PHP의 경우 현재 제공되는 API 버젼 4.0의 경우 PHP 5.5 이상이 필요하기 때문에 호스팅 제공업체에서 최신 버젼 사용이 가능한지를 체크할 필요가 있습니다. 이하 버젼이라면 3.2 버젼을 사용해야 하면 이 버젼은 Deprecated되어 가급적 4.0 버젼을 사용하는 것이 좋다는 점 알려드립니다. (참고로 고대디 호스팅의 경우 php버전을 5.6까지 사용자가 강단하게 설정 이 가능합니다)

아래는 페이스북 연동에 필요한 페이스북 개발자 사이트 링크입니다. 혹시 필요한 정보는 아래 링크에서 더 자세한 정보를 얻으시기 바랍니다.

Facebook SDK for Javascript 바로가기 >
Facebook SDK for PHP 바로가기 >