배경
Anyframe은 비즈니스 어플리케이션을 개발하기 위한 기본 아키텍처, 기술 공통 서비스, 템플릿 등을 제공하는 어플리케이션 프레임워크로써 다음와 같은 배경을 갖고 있다.
상세 배경
소프트웨어의 복잡성은 매우 빠른 속도로 증가하고 있다. 이러한 복잡성의 많은 부분은 제품의 수명을 단축시키고 기능 요구 사항을 증가시키는 원인이 되고 있다. 동일한 제품에 대해서도 서로 다른 하드웨어나 OS에 따라 다양한 버전을 개발해야 한다.
지난 20년간 개발된 많은 표준 소프트웨어 블럭들은 여전히 여러 제품 개발이나 IT 서비스에 널리 활용되고 있다. 대표적인 예로서 오픈 소스 소프트웨어의 성공을 들 수 있다. 그러나 다양한 기존 라이브러리의 사용은 통합에 있어 많은 어려움을 가지고 있으며, 특정 목적을 위해 필요 없는 기능도 재사용 과정에서 포함되고 있다.
개발과 운영 측면에 있어서도 단위 모듈의 경계가 명확치 않아 전체 모듈이 테스트 되어야 하고, 문제 발생 시 이에 대한 대처가 여전히 어려운 게 현실이다.
특히 이슈가 되는 부분은 새로운 시스템으로 기존의 기능을 통합하는 대신에 새로운 소프트웨어를 만드는데 중심을 둔다는 것이다. 그러나 현실은 기존 코드를 통합하는데 많은 공수가 소요되고 있다. 이와 같은 환경에서 개발되는 어플리케이션은 재사용 및 확장성이 중요하므로 프레임워크가 이러한 것에 대한 해결책을 제시해줄 수 있다.
Anyframe은 자바(Java) 기반의 어플리케이션 개발 시 광범위하게 사용될 수 있는데 이때 Anyframe을 완제품 형태로 그대로 사용할 수도 있으나 범용적인 형태로 제공되므로 보통 적용하려는 프로젝트에 맞게 제공된 기능을 기반으로 확장(Customizing)하여 사용하도록 한다. Anyframe은 어플리케이션 프레임워크이므로 반제품 형태로 사용하는 것을 원칙으로 한다.
프레임워크 정의
프레임워크는 Black box 형태의 재사용을 통해 적은 공수를 들이면서도 빠른 시간 내에 안정적인 어플리케이션 구성을 가능하게 하는 반제품 형태의 SW 집합을 말한다.
프레임워크는 다음과 같이 구분할 수 있다.
프레임워크 구분

