소프트웨어 공학적 관점에서 웹 애플리케이션(web application) 또는 웹 앱은 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말한다.
웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수천만 대의 PC에 굳이 소프트웨어를 배포해서 설치하지 않아도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중의 하나이다. 웹 애플리케이션은 웹 메일, 온라인 전자상거래 및 경매, 위키, 인터넷 게시판, 블로그 및 MMORPG 게임 등 다양한 기능을 구현할 수 있다.
목차[숨기기] |
[편집]역사
초기의 클라이언트-서버 컴퓨팅 환경에서 각 응용 소프트웨어들은 저만의 사용자 인터페이스를 가지고 있고 사용자 PC마다 따로 설치하여야 했다. 서버 환경이 바뀌면 클라이언트 응용 프로그램도 업그레이드해야 하고 이에 따라 기술 지원 비용은 증가하고 생산성은 떨어지게 되었다.
이와 대조적으로 웹 애플리케이션은 웹 브라우저가 지원하는 HTML/XHTML 같은 표준 형식의 웹 문서 조합을 동적으로 만들어 내는 것이다. 동적 기능을 수행하는 자바 스크립트라는 표준 언어가 클라이언트 동작을 담당한다. 일반적으로 개별 웹 페이지는 정적 문서로 웹 브라우저로 배포되지만, 웹 문서가 연속적으로 전달되고 문서 마크업에 포함된 웹폼을 통해 정보를 주고 받을 수 있기 때문에 사용자에게 인터렉티브한 경험을 얻게 한다. 웹 브라우저는 웹 문서를 해석하는 기능을 수행한다.
[편집]인터페이스
웹 인터페이스가 클라이언트의 기능에 제한을 주는 일은 거의 없다. 자바, 자바스크립트, DHTML, 플래시와 기타 기술들을 활용하면 응용 프로그램에 특정적인 방법, 이를테면 화면에 그림을 그리거나 소리를 재생하거나 키보드와 마우스에 접근하는 것이 모두 가능하다. 드래그 앤드 드롭과 같은 일반적인 기법도 앞의 기술로 가능하다. 웹 개발자는 클라이언트측 스크립트를 활용해서 기능을 추가하는 경우가 많은데, 특히 페이지를 다시 불러오지 않으면서 인터렉티브한 경험을 구현하는 것이 그러한 경우이다. 최근에는 클라이언트측 스크립트와 서버측 기술(이를테면 PHP)을 함께 활용하는 기술들이 개발되고 있다. 다양한 기술을 조합한 웹 개발 기법인 Ajax는 더욱 인터렉티브한 경험을 제공하는 기술의 예이다.
[편집]기술적 고려
웹 애플리케이션을 만들 때 중요한 점은 클라이언트의 운영 체제의 종류나 버전에 상관 없이 작동되도록 표준 브라우저 기능을 사용해야 한다는 것이다. 이는 마이크로소프트 윈도, 맥 오에스 텐, 리눅스 등의 운영 체제에 각각의 클라이언트를 만드는 것보다 한 번 만들어서 거의 모든 곳에 쓰일 수 있도록 해야 한다는 것이다. 하지만 HTML, CSS, DOM 등과 같은 다양한 기술들의 불완전한 구현은 웹 애플리케이션의 개발에 많은 문제를 야기할 수 있다. 웹 애플리케이션의 사용자 인터페이스를 디자인 할 때에는 사용자들이 글자 크기, 색, 글꼴을 바꿀 수 있다는 점을 염두에 두고 레이아웃을 구현하여야 한다.
덜 흔하게 쓰이지만, 다른 접근 방법은 어도비 플래시나 자바 애플릿를 사용하여 사용자 인터페이스의 전부나 일부를 구현하는 것이다. 많은 웹 브라우저들이 이러한 기술들을 플러그인과 같은 기능을 통해 지원하고, 이것들은 브라우저의 설정 문제를 비켜나가게 할 수 있게 됨으로써, 클라이언트마다 다른 자바나 플래시의 구현이 문제가 될 수는 있겠지만 플래시나 자바에 기반한 애플리케이션들은 쉽게 구현될 수 있다. 구성이 클라이언트가 더 많은 역할을 하는 전통적인 클라이언트-서버 구조와 비슷하므로 "웹 애플리케이션"이란 용어가 논쟁거리가 되었다. 이에 따른 대체 용어는 "리치 인터넷 애플리케이션"이다.
[편집]구조
다양한 변형이 존재하지만, 웹 애플리케이션은 주로 3계층 애플리케이션으로 구축된다. 가장 흔한 구성으로, 웹 브라우저가 첫 번째 계층이고, 동적 웹 콘텐츠 기술(ASP, ASP.NET, CGI, ColdFusion, JSP, PHP, 파이썬, 루비 온 레일즈) 과 같은 것들의 엔진이 중간 계층이며, 데이터베이스가 세 번째 계층이다. 웹 브라우저는 데이터베이스에 쿼리를 보내고, 자료를 업데이트하며, 사용자 인터페이스를 만드는 중간 계층에게 요청을 보낸다.
[편집]사업 용도
최근 응용 소프트웨어 회사에서 취하는 전략은 이전에 로컬 응용 프로그램으로 배포된 소프트웨어에 웹 접근을 제공하는 것이다. 응용 프로그램의 종류에 따라, 완전하 다른 브라우저 기반의 인터페이스를 요구할 수도 있으며, 아니면 기존의 응용 프로그램에 적응하여 다른 프레젠테이션 기술을 사용해야 할 수도 있다. 이러한 프로그램들은 사용자가 로컬 하드 드라이브에 별도의 프로그램을 설치하지 않고 달마다, 또는 해마다 응용 소프트웨어 사용비를 내게 한다. 이러한 전략을 따르는 회사는 애플리케이션 서비스 제공업체 (ASP)로 알려져 있으며 ASP들은 현재 소프트웨어 산업에서 크나큰 집중을 받고 있다.
[편집]웹 애플리케이션 작성
많은 웹 애플리케이션 프레임워크들이 프로그래머가 프로그램의 고수준 설명을 정의하게 함으로써 빠른 애플리케이션 개발을 용이하게 해 준다. 또한, 이 모델에 맞는 플랫폼이 많지는 않지만, 인터넷 운영 체제에 기반한 애플리케이션의 개발에 대한 잠재성도 있다.
웹 애플리케이션 프레임워크의 사용은 코드를 단순하게 만들고, 한 팀이 기반에만 집중하게 함으로써 프로그램의 에러를 줄일 수 있다. 외부의 해커의 공격 시도에 노출된 애플리케이션들은 프로그램의 오류에 의한 보안 문제는 큰 문제이다. 웹 애플리케이션 프레임워크는 POST 후 GET과 같은 것들의 사용을 촉진할 수 있다.
Web Application Security Consortium (WASC), CGI Security, OWASP과 같은 프로젝트는 웹 애플리케이션의 보안 문제를 어떻게 피하는지에 대한 문서를 작성하는 데 주의를 기울여 개발되었다.
[편집]같이 보기
- Ajax
- ASP
- ASP.NET
- CSS
- 다이내믹 웹 문서
- 소프트웨어 개발
- DHTML
- XHTML
- HTML
- HTML5
- CSS3
- 웹 애플리케이션 서버
- 자바스크립트
- 웹 2.0
- 웹 서비스
- 웹 애플리케이션 프레임워크
- 파이썬
- 펄
- PHP
[편집]바깥 고리
- 마이크로소프트가 API 전쟁에서 어떻게 졌는가 ? 어떻게 웹 애플리케이션이 윈도 응용 프로그램을 대체하고 있는지에 대해 논한다.
- 웹 애플리케이션 1.0은 어떻게 웹 애플리케이션이 동작할 것인지에 대해 기록해 놓은 미완성 문서이다.
- 웹 애플리케이션: 오픈 디렉터리 프로젝트
- 웹 클라이언트 소프트웨어 팩토리 ? 마이크로소프트 운영 체제에서 컴포지트 웹 및 페이지 플로 응용 프로그램을 만드는 법에 대해 논한다.
==================================================================================
리치 인터넷 애플리케이션(Rich Internet Application; RIA)은 웹 애플리케이션의 장점은 유지하면서 기존 웹 브라우저 기반 인터페이스의 단점인 늦은 응답 속도, 데스크톱 애플리케이션에 비해 떨어지는 조작성 등을 개선하기 위한 기술의 통칭이다. 즉, 별도의 설치가 필요 없는 웹 브라우저 기반의 애플리케이션 배포 장점과 서버 측 웹 서비스와의 연동, 마크업 언어 기반의 선언적 애플리케이션 구성 등은 유지하면서 데스크톱 애플리케이션과 대등한 사용자 경험을 주는 것을 목표로 하는 기술이다.
흔히 어도비 플래시 기반 플렉스나 마이크로소프트 실버라이트, 자바FX 등 별도의 런타임 시스템을 가진 기술을 지칭하는 용어로 사용되나 웹 브라우저에서 실행되는 애플리케이션의 사용자 인터페이스를 향상하는 기법인 Ajax, 사용자 인터페이스 관점에서 많은 발전을 가져올 HTML의 다음 버전인 HTML5 등에 기반한 애플리케이션을 지칭하기도 한다. 별도의 런타임 시스템을 가진 기술의 경우 애플리케이션은 브라우저 내에서 플러그인으로 실행되기도 하고 단독으로 실행되는 경우도 있다. 이 같이 "리치 인터넷 애플리케이션"이라는 개념은 정확한 정의가 있다기 보다는 다소 모호하고 넓은 의미로 사용되고 있다.
목차[숨기기] |
[편집]시장 상황
이 문단의 내용은 출처가 분명하지 않습니다. 지금 바로 이 문단을 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요. (2011년 11월 2일에 문단의 출처가 요청되었습니다.) |
대한민국에서는 "X 인터넷" 솔루션이라 많이 불리지만, 전 세계적으로 RIA라는 표현을 많이 사용하고 있다. 국내에서는 국산 제품들이 많이 레퍼런스를 확보하고 있는 추세이고, 리서치 기관이 예상하는 이 분야 강자인 어도비 시스템즈사 제품이나 마이크로소프트사 제품은 아직 많은 레퍼런스를 확보하고 있지 못한 상황이다.
[편집]역사
"리치 인터넷 애플리케이션"이라는 용어는 2002년 매크로미디어(2005년 어도비 시스템즈에 합병[1])의 2002년 3월 플래시 MX 제품 백서에 처음 등장했다.[2] 흔히 "리치 인터넷 애플리케이션" 개념의 효시로 포레스터 리서치의 CEO인 조지 콜로니(George Colony)가 2000년 10월 "My View: X Internet"이라는 단문에 언급한 "X 인터넷"이라는 개념을 꼽기도 한다.[3](원문은 링크 소실) 하지만 원문의 내용은 현재 "리치 인터넷 애플리케이션"과는 달리 자바의 초기 비전처럼 브라우저 같은 틀이 없이 실행 가능한 코드가 날아 다니는 것에 더 가까워 직간접적으로 브라우저와 연계를 가지고 있는 현재의 "리치 인터넷 애플리케이션" 구현과는 다소 차이가 있다.
[편집]제품
- 에어(AIR) : 미국 어도비 시스템즈
- 실버라이트 : 미국 마이크로소프트
- 자바FX : 미국 오라클
- eXria : 한국 토마토시스템
- 이노싱크, 가우스(GAUCE) : 한국 쉬프트정보통신
- XPLATFORM : 한국 투비소프트
- RIA : 한국 액츠원
- TrustForm Soonsu : 한국 컴스퀘어
- 프로웹 : 한국 티맥스소프트
- Curl : 미국 Curl, Inc. 한국 Qti International, Inc.
[편집]같이 보기
[편집]주석
===================================================================================
웹 서비스(web service)는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종이다. 웹 서비스 프로토콜 스택은 SOAP, WSDL, UDDI 등으로 이루어진다. 모든 메시징에 XML이 사용되어 상호운용성이 높다.
기존의 분산 컴퓨팅 기술들인 CORBA, DCOM, RMI과 비교했을 때 주된 차이점은 다음과 같다.
- 느슨한 연결(loose coupling)
- 이진 부호화(바이너리 인코딩)가 아닌 XML 유니코드 부호화를 사용한다.
- 객체 지향(object-oriented)이 아닌 메시지 지향(message-oriented)이다.
웹 서비스라는 명칭을 가지고 있지만 월드 와이드 웹과 혼동하여서는 안 된다. 월드 와이드 웹은 사람과 컴퓨터 간의 상호작용을 위한 시스템인 데 반해, 웹 서비스는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템이다.
분산 컴퓨팅을 실현할 수 있는 신기술로 등장하여 큰 기대감에 매스미디어에서 여러 번 다루어져서 인지도는 증가하였다. 하지만, 시장에서의 실효성 때문에 많이 보급되지 않았다. 아직 관련 기술의 표준화가 더디어 보급은 늦어지고 있다. 하지만 최근에 서비스 지향 아키텍처(SOA)가 각광을 받으면서 그 기반 기술인 웹 서비스 또한 주목을 다시 받고 있다.
웹 2.0과 함께 SOAP을 이용하지 않는 REST 스타일 웹 서비스도 등장하여 많은 주목을 받고 있다. 웹 2.0의 한 분야로 웹 서비스를 이용하여 여러 웹 서비스를 조합하여 웹 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 현재 이러한 분야는 새로운 사업으로까지 확장해 나가고 있다.
목차[숨기기] |
[편집]스펙
[편집]1세대
[편집]2세대
[편집]주요 스펙
- WS-Coordination
- WS-Transaction
- BPEL4WS
- WS-ReliableMessaging
- WS-Addressing
- WS-Policy
- WS-PolicyAssertions
- WS-PolicyAttachments
- WS-Attachments
- SOAP with Attachments
[편집]보안 스펙
- WS-Security 프레임워크
- XACML
- XrML
- XKMS
- SAML
- .NET Passport
- XML-Encryption
- SSL
- XML-Signature
- WS-Trust
- WS-Privacy
- WS-SecureConversation
- WS-Federation
- WS-Authorization
[편집]같이 보기
- 웹 서비스 프레임워크의 목록
- 웹 서비스 프로토콜의 목록
- 웹 서비스 사양의 목록
- 서비스 지향 아키텍처 (SOA, Service-Oriented Architecture)
'Web > Common' 카테고리의 다른 글
색상표 (0) | 2012.05.11 |
---|---|
web - REST(Representational State Transfer) (0) | 2012.05.09 |
/favicon.ico 에 대해 (0) | 2012.04.19 |
삼성 모바일OS '타이젠'…구글-모질라 제쳐 (0) | 2012.04.08 |
Atom & RSS(Really Simple Syndication) (0) | 2012.03.24 |