웹 애플리케이션의 이해 (Web Application)
본문 바로가기
IT/IT

웹 애플리케이션의 이해 (Web Application)

by DHan- 2019. 12. 9.
728x90

 

일반적으로 웹 애플리케이션의 아키텍처는 3 계층으로 구성됩니다


1. 프레젠테이션 계층은 웹브라우저를 통해 화면을 보여주는 부분(View)입니다.

2. 비즈니스 계층은 실제 로직이 담기는 부분(Model)입니다.

3. 데이터베이스 계층은 데이터를 저장하는 부분(Contoller)입니다.

4. 애플리케이션을 개발하는 과정에서 비즈니스 로직과 데이터 로직은 서버에 업데이트합니다.

5. 프레젠테이션은 클라이언트에서 관리합니다.

즉 일반적으로 서버는 비즈니스 로직과 데이터 로직을 담고 있으며, 클라이언트는 사용자에게 표현되는 화면을 의미합니다.

 

웹 애플리케이션의 사용자는 아래와 같은 동작을 통해 행동합니다.

1. 사용자가 클라이언트를 통해 입력 등의 명령을 하고 이를 서버에 '작업 요청'합니다.

2. 서버는 이에 '응답'하여 다시 클라이언트에게 전송합니다.

 

클라이언트와 서버를 분할 관리하면 다양한 이점이 있습니다


먼저 비즈니스로직과 데이터로직의 변경이 용이하며 이 과정에서 클라이언트는 업데이트를 위하여 굳이 재설치하지 않아도 됩니다. 

클라이언트는 사용자의 요청( 버튼의 클릭 등 )을 서버에 보내주는 역할만 수행하고 실제 실행은 서버에서 진행하기 때문입니다.

즉 서버로 전달된 계산 등의 요청을 서버가 처리하여 다시 클라이언트로 전송하고 클라이언트는 그 결과를  화면에 보여주기만 합니다.

하여 DBMS서버 또한 클라이언트가 아닌 서버단에서 접속하여 관리하기에 외부 노출이 차단되어 보안이 강화됩니다.

 

다중 클라이언트 접속방법


서버 쪽에서 스레드를 사용하지 않으면 서버는 하나의 클라이언트만 접속할 수 있습니다.

그러나 스레드를 사용하면 다중 클라이언트 접속이 가능합니다.

즉 클라이언트가 서버에 요청을 하는 순간 생성한 스레드가 계속해서 생성되며 이를 통해

사용자가 요청한 작업이 동시에 진행하는 것처럼 보이게 됩니다.  ( 클라이언트 -> 스레드 -> 서버 ) 

 

아키텍처의 변화


 

클라이언트 ( 프레젠테이션 ) - 서버 ( 비즈니스 로직, 데이터로직 ) 형태에서

클라이언트 ( 프레젠테이션 ) - 애플리케이션서버 - 서버 ( 비즈니스 로직, 데이터로직 )으로 발전했습니다.

 

아파치, 톰캣등과 같은 웹서버는 사용자의 요청을 받아 컨테이너로 전송하며 이 컨테이너가 흔히 말하는 서블릿입니다.

 

HTTP 프로토콜과 같은 웹 표준 기술을 활용하여 클라이언트와 서버간의 통신이 진행되어 멀티 스레드를 생성하지 않아도(웹서버에서 담당)되며 클라이언트 애플리케이션을 배포하지 않아도 됩니다. 서버쪽에서 UI가 생성되어 씬 클라이언트 구축이 용이합니다.


&

  • 웹 애플리케이션 (Web Application) : 인터넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 의미

  • 웹 애플리케이션 서버 (Web Application Serve) : 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크

  • 프레임워크 (Framework) : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것

  • 아키텍처 (Archiecture) : 시스템의 구조, 행위, 뷰 등을 정의하는 개념적 모형을 의미

  • MVC패턴 (Model-View-Controller) : 전통적인 GUI 기반의 애플리케이션을 구현하기 위한 디자인 패턴

  • GUI (Graphical User Interface) : 그래픽 사용자 인터페이스

  • Server : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

  • Client : 컴퓨터 네트워크에서 클라이언트는 네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용프로그램 혹은 서비스

  • 스레드 (Thread) : 프로세스 내에서 실행되는 흐름의 단위

  • HTTP프로토콜 (Hypertext Transfer Protocol) : 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜 

다중 클라이언트 : https://www.youtube.com/embed/_8D8SStwByw

 

[자바 웹 개발 워크북] #11 1장 - 다중 클라이언트의 요청 처리 - YouTube

 

www.youtube.com

웹 어플리케이션 : https://www.boannews.com/media/view.asp?idx=53413

 

애플리케이션으로 조성되는 환경의 안전 꾀하기

애플리케이션의 활성화는 많은 이들에게 환영을 받아 계속해서 증가하고 있다. 실제로 대부분의 기업이 많은 사람들에게 더 편리한 삶을 제공하는 애플리케이션의 장점을 통해 방대한 이윤 창출을 경험했다. 그래서 기업들은 서로 다투어 주문, 결제, 관리 시스템 등을 애플리케이션화 하고 있다. 하지면 현재 기업들은 애플리케이션 개발 및 출시에만 급급해 취약점을 살피고 분석할 수 있는 백 엔드 시스템을 갖고 있음에도 불구하고 보안은 엄격하게 관리하지 않고 있다.

www.boannews.com

웹 어플리케이션 : https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98

 

웹 애플리케이션 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 웹 애플리케이션(web application) 또는 웹 앱은 소프트웨어 공학적 관점에서 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말한다. 웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수천만 대의 PC에 굳이 소프트웨어를 배포해서 설치하지 않아도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중의 하나이다. 웹 애플리케이션은 웹 메

ko.wikipedia.org

웹서버와 WAS의 차이 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

시스템 계층구조 아키텍처 : https://m.blog.naver.com/PostView.nhn?blogId=limoremo&logNo=220073573980&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

3 Tier Architecture(3계층 구조)

3계층 구조(3 Tier Architecture)란 프레젠테이션 로직(클라이언트, 사용자 인터페이스), 비즈니스 로직,...

blog.naver.com

MVC 패턴 : https://m.blog.naver.com/jhc9639/220967034588

 

[개발자 면접준비]#1. MVC패턴이란

​오늘은 개발자면접에 많이 나오기도 하는 MVC패턴에 대해서 알아보고자 합니다. 과연 MVC패턴이 무...

blog.naver.com

멀티 스레드 : https://ko.wikipedia.org/wiki/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%94%A9

 

멀티스레딩 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 두 개의 실행 스레드를 가진 프로세스가 하나의 프로세서 위에서 실행 중인 모습. 멀티스레딩(multithreading) 컴퓨터는 여러 개의 스레드를 효과적으로 실행할 수 있는 하드웨어 지원을 갖추고 있다. 이는 스레드가 모두 같은 주소 공간에서 동작하여 하나의 CPU 캐시 공유 집합과 하나의 변환 색인 버퍼 (TLB)만 있는 멀티프로세서 시스템 (멀티 코어 시스템)과는 구별한다. 그러므로 멀

ko.wikipedia.org

서블릿 : https://dhan-description.tistory.com/64?category=893770

 

[JAVA] 자바 서블릿(Servlet)에 관한 이해 - 수정중

 

dhan-description.tistory.com

 

728x90

'IT > IT' 카테고리의 다른 글

MVC패턴의 이해 (Model-View-Controller)  (0) 2019.12.26
웹 개발자 로드맵  (0) 2019.12.26
OData( Open Data Protocol ) - 수정중  (0) 2019.11.19
전사적자원관리(ERP)  (0) 2019.11.06
빅데이터(BigData) 이해하기 3  (0) 2019.11.06

댓글