[정보처리기사 필기] 소프트웨어 개발 방법론 활용 - 134. 소프트웨어 개발 프레임워크

1. 소프트웨어 개발 프레임워크의 개요

  • 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
    • 반제품 : 완제품의 재료로 사용되기 위해 원료를 가공하여 만든 중간 제품
  • 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소
  • 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있어 개발자는 이미 존재하는 부분을 확장 및 이용하는 것
  • 프레임워크의 주요 기능 : 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등
  • 프레임워크의 종류 : 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크 등
  • 프레임워크의 특성 
    • 모듈화 Modularity
      • 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시킴
      • 개발표준에 의한 모듈화로 인해 유지 보수가 용이
    • 재사용성 Reusability
      • 재사용 가능한 모듈들을 제공
        • 재사용 : 비용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작
      • 예산 절감, 생산성 향상, 품질 보증 등이 가능
    • 확장성 Extensibility
      • 다형성 Polymorphism 을 통한 인터페이스 확장이 가능
        • 다형성 : 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체를 가지고 있는 고유한 방법으로 응답할 수 있는 능력
      • 다양한 형태와 기능을 가진 애플리케이션 개발이 가능
    • 제어의 역흐름 Inversion of Control
      • 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

2. 스프링 프레임워크 Spring Framework

  • 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
  • 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공
  • 전자정부 표준 프레임워크의 기반 기술로 사용

3. 전자정부 프레임워크

  • 우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
  • 개발 프레임워크의 표준 정립
  • 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 함
  • 오픈 소스 기반의 범용화가 되고 공개된 기술을 활용함으로써 특정 업체의 종속성을 배제하고 사업별 공동 컴포넌트의 중복 개발을 방지

4. 닷넷 프레임워크 .NET Framework

  • Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
  • Microsoft 사에서 통합 인터넷 전략을 위해 개발
  • 코드 실행을 관리하는 CLR Common Language Runtime (공동 언어 런타임)이라는 이름의 가상머신 상에서 작동
  • 메모리 관리, 유형 및 메모리 안전성, 보안, 네트워크 작업 등 여러 가지 서비스를 제공