어플리케이션 서버
- 비즈니스 로직을 처리하는 서버
어플리케이션 서버를 구축할 때 핵심은 PC와 서버 간의 연결을 단순화하기 위해 웹 기술을 활용하는 것이다
즉 PC 쪽에서는 웹 브라우저를 통해 서버와 연결하고, 서버 쪽에서는 웹 서버가 PC와의 연결을 담당한다
어플리케이션 서버는 클라이언트가 요청한 작업을 처리하는 일을 한다.
웹 어플리케이션 서버(WAS, Web Application Server)
사용자는 웹 브라우저를 통해 웹 서버에게 작업을 요청한다.
웹 서버는 어플리케이션 서버에게 작업을 위임한다.
어플리케이션 서버는 클라이언트 요청을 처리할 어플리케이션을 찾아서 실행하고, 그 작업 결과를 웹 서버에게 전달한다.
다시 웹 서버는 웹 브라우저에게 요청에 대한 응답으로 작업 결과를 보낸다.
이렇게 웹 서버와 연동하여 작업을 수행하는 어플리케이션 서버를 웹 어플리케이션 서버(WAS, Web Application Server)라 부른다.
웹 어플리케이션과 웹 브라우저
WAS에서 구동되는 어플리케이션을 '웹 어플리케이션'이라고 부르고, 자바에서는 이것을 Servlet이라고 한다
웹 어플리케이션은 Client의 요청을 처리하고, 그 결과를 웹 브라우저가 이해할 수 있는 HTML로 만들어서 보낸다
웹 브라우저는 웹 어플리케이션이 보낸 HTML을 화면에 출력한다. 이것이 웹 어플리케이션의 구동 원리이다.
웹 기술이 개발자에게 가져다준 이점
- 네트워크 프로그램을 할 필요 없다
- 멀티 프로세싱, 멀티 스레딩 프로그래밍을 할 필요 없다
- OS에 독립적으로 UI를 만들 수 있다(웹 표준 기술 사용)
- 어플리케이션 배포가 용이하다
웹 어플리케이션의 그늘
- 네트워크 오버헤드가 증가했다
- 중앙 처리 방식이라, 작업을 요청할 때마다 서버에서 화면 데이터를 받아와야 한다
- 화면 전환이 불편하다
- 페이지 단위로 화면이 전환되기 때문에, 화면이 바뀔 때마다 화면 전체가 깜빡거린다.
개발 프로세스
- OOP(객체중심개발) --> CBD(컴포넌트 중심 개발, Component-Based Development)
- Agile 방법론 : TDD(테스트 주도 개발)
분산 컴퓨팅
비즈니스 로직을 수행하는 어플리케이션은 업무 목적에 따라 여러 서버에 분산 배치되어 실행될 수 있다
이 때 다른 컴퓨터에 있는 어플리케이션 코드를 실행하는 방법으로 C/S 시대에서는
- RCP(Remote Procedure Call), CORBA(Common Object Request Broker Architecture)라는 분산 기술이 사용되었다
이러한 분산 기술은 웹 시대에서서는 바뀌고 있다!
- RMI(Remote Method Invocation), EJB(Enterprise JavaBeans), 웹서비스(Web Service) 기술로 발전한다
- SOAP 프로토콜 기반 웹 서비스는 순수 HTTP 프로토콜에 기반을 둔 RESTful 웹 서비스로 전환된다
- 요새 대부분의 서비스 회사에서 제공하는 Open API는 RESTful 웹 서비스 방식을 도입하고 있다
POJO 컨테이너
시스템 구축시 EJB와 같은 무거운 기술 대신 POJO(Plain Old Java Object)처럼 작고 가벼운 방법으로 자바 컴포넌트를 만들고 관리하는 방법이 뜨고있다. 또한 프레임워크 기반 개발도 활성화되기 시작했는데, POJO 기반 프레임워크의 대표가 Spring Framework이다.
도서: 자바 웹 어플리케이션 [엄진영 지음, 프리렉]