프레임워크에 대한 이해 - 소프트웨어 프레임워크의 정의, 프레임워크의 특징, 프레임워크의 구성 요소

CODEDRAGON Development/Software Engineering

반응형

 

 

 

 

프레임워크에 대한 이해

·       소프트웨어 프레임워크의 정의

·       프레임워크의 특징

·       프레임워크의 구성 요소

 


 

 

♣소프트웨어 프레임워크의 정의

·       효율적인 정보시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스 규약(Application Programming Interface), 설정정보 등의 집합으로서 소프트웨어 구성에 필요한 기본 뼈대를 제공합니다.

·       광의적으로 정보시스템의 개발 및 운영을 지원하는 도구 및 가이드 등을 포함합니다.

·       "A software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions." (from Wikipedia)

 

https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

https://en.wikipedia.org/wiki/Software_framework

 

 

 

프레임워크의 특징

특징 설명
모듈화
(modularity)
·       프레임워크는 구현을 인터페이스 뒤에 감추는 캡슐화를 통해서 모듈화를 강화합니다.
·       프레임워크의 모듈화는 설계와 구현의 변경에 따르는 영향을 최소화함으로써 손쉽게 소프트웨어의 품질을 향상시킬 수 있게 합니다.
재사용성
(reusablity)
·       프레임워크가 제공하는 인터페이스는 여러 애플리케이션에서 반복적으로 사용할 수 있는 일반적인 컴포넌트를 정의할 수 있게 함으로써 재사용성을 높여준다.
·       프레임워크 재사용성은 도메인 지식과 경험있는 개발자들의 이전의 노력을 활용하여, 애플리케이션의 요구사항과 소프트웨어 설계에 대한 공통의 솔루션을 반복적으로 재개발하고, 그에 대해 유효성을 다시 확인하는 작업을 피할 수 있게 합니다.
·       프레임워크 컴포넌트를 재사용하는 것은 소프트웨어의 품질, 성능, 신뢰성, 상호 운용성을 향상시킬 뿐만 아니라, 프로그래머의 생산성을 상당히 높여줍니다.
확장성
(extensibilty)
·       프레임워크는 다형성(polymorphism)을 통해 애플리케이션이 프레임워크의 인터페이스를 확장할 수 있게 합니다.
·       프레임워크 확장성은 새로운 애플리케이션 서비스와 특성을 커스터마이징하는 것을 보장하는 데 필수적인 사항이며, 또한 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 합니다.
제어의 역흐름
(inversion of control)
·       일반적으로 어떤 모듈을 호출함으로써 해당 모듈을 재사용하게 된다. 그러나 프레임워크에서는 이와는 반대되는 제어 흐름으로의 재사용성을 지원합니다.
·       여기에서 이른바 "헐리우드 원리(Holywod Principle)" , "나를 부르지 마라. 내가 너를 부를 것이다"라는 원리가 적용되는 것이다. , 프레임워크 코드가 전체 애플리케이션의 처리흐름을 제어하며, 특정한 이벤트가 발생할 때 다형성(Polymorphism)을 통해 애플리케이션이 확장한 메서드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 거꾸로 흐르게 합니다. 이러한 제어의 역흐름을 통해서 프레임워크가 외부의 이벤트에 대해서 애플리케이션이 어떠한 메서드들을 수행해야 하는지를 결정할 수 있게 합니다.

 

 

 

프레임워크의 구성 요소

특징 설명
실행환경 자바 기반의 응용시스템 개발 시 필수적인 기능을 패턴화하여 미리 구현해 둔 라이브러리 코드 묶음
개발환경 설계, 구현, 테스트 등 개발 생명주기(Life Cycle)상에 필요한 지원도구 모음
운영환경 표준프레임워크를 기반으로 개발한 시스템에 대하여 운영 시에 필요한 의사소통 및 모니터링 도구 모음
관리환경 표준프레임워크에 대한 기술지원, 업그레이드 등을 관리하기 위한 표준프레임워크센터 내부 업무시스템