2013년 8월 11일 일요일

java based framework

자바기반 프레임워크(Framework) 소개 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  

프레임워크란 특정 문제 즉 S/W적인 문제를 해결 하기 위한 상호 협력하는 클래스나 인터페이스의 집합을 이야기 하는데 특정 애플리케이션을 만드는데 이용할 수 있는 재사용 가능하고(reusable), 완전하지 않은 (semi-complete) 형태의 Application 이다.
<?xml:namespace prefix = o />

또한 틀, 구조, 얼개, 하부구조 등으로 번역할 수 있는데 소프트웨어의 개발과 활용을 전제로 한다면 애플리케이션의 동작을 뒷받침하기 위해 만들어진 하부구조 정도로 해석할 수 있다.

 

결국 프레임워크에는 추상화를 제공 하는 여러 클래스나 컴포넌트로 구성되며 이러한 컴포넌트는 재사용이 가능하다.

 

그럼 아래에서 자바 기반의 프레임워크에는 어떠한 것들이 있는지 살펴 보자.

 

1.    스프링(Spring)

 

2002년 로드 존슨(Rod Johnson)의 저서 “Expert One-on-One J2EE Design and Development”에서 소개된 소스 코드와 디자인 패턴을 정리하면서 2003년초 오픈 소스로 시작된 프로젝트 이다. 제어역행(IoC, inversion Of Control), 관점지향 프로그래밍(AOP)의 특징이 있으며 “기존 잘 만들어진 솔루션과 경쟁하지 않고 이들과의 통합을 추진하는 것”이 Spring의 장점이다.

 

 

2.    스트럿츠(Struts)

 

스트럿츠는 Crag Maclanahan이 2000년 아파치 재단(ASF)에 기증한 것으로 MVC 모델의 구현에는 Sun이 주도하는 표준은 아니지만 사실상 표준으로 자리매김 하고 있다.

 

Model2에서 재 사용성이 부족했던 부분들을 재사용이 가능하도록 미리 구현해 놓은 프레임워크로 엔터프라이즈 환경에서 웹 애플리케이션을 만들기 위해 필요한 많은 부분들을 미리 만들어 놓은 것 이다.

 

3.    웹워크(WebWork)

 

XWork라는 Commnad Pattern Framework API를 활용한 웹 애플리케이션 프레임워크로 Struts 못지않은 명성을 얻고 있으며 인터셉터(Interceptor) , IoC(Inversion of Control) 등의 특징은 Struts 보다 우월하다. Struts1과 결합되어 Struts2를 만드는데 참여된 프레임워크 이다.

 

4.    코쿤(Cocoon)

 

코쿤은 Stefano Mazzocchi가 1999년 ASF 하에 설립한 오픈소스 프로젝트로서 XML 기반 웹사이트에서 컨텐츠의 스타일, 로직, 관리 기능의 분리를 돕는 것이다. XML, XSLT, SAX 기술을 활용하여 XML 서버 응용프로그램의 개발 및 배포를 지원 하고 있다.

 

5.    바라쿠다(Barracuda)

 

스트럿츠와 비슷한 Model2 형태의 아키텍쳐이며 스트럿츠보다 발전된 이벤트 전달 시스템을 제공하는데 이 프레임워크에서는 사용자 인터페이스를 생성할 때 XMLC를 이용하여 코드와 컨텐츠를 분할한다. XMLC는 자바기반 컴파일러로써 HTML과 XML 문서를 소스로 읽어 컴파일하여 자바 클래스를 생성하며 이 자바클래스가 실행되어 문서를 만들게 되는 것 이다.

 

6.    익스프레소(Expresso)

 

애플리케이션 개발 프레임웍으로써 보안, OR Mapping, 백그라운드 작업, 로깅 기능 등을제공하는 데이터베이스 드리븐 웹 애플리케이션 개발을 위한 프레임웍을 제공한다. DB를 주로 사용하는 웹 응용프로그램 개발을 위한 프레임웍 으로 MVC Model2 웹 애플리케이션 지원을 위해 Struts를 확장하도록 구성되어 있는데 Controller로는 Struts의 Controller를 활용하며 Struts에서 지우너하지 않는 모델 영역을 지원하도록 설계되어 있다.

 

7.    프리마커(Freemarker)

 

자바 서블릿을 위한 오픈소스 HTML Template Engine으로서 HTML을 템플릿으로 저장하여 템플릿 객체로 컴파일 한다. 이 템플릿 객체들은 서블릿에서 제공하는 데이터를 이용하여 HTML을 동적으로 생성한다.

 

8.    벨로시티(Velocity) 

 

스트럿츠와 마찬가지로 자카르타 프로젝트의 일부이며 자바기반 템플릿 엔진으로서 프리마커와 상당 부분 유사하다. 차이라면 벨로시티는 템플릿으로부터 SQL, XML, 자바코드 등을 생성 할 수 있는데 소스 코드들과 보고서를 생성하는 독립적인 유틸리티로도 사용 가능 하다.

 

9.    자바 서버 페이스(Java Server Face)

 

자바 개발자에게 웹 기반의 사용자 인터페이스를 작성하기 위한 API와 Tag Library를 제공한다. (웹 애플리케이션의 Presentation Layer를 위한 프레임워크)

 

자바 서버 웹 애플리케이션 제작과 유지를 위한 아키텍쳐와 API 집합을 정의하며 복잡한 HTML 폼과 다른 GUI 컴포넌트를 구현 할 때 도움이 되는 JSP 태그와 자바 클래스들의 표준 집합을 재정의 할 목적으로 생겨났으며 표준 API를 재정의하는 스펙 정도로 보면 된다.

댓글 없음:

댓글 쓰기