'서비스(비즈니스 로직) 구현에 집중해라!'
프로그램 모델과 서비스를 구현하는데 필요한 라이브러리가 통합된 형태
모델에 맞춰 작성해야 하는 부분만 작성하면 나머지는 프레임워크가 관리
개발 시간을 단축하고 유지/보수가 원활한 환경을 제공
프레임워크의 등장 배경
World Wide Web
단순 HTML으로 만들어진 초기의 웹 페이지는 문서와 동일 하이퍼텍스트(링크)를 통해서 관련 정보들을 연결하는 기능이 있었을 뿐
WWW의 개발자팀 버너스리(Tim Berners-Lee)가만든 최초의 웹 사이트
Web Application
HTTP를 통해 서비스를 제공하는 소프트웨어
Web Application Framework
동적인 웹 페이지나, 웹 애플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다.
웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주 목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함하고 있다.
ex) Hibernate, Spring Framework, Node.js
기업은 대규모의 web application을 작성.. ⇒ Business Web Application Framework 필요 == ProObject
Web Application Server
정의 : 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크 / 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어
DB 처리, 로직 처리를 요구하는 동적타입을 제공하는 소프트웨어 프레임워크를 의미한다.기본적으로 사용되는 기능 3가지는 아래와 같다.
웹 페이지에 보다 다양한 기능을 요구하게 되면서 정적인(만들어져 있는) 페이지를 보여주는 기존 방식의 한계에 도달 (ex. 웹 페이지에서 계좌 조회 기능을 사용하고 싶다. → 사용자가 가진 계좌에 맞는 금액을 표시한 문서를 보여줘야 한다. → 문서가 미리 작성되어 모든 사람이 같은 내용을 보게 되는 기존 방식으로는 불가능)
웹 컨테이너를 도입해서 한계를 극복함. 웹 컨테이너는 JSP(JAVA), ASP(C#), PHP(PHP) 등을 통해 동적으로 필요한 부분을 채워서 페이지를 작성하고, 작성된 페이지는 웹 서버를 통해 사용자에게 송신 웹 서버와 웹 컨테이너를 합쳐서 Web Application Server, WAS 라고 칭함
ex) Java EE
WAS 의 한계
필요한 웹 페이지 수가 수천~수십만 개로 늘어나면서 개발 시간도 길어지고, 유지/보수 비용이 증가함
어떤 동작을 수정해야 할 때, 해당 동작을 하는 모든 페이지에서 코드를 수정해야 하는데 이를 인력으로 감당할 수 없음