본문 바로가기
PROGRAM/JAVA / JSP

[자바 웹 개발 워크북] 웹 애플리케이션 환경의 실행과 개발

by ojava 2016. 2. 3.
반응형

[열혈강의 : 자바 웹 개발 워크북] 을 보고 요약 및 공부한 내용을 적는 글임을 알립니다.




Chapter 01. 웹 애플리케이션의 이해



해당 챕터의 핵심 내용은 C/S 환경의 필요성과 기존 환경과 현재 개선된 환경의 차이점

그리고 웹 애플리케이션이 C/S 환경에서 어떻게 실행되며 개발을 어떤식으로 진행하는 지에 대해 이야기 한다.




1) C/S (Client - Server) 환경의 필요성


- 기존 설치식 애플리케이션의 경우 배포가 번거롭고, DB에 연결하기 위한 접속정보 유출의 가능성 존재

- 기능을 클라이언트와 서버로 분리하면 서버에서 DB에 접속하기에 접속 정보 유출 가능성이 낮아짐 : 보안 강화

- 업무 변화에 따른 변경 사항 반영을 서버쪽에서만 수행하면 되므로 변화에 대한 유연한 대응이 가능

- 스레드를 이용한 다중 클라이언트 요청 처리가 가능하여 동시 작업이 가능




2) 전통적인 방식의 C/S 구조


- 서버는 데이터 처리를 맡는 DBMS를 가리키는 말로 사용됨

- 구조와 각 역할


UI

비즈니스 로직 

 ------ 데이터 요청 -------▶

데이터 처리

(예 : DBMS) 

 클라이언트

◀------ 결과 데이터 -------- 

서버 


 

- 단점

: 프로그램이 변경되면 재 설치해야 함

: 클라이언트가 DBMS로 바로 접속해야 하므로 보안 문제 발생 가능




3) 개선된 형태의 C/S 구조


- 기존 C/S 구조의 단점을 개선하기 위해서 업무 처리 부분을 서버로 이관

: 업무 처리만을 담당하는 서버를 '애플리케이션 서버'라고 함

: 애플리케이션 서버는 클라이언트의 접근을 제어하고, 합께 처리할 작업을 같이 처리하는 트랜잭션으로 묶어 관리함


- 클라이언트는 사용자와의 상호작용을 처리하는 UI만을 담당

: 데이터 입력 화면 제공, 데이터 입력내역 검증 (Validation), 서버가 요구하는 방식으로 변환하여 전송, 결과값 출력 등 


- DB 직접 접속 방식이 아니므로 DB 접속 정보 유출 가능성 적음

- 기능 변경 내역이 서버에 반영되므로 재설치 등이 필요없이 바로 적용이 가능함


- 구조 및 역할


UI

입력 데이터 검증 

 --- 데이터 처리요청 ---▶

 비즈니스 로직

사용자 접근 관리

 ---- SQL 질의 ----▶

 데이터 처리

(예: DBMS)

 클라이언트

 ◀---- 처리결과 응답 ----

 애플리케이션 서버

◀---- 결과 데이터 ---- 

 서버




4) 웹 애플리케이션 아키텍쳐


앞에서 말한 C/S, 클라이언트-서버의 형태에 웹 기술이 적용된 형태.

웹 브라우저가 클라이언트에 해당되고 비즈니스와 데이터 처리를 진행하는 서버가 별도로 존재하는 형태이다.



  • 클라이언트와 통신
  • 다중 클라이언트의 
    접속 관리

웹 서버 

----- 위임 ----▶

◀----  결과 ---- 

애플리케이션 서버 

  • 비즈니스 로직
  • 데이터 관리
  • 사용자 접근 관리
  • UI 생성 (예: HTML) 

 

 ▲              

│             

요청 (HTTP) 응답

             

             ▼

  

 ▲              

 │              

데이터      SQL 질의 

│             

             ▼

 

  • 사용자와 상호작용
  • UI 렌더링

웹 브라우저 (Client)

 

DBMS 서버 

  • 이터 처리 




- 웹 브라우저를 통해 들어오는 클라이언트와의 접속은 웹 서버가 담당

- 애플리케이션 서버는 애플리케이션 실행 (실제 업무를 담당하는 비즈니스 로직 등) 및 관리에 집중



해당 책에서는 웹 서버로 Tomcat을 사용하고 있으며

각각의 프로그램을 구현한 프로젝트를 웹 애플리케이션으로 두고 이를 웹 서버에 올린다.


예를 들어, eclipse에서 Server로 톰캣을 추가하고 (웹 서버 추가)

Test1이라는 이름의 프로젝트는 웹 애플리케이션이 되며, 해당 웹 애플리케이션을

웹 서버인 Tomcat에 구현되어야 할 모듈로 등록하면 (이 과정을 배치 - deployment 라고 한다)

웹 서버에서 구동되는 웹 애플리케이션을 실행할 수 있다.



각각의 웹 애플리케이션은 C/S 구조로 구성되었으므로

각 애플리케이션은 웹 애플리케이션의 Server Side 구현내용이라고 볼 수 있다.




5) 웹 애플리케이션의 실행과 개발


기존 C/S 환경은 UI로직이 클라이언트단에 있었으므로 추가, 변경될 때마다 재설치해야 하는 문제가 있었음

웹 환경에서는 비즈니스 로직과 UI 로직을 모두 서버에서 가지고 있으므로 기능 추가, 변경이 있으면

서버쪽에서 모두 반영이 가능하므로 사용자가 별도 작업이 필요 없이 바로 이용이 가능하다.


- 실행



 클라이언트

(CLIENT)

  ------------------- 1. 사용자 입력폼 요청 (HTML) >>>

서버

(SERVER) 

 2. (서버) 입력폼 생성

 <<<< 3. 입력폼을 전달한다 ---------------------

 4. (클라이언트) 입력폼 화면에 출력

 -------------------------- 5. 사용자 입력값 전송 >>>>

 6. (서버) 계산 후 결과화면 생성

 <<<< 7. 결과 화면 전달 ---------------------------

 8. (클라이언트) 결과 화면 출력



- 개발


C/S 환경에서는 데이터 통신을 위한 네트워크 프로그래밍이 필요하며

다중 클라이언트의 요청 처리를 위해 서버에서 멀티 스레드 프로그래밍을 진행해야 함


웹 환경에서는 웹 브라우저와 웹 서버가 이런 개발 과정을 대신 처리하므로

업무 진행 내역을 처리할 비즈니스 로직을 구현하고 어떻게 출력할지에 대한 UI 설계/구현만 진행하면 된다.


1. 클라이언트 개발

: HTML 태그가 주로 사용되며, CSS, JavaScript 등이 이용됨

: 화면단의 새로고침 없이 서버 통신으로 데이터 변경을 일으키는 Ajax 등을 사용하여 비동기 개발이 이루어지기도 함


2. 서버 개발

: 네트워크 관련 코드, 멀티 스레드 관련 코드는 웹 서버와 WAS 서버가 대신 처리한다.

: MVC 아키텍처, Framework 구현 등을 통해 짜임새 있는 아키텍쳐 구성이 가능해짐





웹 애플리케이션의 경우, 인터넷 환경을 기반으로 하기 때문에 유연한 사용 환경을 제공하며

네트워크를 사용할 수 있고 웹 브라우저가 있다면 어디서든 사용할 수 있다.

PC, 모바일, 태블릿 등 다양한 멀티 스크린 환경에도 일관되게 대응할 수 있으며

표준 웹 프로토콜인 HTTP 프로토콜을 이용하여 이기종 플랫폼 간에도 매끈한 연결을 지원한다.

JavaScript, CSS, HTML을 통해 원하는 모습으로 UI를 구성할 수 있고 그 구성 방법은 날로 진화하고 있다.



반응형