웹 애플리케이션
웹 애플리케이션(web application)은 웹 브라우저나 그와 유사한 웹 실행 환경을 통해 사용자가 기능을 수행하도록 제공하는 응용 소프트웨어다. 단순한 문서 열람을 넘어 자료 편집, 메시지 전송, 파일 관리, 게임과 업무 처리를 수행할 수 있다. HTML, CSS, JavaScr...
| 분류 | 응용 소프트웨어 |
|---|---|
| 역할 | 웹 환경에서의 프로그램 실행과 서비스 제공 |
| 관련 기술 | World Wide Web, HTTP, HTML, URL |
| 개발 프레임워크 | 웹 프레임워크, 웹 프론트엔드 프레임워크, 웹 백엔드 프레임워크 |
| 참고 명세 | MDN: Progressive Web Apps |
웹 애플리케이션(web application)은 웹 브라우저나 그와 유사한 웹 실행 환경을 통해 사용자가 기능을 수행하도록 제공하는 응용 소프트웨어다. 단순한 문서 열람을 넘어 자료 편집, 메시지 전송, 파일 관리, 게임과 업무 처리를 수행할 수 있다. HTML, CSS, JavaScript를 비롯한 웹 플랫폼 기술을 사용하며 서버와 통신하거나 일부 기능을 클라이언트에서 독립적으로 처리한다.
웹 애플리케이션의 구조는 사용자 인터페이스를 실행하는 클라이언트, 요청을 처리하는 서버, 데이터를 저장하는 계층으로 나뉠 수 있다. 이들 계층의 경계는 절대적이지 않으며 전체 페이지를 서버에서 생성하거나 브라우저에서 화면 상태를 조합하는 방식이 모두 가능하다. 단일 페이지 애플리케이션에서는 사용자 탐색의 상당 부분을 페이지 새로고침 없이 처리하기도 한다.
서버와의 데이터 교환에는 HTTP 기반 API, WebSocket 및 스트리밍 기술이 활용된다. 응답은 HTML 문서 또는 JSON 같은 구조화 데이터일 수 있으며 사용자의 계정과 작업 상태를 보존하기 위해 쿠키와 토큰, 브라우저 저장소를 사용한다. 네트워크 연결이 불안정한 환경에서는 캐싱과 로컬 저장소를 활용하여 일부 기능을 오프라인으로 제공하기도 한다.
프로그레시브 웹 애플리케이션(PWA)은 설치와 백그라운드 작업, 오프라인 지원 등 플랫폼 통합 능력을 점진적으로 활용하는 웹 애플리케이션 접근 방식이다. Service Worker와 웹 앱 매니페스트는 지원 환경에서 리소스 캐시 및 설치 경험을 제공한다. 다만 운영체제와 브라우저마다 사용할 수 있는 장치 API와 실행 제한이 달라 완전히 동일한 기능이 보장되는 것은 아니다.
웹 애플리케이션은 원격에서 배포하고 업데이트할 수 있어 다양한 장치에서 공통 기능을 제공하기 쉽다. 동시에 사용자의 입력과 제3자 콘텐츠, API 요청을 처리하므로 동일 출처 정책, 콘텐츠 보안 정책, 인증 및 세션 관리가 중요하다. 장시간 실행되는 인터페이스에서는 메모리 누수와 렌더링 비용, 네트워크 왕복 지연을 관리하는 성능 설계도 필요하다.[1]