308
한 권으로 끝내는 Node & Express
다면 반드시 핀터레스트를 지원하고 싶을 겁니다. 실소할 수도 있겠지만, 필자는 마이스페이스
MySpace
도 분명 다시 부활할 거라 믿습니다. 마이스페이스는 사이트를 재설계하는 중인데, 노드
를 사용해 만들고 있다니 흥미롭습니다.
19.1.1.
소셜 미디어 플러그인과 사이트 성능
소셜 미디어 통합은 대부분 프론트엔드 쪽 작업입니다. 페이지에 있는 자바스크립트가 들어오
는 콘텐츠(예를 들어 페이스북에 뜬 인기 글 세 개)와 나가는 콘텐츠(예를 들어 현재 페이지
를 트윗)를 모두 처리합니다. 이 방법이 소셜 미디어를 통합하는 가장 쉬운 방법이기는 하지만
대가가 있습니다. 필자는
HTTP
요청이 늘어나면서 로딩 시간이 두 배, 세 배로 늘어나는 페이
지를 여러 번 봤습니다. 페이지 성능이 중요하다면(특히 모바일 사용자에게 중요합니다) 소셜
미디어를 어떻게 통합할지 주의 깊게 생각해야 합니다.
그렇긴 하지만, ‘좋아요’ 버튼이나 ‘트윗’ 버튼 구현에 필요한 코드는 브라우저 쿠키를 보내야만
동작합니다. 이 기능을 서버 쪽으로 옮기기란 대단히 어렵고 불가능할 때도 있습니다. 따라서
이 기능이 필요하다면 적절한 타사 라이브러리를 링크하는 게 가장 좋은 옵션이며 페이지 성능
에 영향이 있더라도 감수해야 합니다. 그나마 다행인 것은 페이스북과 트위터
API
는 아주 널리
쓰이므로 브라우저가 이미 이 라이브러리를 캐시하고 있을 가능성이 높고, 따라서 성능에 미치
는 영향은 그리 크지 않을 거라는 점입니다.
19 ...