자동차의 예를 들어 프레임워크가 무엇인지 보자.자동차에는 프레임이라는 것이 있다. 프레임이라는 것은 각종 장치가 정착할 수 있도록 하는 자동차의 뼈대 역할을 한다. 자동차를 조립할 때 프레임을 기준으로 엔진, 바퀴, 좌석, 외형 등의 부품을 붙여 만드는 것이다. 프레임이 없으면 자동차를 만드는 작업이 오래 걸릴 뿐 아니라 작업이 어려워진다.
프레임워크 탄생 어플리케이션의 제작 요구가 많아져 제작진을 늘리는 데 한계가 있었다. 또 제작진의 실력에 따라 애플리케이션 품질에 문제가 되기도 했다. 품질 수준을 맞추면서 빠르게 제작하는 작업이 필요했던 것이다. 처음에는 필요한 함수를 모아 라이브러리(Library)를 만들어 사용했지만 부족했다. 그 때문에, 애플리케이션의 골조가 필요했다. 라이브러리와 공통의 기능을 모아 애플리케이션의 뼈대가 되는 프레임워크를 만든 것이다.
(Tip) 라이브러리와 프레임워크의 차이 * 라이브러리는 자주 사용되는 기능을 재사용하기 위해 모은 컴포넌트이다. 간단히 설명하면 공구함 같다. 필요한 도구가 상자에 담겨 있어 사용자가 도구를 꺼내 사용하면 된다.* 프레임워크는 라이브러리와 같은 컴포넌트를 사용자가 쉽게 사용할 수 있도록 재편성한 것이다. 라이브러리가 공구함이라면 프레임워크는 모두 공구들이 합쳐진 전동공구라고 할 수 있다. 사용자가 전동공구 사용법만 알면 간단한 방법으로 다양한 공구 기능을 사용할 수 있는 것이다.
프레임워크를 사용해 애플리케이션을 만들 경우 프레임워크를 골자로 사용하며 부가적인 기능만 추가해 만들게 된다. 예를 들어 웹 어플리케이션의 제작용 프레임워크에는 사용자의 로그인 상태를 확인하고 제어할 수 있는 환경이 제공되기 때문에 로그인 상태에 따라 표시할 화면과 표시하지 않을 화면을 결정하고 이에 대한 처리만 작업하면 된다. 프레임워크가 없으면 로그인 상태를 확인하고 제어하는 기능부터 만들어야 한다.
프레임워크 종류 구분 설명 언어별 프레임워크 코드 이그나이터 PHP 기반의 웹 애플리케이션 프레임워크 http://ellislab.com/codeigniter 스프링 기반의 애플리케이션 프레임워크(웹 애플리케이션, 배치(batch), 빅데이터 애플리케이션 지원) http://spring.io 정고(Django) 파이슨 기반의 웹 애플리케이션 프레임워크 http://www.djangoproject.com 제이콜리(JQuery) 자바스크립트의 웹 애플리케이션 라이브러리 http://jquery.com* 워너크에 막강한 기능을 제공하며. 제이콜리는 웹 UI 프레임워크인 부트스트랩처럼 사용되며 동적인 웹페이지를 만드는 데 사용된다.웹 UI 프레임워크 부트스트랩(Bootstrap) http://getbootstrap.com/ 파운데이션(Foundation) http://foundation.zurb.com/ 스켈레톤(Skelecton) http://www.getskeleton.com * 웹 UI 프레임워크는 공통적으로 크로스 브라우징(Corws Browsing) 및 반응형 웹디자인(Responsive Web Design)을 지원하는 모바일 웹 애플리케이션 JQuery Mobilehtm://http://www.telerik.com/kendo-uiSenchaTouchhttp://http://www.telerik.com/kendo-uiSenchaTouchhttpts/touch* 해당 프레임워크는 HTML5 기반의 모든 모바일 기기에서 웹사이트를 볼 수 있도록 지원하며, 반응형 웹사이트를 제작 할 수 있다.모바일 앱 애플리케이션 폰갭(phonegap) http://phonegap.com 앱셀러터(appcelerator) http://www.appcelerator.com(Tip) 전자정부 프레임워크 정부에서는 공공사업 부분 정보화 사업을 통해 많은 시스템을 개발해야 했다. 그런데 매번 시스템을 만들 때마다 동일한 기능을 중복해서 개발하는 일이 많았다. 정부 시스템 간에는 많은 연동작업이 필요했지만, 시스템마다 다른 환경에서 개발하고 연동작업을 하는데 많은 시간과 노력이 필요했다. 뿐만 아니라 시스템을 만든 뒤 유지 관리하는 데 애를 먹었다. 이를 개선하기 위해 전자정부 체제를 만들게 되었다. 전자정부 프레임워크는 개발언어를 자바로 선정해 개발환경과 실행환경뿐 아니라 시스템을 만든 이후의 관리환경, 운영환경까지 모두 정의했다. 덧붙여서, 전자정부 프레임워크는 스프링 프레임워크에 기초하고 있다.
(출처) – 프로가 되기 위한 웹 기술 입문 (저자 : 코모리 유스케 저. (2012년)