싱글 페이지 애플리케이션

싱글 페이지 애플리케이션(single-page application, SPA, 스파)은 서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 다시 작성함으로써 사용자와 소통하는 웹 애플리케이션이나 웹사이트를 말한다. 이러한 접근은 연속되는 페이지들 간의 사용자 경험의 간섭을 막아주고 애플리케이션이 더 데스크톱 애플리케이션처럼 동작하도록 만들어준다. SPA에서 HTML, 자바스크립트, CSS 등 필요한 모든 코드는 하나의 페이지로 불러오거나, 적절한 자원들을 동적으로 불러들여서 필요하면 문서에 추가하는데, 보통 사용자의 동작에 응답하게 되는 방식이다. 문서는 프로세스 중 어떠한 지점에서도 다시 불러들이지 않으며 다른 문서로 제어권을 넘기지 않으나, 위치 해시나 HTML5 히스토리 API를 사용하여 애플리케이션 안에서 개개의 논리 문서의 인식 및 탐색을 제공할 수 있다. 싱글 페이지 애플리케이션과의 소통은 뒷편에 있는 웹 서버와의 동적인 통신을 수반하기도 한다.

역사 
싱글 페이지 애플리케이션이라는 용어의 기원은 분명하지 않으나 이 개념은 적어도 2003년 초에 논의되었다. 스튜어트 모리스는 2002년 4월 동일한 목표와 기능을 갖추고 자기 자신을 포함시키는 웹사이트를 slashdotslash.com에 작성하였으며 같은 해에 얼마 지나지 않아 Lucas Birdeau, Kevin Hakman, Michael Peachey, Evan Yeh는 미국 특허 8,136,109에 싱글 페이지 애플리케이션 구현체를 기술하였다.

자바스크립트를 웹 브라우저에 사용하여 사용자 인터페이스(UI)를 표시하고 애플리케이션 로직을 수행하며 웹 서버와 통신할 수 있다. SPA의 구축을 지원하는 성숙된 오픈 소스 라이브러리들을 이용할 수 있으며 개발자가 작성해야 하는 자바스크립트 코드의 양을 줄일 수 있다.

같이 보기 
 리액트 (자바스크립트 라이브러리)
 Vue.js

각주

외부 링크 
 Migrating Multi-page Web Applications to Single-page Ajax Interfaces (Delft University of Technology)
 The Single Page Interface Manifesto

웹 애플리케이션