
- 클라이언트와의 통신은 웹 서버가 전담 -> 네트워크 및 멀티 스레드 프로그래밍으로부터 탈출
- 애플리케이션 서버는 애플리케이션 실행 및 관리에 집중
1. 기존 C/S 환경

- 기존의 C/S 환경은 비즈니스 처리 부분을 서버에 배치하고 UI 처리 부분을 클라이언트에 배치
- 업무가 변경되면 클라이언트 프로그램을 재설치해야하므로 기능 추가 및 변경에 있어서 유연한 대처가 어려움.
2.웹 환경

- 비즈니스 로직, UI 로직 모두 서버에 배치
- 기존의 C/S 환경과는 반대로 재설치 없이 추가된 기능이나 변경된 기능을 이용할 수 있음
- 애플리케이션을 실행할 때마다 UI 로직을 내려받으므로 오버헤드가 발생될 우려가 있음.
애플리케이션 실행
- 웹 브라우저가 설치되어 있고 인터넷에 연결되어 있으면 어디서든 애플리케이션 실행가능

기존의 C/S 애플리케이션 개발
- C/S 환경에서는 데이터 통신을 위해 네트워크 프로그래밍을 해야함
- 서버에서는 다중 클라이언트 요청을 동시에 처리하기 위해 멀티 스레드 프로그래밍을 해야함.

웹 환경에서의 애플리케이션 개발
- C/S 환경의 단점을 보완하기 위해 웹 브라우저와 웹 서버가 등장했고 기존의 네트워크 프로그래밍, 멀티 스레드 프로그래밍 역할을 대신해서 수행해주므로 개발자는 어떤 업무를 처리하고 무엇을 출력할 것인가에 대해서만 고민하면 됨.

웹 애플리케이션의 등장 이유
- 자주 변경되는 시스템의 유연하게 대처하지 못하는 기존의 C/S 환경을 보완하기 위해서
- 매번 클라이언트 프로그램의 재설치를 예방하기 위해서
Reference
엄진영, 『자바 웹 개발 워크북』, 프리렉(2018.8.9), 53~59p