지난번 토크 스루 (Talk through)에 나왔던 슬라이드쇼 JS 라이브러리를 웹페이지에 포함시킬 때, 이 URL을 입력했습니다: https://cdn.rawgit.com/pamelafox/a8b77c43f56da1753348/raw/slideshow.js
이 URL은 "절대" URL입니다. 해당 URL 이 프로토콜과 도메인을 포함한다는 뜻입니다. 만약 JS 라이브러리를 칸 아카데미 환경에 포함시킨다면, 환경이 라이브러리의 전체 경로를 알수 있도록 하기 위해서 반드시 절대 URL을 사용해야 합니다.
If you were working on a webpage on your own computer and you had all the files downloaded, then you could use a "relative" URL instead, like simply slideshow.js or lib/slideshow.js if it was inside a folder named lib. When you're working locally, make sure you open up your browser's network panel to make sure it found all the local resources like your JS files and CSS files. If the browser couldn't find a resource, you'll see a 404, and you can debug the URL and file location.
이제 다시 이 URL 을 살펴봅시다: https://cdn.rawgit.com/pamelafox/a8b77c43f56da1753348/raw/slideshow.js
프로토콜은 https 입니다. 보안된 URL 이라는 뜻입니다. 여러분이 칸아카데미 웹 페이지에 검증된 리소스만을 갖고올 수 있도록 하며, 이것이 웹 개발을 할 때 가장 좋은 습관입니다. 아직 모든 서버가 가용한 SSL을 갖고 있는 것이 아니기 때문에, 프로젝트에서 종종 http로 시작되는 URL을 갖게될 수도 있습니다.
서버는 cdn.rawgit.com인데, 이는 "CDN" - "content delivery network" 의 한 예입니다. CDN 은 JS 라이브러리와 같은 정적 파일을 제공하는데 최적화되어 있으며 그 파일들을 매우 빠르게 제공합니다. 여러 JS 라이브러리들을 제공하는 (Google's CDNcdnjs와 같은) 몇 가지 큰 CDN 들이 있고, 자기 자신 전용의 CDN 을 갖고 있는 라이브러리들도 몇 존재합니다.
웹 페이지에 CDN을 이용해 JS 라이브러리를 가져왔을 때 -- 또는 자기 소유가 아닌 서버로부터 가져왔을 때 -- 이용하는 서버를 믿어야만 합니다. 악의적인 서버는 JS 라이브러리를 이용자 데이터를 훔치고 어딘가로 전송하는 코드로 대체할 수도 있는데, 분명 그런 일이 일어나길 원치 않겠죠!
칸아카데미에서는, 오직 신뢰할 수 있는 서버로부터만 웹 페이지 환경에 리소스를 가져올 수 있도록 CSP 라고 불리는 보안 메커니즘을 사용합니다: bootstrapcdn.com, rawgit.com, googleapis.com, jsdelivr.net, cdnjs.com.
웹 사이트를 만들 때 JS 라이브러리를 자신의 서버에서 제공할 것인지 또는 외부 CDN 으로부터 포함시킬지 결정할 필요가 있습니다. 대부분의 큰 웹 사이트들은 라이브러리를 자신의 서버에서 제공합니다. 이는 더 많은 컨트롤을 가능하게 하고, 더 나은 로딩 성능을 위해서 여러 라이브러리를 단일 JS 라이브러리 파일로 결합하는 등의 최적화 작업을 가능케 합니다. 이것은 전적으로 개발자에게 달린 일입니다. 다만 여기서 다뤄본 내용을 기억하세요!