애니프레임(Anyframe)은 삼성에서 공개한 오픈소스 기반의 Java 어플리케이션 개발 프레임워크인 Anyframe을 정리 한다. Anyframe은 오픈 소스 커뮤니티를 통해서 어플리케이션 개발 시 공통으로 사용되는 오픈 소스 기반의 어플리케이션 프레임워크와 이를 쉽게 사용할 수 있도록 체계적인 가이드 제공 한다.[1]
등장배경
애니프레임은 자바(Java) 기반의 어플리케이션 개발 시 광범위하게 사용되는데 이때 애니프레임을 완제품 형태로 그대로 사용할 수도 있으나 범용적인 형태로 제공되므로 보통 적용하려는 프로젝트에 알맞게 제공된 기능을 기반으로 확장(Customizing)하여 사용한다. 애니프레임은 어플리케이션 프레임워크이므로 반제품 형태로 사용하는 것을 원칙으로 한다.[2]
개요
애니프레임은 업무용 프로그램 개발을 효과적으로 진행하기 위해서 기본 아키텍처, 기술 공통 서비스, 템플릿 등을 제공하는 어플리케이션 프레임워크로써 이를 활용 시 설계 및 개발 기간을 단축하고 유지보수를 용이하게 진행할 수 있다. 애니프레임은 자바 기반의 어플리케이션 프레임워크로써 업계 표준으로 활용되는 다양한 오픈 소스를 활용하여 구성 되어 있다. 또한 오픈 소스를 활용하여 비즈니스 어플리케이션을 개발하는 과정에서 어려움을 느끼는 오픈 소스의 선택, 활용 방법, 테스트 등에 대한 솔루션을 정형화된 가이드와 사례를 통해 제공하고 있다.[2]
특징
애니프레임은 업계 표준으로 사용되는 Spring, Hibernate, Apache Commons PJT 등을 채택함으로써 오픈 소스 기반의 글로벌 스탠더드를 지향하며 Java EE, Servlet, JMX, JMS, Web Service 등의 국제 표준을 준수한다. 다음은 애니프레임의 특징을 목록으로 정리한 것이다.
- 오픈 스탠더드 아키텍처 기반인 Spring의 개방형 기술 구조 채택
애니프레임은 환경 변화에 민감한 프로젝트의 개발 기반으로써 다른 오픈 소스 및 상용 툴과의 연계가 용이하며 특정 회사의 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) 기반의 개발 툴 셋 제공
애니프레임 기반의 개발을 지원하기 위해 개발 툴 셋을 플러그인 형태로 제공한다.
애니프레임 기반의 소스 코드 생성, DB IO 처리 등을 쉽게 구현할 수 있으며 개발 시 오류 발생을 사전에 감지하고 수정할 수 있다.
개발 라이프 사이클 전체에 걸쳐 사용되는 개발 도구와 빌드, 테스트 도구 등을 통합한 통합 빌드 환경(CTIP: Continuous Test & Integration Platform)을 제공한다.[2]
종류
애니프레임은 Java EE 기술을 이용하여 쉽고 빠르게 비즈니스 어플리케이션의 개발을 지원할 수 있도록 프레임워크, 개발 및 관리도구, [[개
발 환경]]을 중심으로 프로젝트가 구성되 어 있다. 애니프레임의 이러한 구성 기반 하에서 개발자들이 개발을 수행하게 됨으로써 개발 표준이
확립되어 개발 환경을 구현할 수 있게 되므로, 향후 시스템 유지보수와 업그레이드 그리고 신규 개발자 투입에도 손 쉽게 작업을 진
행해 나갈 수 있다.[3]
평가와 전망
애니프레임의 국내 확산 속도와 업계의 관심은 예상을 뛰어넘는 수준이라며 최근 어려운 경제 여건 속에도 삼성SDS는 연구개발(R&D)에 지속적으로 투자하여 애니프레임을 명품 소프트웨어로 육성해 나가겠다고 한다.
각주
참고자료
- OSS, 〈애니프레임〉, 《OSS》, 2010-09-29
- 〈애니프레임〉, 《미디어위키》
- java, 〈애니프레임〉, 《네이버 블로그》, 2008-08-08
같이 보기
이 애니프레임 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
개발 : 프로그래밍 □■⊕, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
프로그래밍 언어
|
ASP • C 언어 • C++ • C# • CSS • D 언어 • HTML • HTML5 • JSP • PHP • R • XHTML • XML • XSLT • 고(Go) • 고급언어 • 기계어 • 델파이 • 러스트 • 루비 • 루아 • 리액트 • 리퀴디티 • 무브 • 미켈슨 • 베이직 • 브이비스크립트 • 비주얼 C++ • 비주얼베이직(VB) • 비주얼베이직닷넷(VB.NET) • 솔리디티 • 스몰토크 • 스위프트 언어 • 스칼라 • 스크립트 언어 • 알골 • 어셈블리 • 언리얼스크립트 • 얼랭 • 에이잭스(Ajax) • 엠에프씨(MFC) • 오브젝티브-C • 오브젝트 파스칼 • 오카멜 • 웹어셈블리(WASM) • 이와즘(eWASM) • 자바 • 자바스크립트 • 저급언어 • 제이슨(JSON) • 제이쿼리(jQuery) • 카멜 • 코볼 • 코틀린 • 콜드퓨전 • 타입스크립트 • 파스칼 • 파워스크립트 • 파이썬 • 펄(Perl) • 포트란 • 프로씨(Pro-C) • 피엘에스큐엘(PL/SQL) • 피엘원(PL/I) • 하스켈
|
|
개발방법론
|
CBD 개발방법론 • EA • 구조적 개발방법론 • 객체지향 개발방법론 • 라이브러리 • 람다 아키텍처 • 모듈 • 모듈화 • 벤치마킹 • 소프트웨어 개발방법론 • 스크럼 • 스프린트 • 아키텍처 • 아키텍트 • 애자일 • 웹개발방법론 • 정보공학 개발방법론 • 컴포넌트 • 테일러링 • 템플릿 • 폭포수 모델 • 프로젝트 • 프로토타입 • 피드백
|
|
코딩
|
EUC-KR • UTF-8 • 값 • 글루웨어 • 노팔로우 링크 • 두팔로우 링크 • 디버깅 • 디코딩 • 마크업 • 버그 • 부트스트랩 • 세이브포인트 • 소스코드 • 시큐어코딩 • 아스키 • 액티브엑스 • 오픈소스 • 유니코드 • 인코딩 • 재컴파일 • 주석 • 컴파일 • 컴퓨터 프로그램 • 코드 • 코딩 • 태그 • 테스트 • 테이블 • 텍스트 • 파싱 • 퍼블리싱 • 퓨니코드 • 하드코딩 • 하이퍼링크 • 하이퍼텍스트
|
|
프로그래밍
|
C 명령어 • 객체 • 객체지향 • 객체지향 프로그래밍 • 거짓 • 관계연산자 • 기본형 변수 • 널 • 논리 • 논리연산 • 논리연산자 • 다중상속 • 다형성 • 대입 • 대입문 • 대입연산자 • 더블 • 도스 명령어 • 디폴트 • 레지스터변수 • 루프 • 리눅스 명령어 • 리턴 • 메모리 주소 • 메소드 • 멤버 • 명령문 • 명령어 • 무한루프 • 문자 • 문자열 • 바이트 • 반복문 • 배열 • 변수 • 분기 • 분기문 • 불린 • 브레이크 • 비교연산자 • 비트연산자 • 산술연산자 • 상속 • 상수 • 생성자 • 선언 • 선언문 • 설정자 • 속성 • 스위치 • 스태틱 • 시프트연산자 • 실행 • 실행문 • 어노테이션 • 에코 • 역참조 • 연산 • 연산문 • 연산자 • 오버로딩 • 오버라이딩 • 외부변수 • 윈도우 명령어 • 유닉스 명령어 • 인스턴스 • 인스트럭션 • 인클루드 • 인터페이스 • 임포트 • 입력 • 입력문 • 입출력 • 입출력문 • 자료형(데이터 타입) • 자바 명령어 • 자바 예약어 • 자바 컬렉션 • 전역변수 • 접근자 • 접근제어자 • 정보은닉 • 정수형 • 정적변수 • 제어 • 제어문 • 제어자 • 조건 • 조건문 • 조건연산자 • 주소 • 증감연산자 • 지역변수 • 참 • 참조 • 참조변수 • 초기화 • 추상메소드 • 추상클래스 • 추상화 • 출력 • 출력문 • 캡슐화 • 케이스 • 클래스 • 파라미터(매개변수) • 파이널 • 패키지 • 퍼블릭 • 포인터 • 프라이빗 • 프로텍티드 • 필드(멤버변수) • 함수 • 환경변수
|
|
명령어
|
abstract • array • boolean • break • byte • case • char • continue • default • double • do while • echo • elif • else • else if • false • final • float • for • gosub • goto • if • if else • import • include • int • join • long • long long • null • print • printf • println • private • protected • public • return • scanf • short • stdio.h • static • string • switch • temp • then • true • unsigned • void • while
|
|
디자인패턴
|
구조패턴 • 동시성패턴 • 동시실행패턴 • 모델-뷰-컨트롤러 패턴 • 상태패턴 • 생성패턴 • 싱글톤패턴 • 아키텍처패턴 • 전략패턴 • 커맨드패턴 • 행동패턴
|
|
프로그래밍 인물
|
귀도 반 로썸 • 그레이스 머레이 호퍼 • 니클라우스 비르트 • 댄 브릭클린 • 더그 커팅 • 데니스 리치 • 리누스 토르발스 • 리처드 그린블라트 • 마거릿 해밀턴 • 마크 앤드리슨 • 빈트 서프 • 빌 게이츠 • 빌 조이 • 스티브 잡스 • 에이다 러브레이스 • 제임스 고슬링 • 척 벤턴 • 켄 톰슨 • 팀 패터슨
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|