Anyframe Core 소개

JavaEE는 방대한 양의 다양한 툴들과 Framework들을 가진 매우 강력한 개발 플랫폼 이지만, 이런 방대한 양의 지원이 오히려 개발자의 관점에서 보면 증가된 복잡성으로 개발이 더 어려운 실정이다. Anyframe Core는 Spring을 중심으로 다양한 오픈소스를 통합/확장한 best-of-breed JavaEE 구성하여 JavaEE 기반 어플리케이션 개발시 겪게 되는 복잡성을 해소하고 좀 더 빠르게 개발할 수 있도록 도와주는 어플리케이션 프레임워크이다.
Anyframe Core에서 제공하는 전형적인 개발 방법과 Layered Architecture에 기반한 application templates, 10 minutes sample application들을 통해 개발자는 좀더 빠르게 비즈니스 로직 영역에만 집중하여 개발을 진행할 수 있을 것이다.

Anyframe Core의 특징

  • 프레임워크로 인한 기본 설계와 상세 설계가 이중으로 진행되거나, 개발 시 설계 모델이 구현체와 불일치 되는 것을 방지하기 위해 순수 객체 중심의(POJO) 어플리케이션 개발을 지원한다.
  • 철저하게 인터페이스 중심의 개발을 가이드하고 객체나 컴포넌트간의 참조 관계는 Dependency Injection을 통해 처리함으로써 구현체의 변경에 따른 영향력을 최소화한다.
  • 로깅, 트랜잭션, 예외처리 등과 같은 비기능 영역에 대한 코드가 업무 기능 개발 영역에서 분리될 수 있도록 함으로써, 개발자는 비즈니스 로직에만 집중하여 구현하도록 한다.
  • DB 접근 및 SQL 처리, 캐쉬, WAS와 연동 등과 같은 중요 기능에 대해 재사용 가능한 기술 공통 서비스를 제공 함으로써 보다발 빠르고 안정적인 개발을 지원한다.
  • 속성 정의를 통해 Transaction을 선언적으로 일괄 제어할 수 있도록 지원함으로써, 개발이 간편해지며 안정적인 어플리케이션 운영이 가능하다.
  • Anframe Core 기반으로 어플리케이션을 개발할 때 코드 자동 생성, DB I/O 처리 등의 개발 지원 툴을 활용하여 개발 및 테스트를 수행함으로써 사전에 오류 발생을 감지할 수 있다.

Anyframe Core의 주요기능

Lightweight 컨테이너

Anyframe의 Lightweight 컨테이너는 순수 POJO(Plain Old Java Objects) 기반 개발을 지원하며, 순수 POJO 기반으로 설계/개발된 모듈들을 엮어서 해당 어플리케이션이 제대로 된 기능을 제공할 수 있도록 지원한다.
  • POJO기반 개발 지원

  • 순수 POJO 기반으로 어플리케이션 개발이 가능하도록 지원하다. 이것은 프레임워크로 인한 기본 설계와 상세설계가 이중으로 진행되는 것을 막고, 설계 모델과 구현체가 불일치 되는 것을 방지한다.
  • Dependency Resolution 지원

  • 어플리케이션 구성 모듈간 의존 관계를 처리하기 위한 방법을 제공한다. 대부분의 Lightweight 컨테이너들과 마찬가지로 DI(Dependency Injection)을 지원하며, 이외에 DL(Dependency Lookup)도 가능하다.
  • Aspect Oriented Programming 지원

  • AOP는 어플리케이션 전체에 걸쳐 사용되나 쉽게 분리된 모듈로 작성하기 힘든 로깅, 인증, 권한체크, DB 연동, 트랜잭션, 락킹, 에러처리 등과 같은 공통 기능을 재사용 가능하도록 컴포넌트화 할 수 있는 기법이다. 이러한 공통 기능은 Crosscutting Concerns라고 하며 해당 어플리케이션이 제공하는 비즈니스의 코드를 직접 건드리지 않고 모듈 사이 사이에 필요한 Crosscutting Concerns이 엮어져 동작되도록 한다.
  • Life-cycle 관리

  • Lightweight 컨테이너는 정의된 모듈의 Life-cycle을 관리하여 해당 모듈들을 초기화시키고 종료시키는 역할을 수행함으로써 개발자가 비즈니스 로직에 집중하여 개발할 수 있게 된다.
  • 신규 기능 추가 용이

  • XML 기반의 설정을 통해서 간단하게 컨테이너 기반 위에 신규 기능을 추가할 수 있도록 지원한다.

기술 공통 서비스

Anyframe은 자체 개발 또는 오픈 소스 활용 및 확장을 통해 어플리케이션 개발 시 용이하게 재사용 할 수 있는 다양한 기술 공통 서비스들을 제공한다. 이러한 Lightweight 컨테이너에서 동작 가능하도록 설계/개발되었으며, 이런 서비스들은 인터페이스 규약에 맞게 구현 클래스를 추가하거나 확장함으로써 해당 어플리케이션에 맞게 변경할 수 있다.
  • DataSource 서비스

  • 데이터베이스에 연결하여 Connection 객체를 전달해주는 서비스
  • Query 서비스

  • 쿼리문이나 객체의 입력만으로 데이터베이스 내에 저장된 데이터 조작을 가능하게 하는 서비스
  • ID Generation 서비스

  • 유일한 ID를 생성하기 위해 사용하는 서비스
  • Properties 서비스

  • 외부 파일이나 환경 정보의 key값을 통해 value에 접근할 수 있도록 해주는 서비스
  • Transaction 서비스

  • Transaction 관리에 대하여 일관성 있는 추상화된 방법을 제공하는 서비스