둘러보기 생략.
 

Anyframe이란?

  Anyframe은 업무용 프로그램 개발을 효과적으로 진행하기 위해 기본 아키텍처, 기술 공통 서비스, 템플릿 등을 제공하는 어플리케이션 프레임워크로써 이를 활용 시 설계 및 개발 기간을 단축하고 유지보수를 용이하게 진행할 수 있다.
Anyframe은 자바 기반의 어플리케이션 프레임워크로써 업계 표준으로 활용되는 다양한 오픈 소스를 활용하여 구성되어 있다. 또한 오픈 소스를 활용하여 비즈니스 어플리케이션을 개발하는 과정에서 어려움을 느끼게 되는 오픈 소스의 선택, 활용 방법, 테스트 등에 대한 솔루션을 정형화된 가이드와 사례를 통해 제공하고 있다.

배경

최근에 소프트웨어 발전과 함께 매우 빠른 속도로 복잡성이 증가하고 있는데 이러한 개발 환경 위에서 서로 다른 역량을 가지고 있는 개발자들을 통해 일정 수준의 균일한 품질을 갖는 어플리케이션을 적절한 납기내에 개발하기 위해서는 표준화된 프레임워크 요구는 필수적이다. 자세한 배경에 대한 설명 및 프레임워크에 대한 내용은 이곳을 참고하도록 한다.

특징

Anyframe은 업계 표준으로 사용되는 Spring, Hibernate, Apache Commons PJT 등을 채택함으로써 오픈 소스 기반의 글로벌 스탠더드를 지향하며 Java EE, Servlet, JMX, JMS, Web Service 등의 국제 표준을 준수한다. 다음은 Anyframe의 특징을 목록으로 정리한 것이다.

  • 오픈 스탠더드 아키텍처 기반인 Spring의 개방형 기술 구조 채택: Anyframe는 환경 변화에 민감한 프로젝트의 개발 기반으로써 타 오픈 소스 및 상용 툴과의 연계가 용이하며 특정 회사의 WAS(Web Application Server, 이하 WAS)나 DBMS 제품에 독립적인 환경을 제공한다.
  • 순수 객체 중심의(POJO) 어플리케이션 개발 지원: 프레임워크로 인한 기본설계와 상세설계가 이중으로 진행되거나, 개발 시 설계 모델과 구현체가 불일치되는 영역을 방지한다.
  • Dependency Injection을 통한 의존 관계 처리: 철저하게 인터페이스 중심의 개발을 가이드하고 객체나 컴포넌트간의 의존관계는 Dependency Injection을 통해 처리함으로써 구현체의 변경에 따른 영향력을 최소화한다.
  • 관점지향 프로그래밍(Aspect Oriented Programming, 이하 AOP) 이용: 로깅, 트랜잭션, 예외처리 등과 같은 비기능 영역에 대한 코드가 업무 기능 개발 영역에서 분리되도록 함으로써, 개발자는 비즈니스 로직만을 구현하도록 한다.
  • 기술 공통 서비스 제공: DB 접근 및 SQL 처리, Cache, WAS와 연동 등과 같은 중요 기능에 대해 기술 공통 서비스를 제공함으로써 보다 빠르고 안정적인 개발을 지원한다.
  • MVC Model2 아키텍처 구조 제공 및 다양한 클라이언트 연계 지원: 프리젠테이션 레이어를 구조적으로 개발할 수 있는 MVC Model2 아키텍처 구조를 제공하며, 프로젝트 개발 시 공통적으로 필요한 일원화된 권한 관리, 에러 처리, 화면 흐름 제어 기능 등을 제공하며 다양한 클라이언트 연계(X-Internet 등)를 지원한다.
  • MiPlatform 화면 유형별 개발 템플릿 제공: 사용자간 상호작용을 중시하는 Web 2.0 기반의 기술 트렌드에 맞추어 개발 시 많이 사용되는 MiPlatform 기반의 화면 유형별 개발 템플릿을 제공하여 개발자가 쉽게 화면을 구성할 수 있게 한다.
  • AOP를 활용한 성능 모니터링 툴을 GUI 기반 툴 형태로 제공: 향후 컴포넌트 변경 및 SQL을 포함한 성능 모니터링 시에 유연하게 대처 가능하다.
  • IDE(Eclipse) 기반의 개발 툴 셋 제공: Anyframe 기반의 개발을 지원하기 위해 개발 툴 셋을 플러그인 형태로 제공한다.
  • 소스 품질 및 개발 생산성 향상 효과: Anyframe 기반의 소스 코드 생성, DB IO 처리 등을 쉽게 구현할 수 있으며 개발 시 오류 발생을 사전에 감지하고 수정할 수 있다.
  • 통합 빌드 환경 제공: 개발 라이프 사이클 전체에 걸쳐 사용되는 개발 도구와 빌드, 테스트 도구 등을 통합한 통합 빌드 환경(CTIP: Continuous Test & Integration Platform)을 제공한다.

Anyframe의 자세한 구성 요소를 살펴보려면 이곳을 참고하도록 한다.

적용 효과

다수의 개발자들이 참여하는 대규모 프로젝트에서 표준 프레임워크 없이 어플리케이션을 개발하는 경우, 개발자들이 동일한 기능의 유사한 코드들을 반복해서 만들어 냄으로써 중복 코드가 생성될 수 있다. 개발자간 의사소통할 수 있는 표준 도구로 활용되는 Anyframe 사용 시, 개발자마다 중복해서 만드는 공통 기능과 기본 아키텍처, 개발 표준 패턴을 제공하고, 개발 템플릿 및 개발 지원 툴을 활용하여 개발자 간 일관된 코드 개발이 가능하고 유지보수성이 증가하게 된다.

  • 개발 표준화: 프리젠테션/비즈니스/데이터 접근 레이어가 엄격하게 분리된 아키텍처에 따라, 각 레이어별 개발을 수행함으로써 개발자간 표준화된 코드 개발을 가능하게 한다.
  • 개발 생산성 향상: 공통 서비스를 재사용함으로써 개발 중복을 최소화하고 레이어 및 공통 영역 분리를 통해 개발자는 비즈니스 로직에만 집중할 수 있으며 프로젝트 및 코드 생성 기능을 제공하는 Gen, Query Manager 등의 개발 지원 툴을 활용하여 개발함으로써 오류 발생을 미리 감지하여 수정할 수 있으므로 개발 생산성 향상을 기대할 수 있다.
  • 유지보수성 증가: 표준 아키텍처를 기반으로 수직 및 수평 확장에 유연한 구조를 제공함으로써 잦은 비즈니스 환경 변화에 민첩하게 대응할 수 있다.
  • 품질 및 안정성 보장: 다년간의 프로젝트 수행 경험을 통해 검증된 공통 서비스를 활용하고 DB 리소스 반납 및 오류 처리 등과 같은 공통 전후처리 로직의 일괄 적용을 통해 어플리케이션의 품질 및 안정적인 운영을 보장한다.