웹 애플리케이션

위키백과 ― 우리 모두의 백과사전.

이 문서는 편집 지침에 맞춰 다듬어야 합니다.

소프트웨어 공학적 관점에서 웹 애플리케이션 혹은 웹앱은 인터넷 혹은 인트라넷을 통해 웹 브라우저를 통해 이용할 수 있는 응용 소프트웨어를 말한다.

웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수 천만개의 PC에 소프트웨어를 배포해서 설치 하는 노력을 하지 않더라도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중에 하나이다. 웹 애플리케이션은 웹 메일, 온라인 전자상거래 및 경매, 위키, 인터넷 게시판, 블로그 및 MMORPG 게임 등 다양한 기능을 구현할 수 있다.

목차

[편집] 역사

초기의 클라이언트-서버 컴퓨팅 환경에서는 각 응용 소프트웨어들은 그 자체의 사용자 인터페이스를 가지고 있고 각자 사용자 PC에 따로 설치하여야 했다. 서버쪽 환경이 변경되면 당연히 클라이언트 응용 프로그램도 업그레이드 해야 하고 이에 따라 기술 지원 비용은 증가하고 생산성은 떨어지게 되었다.

이와 대조적으로 웹 애플리케이션은 웹 브라우저가 지원하는 HTML/XHTML 같은 표준 형식의 웹 문서 조합을 동적으로 생성하는 것이다. 동적 기능을 수행하는 자바 스크립트라는 표준 언어가 클라이언트 동작을 담담한다. 일반적으로 개별 웹 페이지는 정적 문서로 웹 브라우저로 배포되지만, 웹 문서가 연속적으로 전달 되고 문서 마크업에 포함된 웹폼을 통해 정보를 주고 받을 수 있기 때문에 사용자에게 인터랙티브한 경험을 얻게 한다. 웹 브라우저는 웹 문서를 해석하는 기능을 수행한다.

[편집] 인터페이스

웹 인터페이스가 클라이언트의 기능에 제한을 주는 것은 거의 없다. Java, JavaScript, DHTML, Flash와 기타 기술들을 활용하면 응용 프로그램에 특정적인 방법, 예를 들면 화면에 그림을 그리거나 소리를 재생하거나 키보드와 마우스에 접근하는 것이 모두 가능하다. 드래그앤드롭과 같은 일반적인 기법도 앞의 기술로 가능하다. 웹 개발자는 클라이언트측 스크립트를 활용해서 기능을 추가하는 경우가 많은데, 특히 페이지를 다시 로딩하지 않으면서 인터렉티브한 경험을 구현하는 것이 그러한 경우이다. 최근에는 클라이언트측 스크립트와 서버측 기술(예를 들면 PHP)을 함께 활용하는 기술들이 개발되고 있다. 다양한 기술을 조합한 웹 개발 기법인 Ajax는 더욱 인터렉티브한 경험을 제공하는 기술의 예이다.

[편집] 기술적 고려

A significant advantage of building Web applications to support standard browser features is that they should perform as specified regardless of the operating system or OS version installed on a given client. Rather than creating clients for MS Windows, Mac OS X, GNU/Linux, and other operating systems, the application can be written once and deployed almost anywhere. However, inconsistent implementations of the HTML, CSS, DOM and other browser specifications can cause problems in web application development and support. Additionally, the ability of users to customize many of the display settings of their browser (such as selecting different font sizes, colors, and typefaces, or disabling scripting support) can interfere with consistent implementation of a Web application.

Another (less common) approach is to use Macromedia Flash or Java applets to provide some or all of the user interface. Since most Web browsers include support for these technologies (usually through plug-ins), Flash- or Java-based applications can be implemented with much of the same ease of deployment. Because they allow the programmer greater control over the interface, they bypass many browser-configuration issues, although incompatibilities between Java or Flash implementations on the client can introduce different complications. Because of their architectural similarities to traditional client-server applications, with a somewhat "thick" client, there is some dispute over whether to call systems of this sort "Web applications"; an alternative term is "Rich Internet Application".

[편집] 구조

Though many variations are possible, a Web application is commonly structured as a three-tiered application. In its most common form, a Web browser is the first tier, an engine using some dynamic Web content technology (such as ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, or Ruby On Rails) is the middle tier, and a database is the third tier. The Web browser sends requests to the middle tier, which services them by making queries and updates against the database and generating a user interface.

[편집] Business use

An emerging strategy for application software companies is to provide Web access to software previously distributed as local applications. Depending on the type of application, it may require the development of an entirely different browser-based interface, or merely adapting an existing application to use different presentation technology. These programs allow the user to pay a monthly or yearly fee for use of a software application without having to install it on a local hard drive. A company which follows this strategy is known as an application service provider (ASP), and ASPs are currently receiving much attention in the software industry.

[편집] 웹 애플리케이션 작성

There are many Web application frameworks which facilitate rapid application development by allowing the programmer to define a high-level description of the program. In addition, there is potential for the development of applications on Internet Operating Systems, although currently there are not many viable platforms that fit this model.

The use of Web application frameworks can often reduce the number of errors in a program, both by making the code more simple, and by allowing one team to concentrate just on the framework. In applications which are exposed to constant hacking attempts on the Internet, security-related problems caused by errors in the program are a big issue. Frameworks may also promote the use of best practices such as GET after POST

The Web Application Security Consortium (WASC), CGI Security, and OWASP are projects developed with the intention of documenting how to avoid security problems in Web applications.


[편집] 같이보기

  • AJAX
  • ASP
  • Alpha Five
  • ASP.NET
  • CSS
  • ColdFusion
  • Content management framework
  • Dabble DB
  • Django
  • DHTML
  • HTML
  • Dynamic web document
  • JavaScript
  • JSP
  • LAMP: Linux, Apache, MySQL and Perl/Python/PHP
  • Ruby On Rails
  • Perl
  • PHP
  • Pylons
  • Python
  • Seaside
  • Software development
  • TurboGears
  • Twisted (Python based webapp framework)
  • Web 2.0
  • Web application framework
  • Web services
  • List of web application frameworks
  • World Wide Web Consortium (Web standards)
  • qDecoder (Library for Web Applications)
  • Zope (Python based webapp framework)

[편집] 바깥고리