웹 어플리케이션

Web application
Horde 그룹웨어는 오픈 소스 웹 애플리케이션입니다.

응용 프로그램(또는 웹 응용 프로그램)은 장치의 운영 체제(OS)에서 로컬 및 네이티브로 실행되는 소프트웨어와는 달리 웹 브라우저에서 실행되는 응용 프로그램 소프트웨어입니다. 애플리케이션은 네트워크 연결이 활성화된 사용자에게 월드 와이드 웹을 통해 전달됩니다.

역사

클라이언트 서버등의 이전의 컴퓨팅 모델에서는, 애플리케이션의 처리 부하가 서버의 코드와 각 클라이언트에 로컬로 인스톨 되어 있는 코드간에 공유되고 있었습니다.즉, 어플리케이션에는 사용자 인터페이스로 기능하는 자체 컴파일된 클라이언트 프로그램이 있어 각 사용자의 개인 컴퓨터에 별도로 설치해야 했습니다.애플리케이션의 서버측 코드로의 업그레이드에서는, 통상, 각 유저 워크스테이션에 인스톨 되고 있는 클라이언트측 코드로의 업그레이드가 필요하게 되어, 서포트 코스트가 증가해, 생산성이 저하합니다.게다가 애플리케이션의 클라이언트와 서버 컴포넌트는, 통상, 특정컴퓨터 아키텍처와 operating system에 밀접하게 관련지어져 있기 때문에, 그것들을 다른 애플리케이션으로 이식하는 것은, 대부분의 경우, 큰 애플리케이션을 제외한 모든 애플리케이션에 있어서 큰 코스트가 듭니다(현재는 모바일 디바이스의 네이티브 애플리케이션도, 상기의 일부 또는 모든 것에 의해서 곤란해하고 있습니다).ues)

1995년에 Netscape는 JavaScript라고 불리는 클라이언트측 스크립트 언어를 도입하여 프로그래머가 클라이언트측에서 실행되는 사용자 인터페이스에 동적 요소를 추가할 수 있게 되었습니다.따라서 웹 페이지 전체를 생성하기 위해 서버에 데이터를 보내는 것이 아니라 다운로드된 페이지의 임베디드 스크립트는 입력 검증이나 페이지의 [1]일부 표시/숨김 등의 다양한 작업을 수행할 수 있습니다.

1999년, "웹 애플리케이션" 개념은 Servlet 사양 버전 2.2에서 Java 언어로 도입되었습니다. [2.1?][2] 당시 JavaScript와 XML은 모두 이미 개발되었지만 Ajax는 아직 생성되지 않았으며 XMLHttpRequest 객체는 최근에야 Internet Explorer 5에 ActiveX 객체로 도입되었습니다.

2005년에 Ajax라는 용어가 만들어졌고 Gmail과 같은 어플리케이션들은 그들의 클라이언트 측을 점점 더 상호작용하게 만들기 시작했다.웹 페이지 스크립트는 웹 [3]페이지 전체를 다운로드하지 않고 데이터를 저장/검색하기 위해 서버에 연결할 수 있습니다.

구조.

애플리케이션은 보통 "계층"이라고 불리는 논리 청크로 분할되며 각 계층에 역할이 [4]할당됩니다.기존 애플리케이션은 클라이언트 머신에 상주하는 1개의 계층으로만 구성되지만 웹 애플리케이션은 본질적으로 [4]n계층 접근 방식에 적합합니다.다양한 종류가 가능하지만 가장 일반적인 구조는 3계층 애플리케이션입니다.[4]가장 일반적인 형태에서는 이 세 가지 계층을 프레젠테이션, 애플리케이션 및 스토리지라고 합니다.웹 브라우저는 첫 번째 계층(프레젠테이션), 동적 웹 콘텐츠 기술(ASP, CGI, ColdFusion, Dart, JSP/Java, Node.js, PHP, Python 또는 Ruby on Rails)을 사용하는 엔진은 중간 계층(애플리케이션 로직)이며 데이터베이스는 세 번째 계층(스토리지)[4]입니다.웹 브라우저는 중간 계층으로 요청을 전송하고, 중간 계층은 데이터베이스에 대한 쿼리 및 업데이트를 수행하여 요청을 처리하고 사용자 인터페이스를 생성합니다.

복잡한 애플리케이션의 경우 3계층 솔루션이 부족할 수 있으며, 애플리케이션 계층에 있는 비즈니스 로직을 보다 세분화된 모델로 [4]세분화하는 것이 가장 큰 이점인 n계층 방식을 사용하는 것이 좋습니다.또 다른 이점은 데이터에 [4]쉽게 액세스할 수 있는 인터페이스를 제공함으로써 데이터 계층을 다른 계층과 분리하는 통합 계층을 추가하는 것입니다.예를 들어 데이터베이스 상의 클라이언트테이블에 대해 직접 SQL 쿼리를 작성하는 대신 "list_clients()" 함수를 호출하여 클라이언트 데이터에 액세스합니다.이를 통해 다른 [4]계층을 변경하지 않고 기본 데이터베이스를 교체할 수 있습니다.

웹 애플리케이션을 2계층 아키텍처로 보는 사람도 있습니다.이는 모든 작업을 수행하고 "덤" 서버에 문의하는 "스마트" 클라이언트 또는 "스마트" [4]서버에 의존하는 "덤" 클라이언트일 수 있습니다.클라이언트는 프레젠테이션 계층을 처리하고, 서버는 데이터베이스(스토리지 계층)를 사용하며, 비즈니스 로직(애플리케이션 계층)은 둘 중 하나 또는 [4]둘 모두에 있습니다.이렇게 하면 애플리케이션의 scalability가 향상되고 디스플레이와 데이터베이스가 분리되지만, 여전히 계층을 진정으로 전문화할 수 없기 때문에 대부분의 애플리케이션은 이 [4]모델을 능가하게 됩니다.

업무용

이러한 종류의 애플리케이션에 대한 보안 침해는 기업 정보와 개인 고객 데이터를 모두 포함할 수 있기 때문에 주요 우려 사항입니다.이러한 자산을 보호하는 것은 모든 웹 애플리케이션의 중요한 부분이며 개발 프로세스에 [5]포함되어야 하는 몇 가지 주요 운영 영역이 있습니다.여기에는 인증, 인가, 자산 처리, 입력, 로깅 및 감사 프로세스가 포함됩니다.처음부터 애플리케이션에 보안을 구축하면 장기적으로 더 효과적이고 운영 중단을 줄일 수 있습니다.

발전

웹 어플리케이션의 작성은 웹 어플리케이션 프레임워크를 사용함으로써 간소화되는 경우가 많습니다.이러한 프레임워크에 의해 개발팀은 사용자 [6]관리 등의 일반적인 개발 문제를 해결할 필요 없이 자신의 목표에 고유한 애플리케이션 부분에 집중할 수 있게 되어 신속한 애플리케이션 개발을 촉진할 수 있습니다.사용되고 있는 프레임워크의 대부분은 오픈 소스 소프트웨어입니다.

웹 애플리케이션 프레임워크를 사용하면 코드를 단순화하고 한 팀은 프레임워크에 집중하는 반면 다른 팀은 지정된 사용 사례에 초점을 맞추는 방식으로 프로그램의 오류 수를 줄일 수 있습니다.인터넷상에서 지속적인 해킹 시도에 노출되는 애플리케이션에서는 프로그램 오류로 인해 보안 관련 문제가 발생할 수 있습니다.프레임워크는 POST 후 GET 등의 베스트 프랙티스의 사용을[7] 촉진할 수도 있습니다.

또한 현재 이 모델에 맞는 실행 가능한 플랫폼은 많지 않지만 인터넷 운영 체제에서의 애플리케이션 개발 가능성이 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Liam Tung (2020-06-15). "JavaScript creator Eich: My take on 20 years of the world's top programming language". ZDNet.
  2. ^ Davidson, James Duncan; Coward, Danny (1999-12-17). Java Servlet Specification ("Specification") Version: 2.2 Final Release. Sun Microsystems. pp. 43–46. Retrieved 2008-07-27.
  3. ^ Jay Hoffmann (2019-03-04). "What Does AJAX Even Stand For?". Retrieved 2021-10-18.
  4. ^ a b c d e f g h i j Petersen, Jeremy (4 September 2008). "Benefits of using the n-tiered approach for web applications".
  5. ^ "Top Tips for Secure App Development". Dell.com. Archived from the original on 2012-05-22. Retrieved 2012-06-22.
  6. ^ Multiple (wiki). "Web application framework". Docforge. Archived from the original on 2020-06-20. Retrieved 2010-03-06.
  7. ^ Multiple (wiki). "Framework". Docforge. Archived from the original on 2018-10-07. Retrieved 2010-03-06.

외부 링크