Anyframe구성
Anyframe은 Java EE 기술을 이용하여 쉽고 빠르게 비즈니스 어플리케이션의 개발을 지원할 수 있도록 프레임워크, 개발 및 관리도구, 개발 환경을 중심으로 프로젝트가 구성되어 있다. Anyframe의 이러한 구성 기반 하에서 개발자들이 개발을 수행하게 됨으로써 개발 표준이 확립되어 투명한 개발 환경을 구현할 수 있게 되므로, 향후 시스템 유지보수와 업그레이드 그리고 신규 개발자 투입 시에도 쉽게 작업을 진행해 나갈 수 있다.
여기에서는 어플리케이션이 개발 및 실행되는 관점을 기준으로 Technology Stack을 구성하고 해당 영역에서 활용한 오픈소스나 이를 확장한 영역에 대해 소개한다.

Anyframe Technology Stack
프레임워크
오픈 소스 기반의 글로벌 스탠더드를 지향하는 Anyframe 프레임워크는 개발과 운영시에 활용되는 프레임워크로 다음과 같이 2개의 프로젝트가 존재하며, 이 프레임워크들은 Spring을 중심으로 구성되어 있다.
- Anyframe은 Spring 기반에서 다양한 best-of-breed 오픈 소스를 통합 및 확장하여 구성한 어플리케이션 프레임워크로 MVC 레이어드 아키텍처를 준수하여 웹 어플리케이션을 구조적으로 개발할 수 있도록 지원한다. 또한 프레임워크를 기반으로 업무용 프로그램 개발을 효과적으로 진행할 수 있도록 기술 공통 서비스, 템플릿 기반의 프로젝트 구조 및 샘플 코드, 매뉴얼 등을 제공함으로써 설계 및 개발 기간을 단축하고 유지보수를 용이하게 진행할 수 있도록 지원한다.
- 주요 오픈 소스: Spring, Hibernate, Log4j, Apache CXF, Spring MVC, Struts 등
- IAM은 Java EE 기반의 엔터프라이즈 어플리케이션을 위한 보안 솔루션(사용자 인증 및 권한관리)을 제공하는 Identify & Access Management Framework 이다. Java EE 기반의 엔터프라이즈 어플리케이션은 사용자 인증 및 권한관리에 대한 다양한 요구사항을 가지고 있으며, 각각의 엔터프라이즈 어플리케이션에 대하여 이러한 기능들을 매번 새로이 개발하는 것은 많은 추가 비용과 리소스를 부담하게 한다. IAM은 Spring Security를 기반으로 하여 Anyframe 또는 Spring Framework 기반으로 작성된 엔터프라이즈 어플리케이션에 대하여 인증 및 권한관리 기능을 제공함으로써, 개발 생산성을 향상시키고 사용자 인증 및 권한관리에 능동적이고 유연한 형태의 어플리케이션을 개발할 수 있도록 지원하는 프레임워크이다.
- 주요 오픈 소스: Spring Security, jQuery, jqGrid Plugin, jsTree Plugin, Spring-Json, Hibernate 등
개발/관리 도구
Anyframe에서 제공하는 툴은 크게 개발 도구와 관리 도구로 구분하여 제공하고 있다. 개발 도구에는 아래와 같이 3개의 서브 프로젝트(Anyframe IDE, Anyframe Oden, Anyframe Query Manager)가 존재하며 다수의 오픈 소스가 Eclipse에 배포되어 운영되는 Eclipse 플러그인들도 함께 제공한다. 관리 도구에는 현재 2개의 서브 프로젝트(Anyframe Log Manager, Anyframe Monitoring)가 존재한다.
- Anyframe IDE: Anyframe을 기반으로 어플리케이션을 개발할 때 Anyframe 설치에서부터 어플리케이션과 프로젝트 생성 그리고 코드 생성 기능을 통해 개발 편의성을 제공해주는 개발 툴로 CLI(Command Line Interface)와 Eclipse Plugin 툴을 통해 Scaffolding과 코드 생성 기능을 제공한다. (구버전 Anyframe Gen)
- Anyframe Oden: CI (Continuous Integration) 환경을 통해 빌드된 어플리케이션 컴포넌트 및 각종 설정파일, 웹파일 등을 원하는 배포대상서버에 편리하게 배포할 수 있도록 하는 배포관리 툴이다.
- Anyframe Query Manager : Anyframe의 Query Service를 사용할 때 필요한 데이터베이스 Query문을 관리하고 활용하기 쉽도록 해 주는 Eclipse 플러그인이다.
- 그외 오픈 소스 툴 사용
Spring IDE, SQL Explorer, WTP
- Anyframe Log Manager : 어플리케이션에서 남긴 로그를 조회/분석하고, 로그 레벨을 변경 할 수 있는 로그 관리 툴이다.
- Anyframe Monitoring: 오픈 소스 InfraRED를 기반으로 사용자 UI를 개선하여 더욱 쉽고 편리하게, Java EE 기반 어플리케이션의 성능을 진단할 수 있도록 방법을 제공한다.
개발 환경
개발 환경은 대외 프로젝트에서 사용할 수 있는 수준으로까지 패키징 되어 제공되지는 않으나, Anyframe을 개발하기 위해 사용해온 오픈 소스 중심으로 가이드 라인을 제공할 예정이다.
- Anyframe의 모든 소스 코드는 형상 관리 도구로 Subversion(이하 SVN)을 사용하고 있다.
- 오픈 소스: Subversion
- Anyframe에서는 프로젝트의 이슈 관리 및 버그 추적을 위한 도구로 JIRA를 활용하고 있다.
- 오픈 소스: JIRA
- Anyframe은 어플리케이션 개발 라이프 사이클 전체에 걸쳐 사용되는 개발 도구와 빌드, 테스트 도구 등을 통합한 자동화된 CTIP(Continuous Test & Integration Platform) 환경 기반으로 개발되고 있다.
- 오픈 소스: QuickBuild, JUnit, Maven

