소프트웨어 프레임워크

소프트웨어 프레임워크(Software framework)는 특정 종류의 프로그램을 개발하기 위한 공통 구조와 재사용 가능한 구성 요소를 제공하는 소프트웨어 기반이다. 프로그램의 핵심 기능을 구현하는 데 필요한 인터페이스와 라이브러리, 실행 흐름, 확장 지점 등을 제공하여 여러 프로젝트가...

영문명Software framework
분류소프트웨어, 개발 기반 기술
주요 구성재사용 가능한 코드, API, 확장 지점, 실행 구조
주요 사용 분야애플리케이션, 웹, 게임, 그래픽스, 데이터 처리
관련 기술소프트웨어 라이브러리, 응용 프로그래밍 인터페이스, 런타임 시스템

소프트웨어 프레임워크(Software framework)는 특정 종류의 프로그램을 개발하기 위한 공통 구조와 재사용 가능한 구성 요소를 제공하는 소프트웨어 기반이다. 프로그램의 핵심 기능을 구현하는 데 필요한 인터페이스와 라이브러리, 실행 흐름, 확장 지점 등을 제공하여 여러 프로젝트가 일관된 방식으로 개발될 수 있도록 한다.

일반적인 소프트웨어 라이브러리에서는 응용 프로그램이 필요한 함수를 직접 호출하는 경우가 많지만, 프레임워크는 전체 실행 흐름을 관리하면서 사용자 코드나 확장 모듈을 정해진 시점에 호출하기도 한다. 이와 같은 제어의 역전은 많은 프레임워크의 중요한 특징이다. 다만 실제 제품에서는 라이브러리, SDK, 프레임워크와 게임 엔진의 기능적 경계가 겹칠 수 있다.

프레임워크는 웹 애플리케이션과 모바일 앱뿐 아니라 게임 로직, 사용자 인터페이스, 테스트 자동화, 실시간 그래픽스와 데이터 처리 등에 널리 사용된다. 기술 관계를 파악할 때는 프레임워크의 구성 요소, 지원 언어와 플랫폼, 사용하는 소프트웨어 및 이를 바탕으로 개발된 도구를 함께 살펴볼 수 있다.

역사

초기 재사용 기술과 객체 지향 개발

애플리케이션 프레임워크의 발전

웹과 모바일 프레임워크

구성과 동작

제어의 역전

확장 지점과 플러그인

응용 프로그래밍 인터페이스

라이브러리와 종속성

런타임과 실행 환경

프레임워크의 종류

데스크톱 사용자 인터페이스

웹 프레임워크

모바일 프레임워크

게임 프레임워크

그래픽스 및 멀티미디어 프레임워크

테스트 프레임워크

기반 기술과의 관계

소프트웨어 라이브러리와의 차이

소프트웨어 개발 키트와의 관계

게임 엔진과의 관계

프레임워크를 사용하는 소프트웨어

관련 문서