맨위로가기

애플리케이션 프레임워크

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

애플리케이션 프레임워크는 애플리케이션 개발을 위한 기본적인 구조와 기능을 제공하는 소프트웨어 프레임워크이다. 초창기에는 애플이 매킨토시용으로 개발한 MacApp이 대표적이며, 이후 macOS, Windows, 크로스 플랫폼 등 다양한 환경에서 사용되는 프레임워크들이 등장했다. 주요 사례로는 macOS의 Cocoa, Windows의 .NET Framework, 크로스 플랫폼을 위한 Qt 등이 있으며, 웹 애플리케이션 개발을 위한 ASP.NET, Ruby on Rails 등도 존재한다.

더 읽어볼만한 페이지

  • 소프트웨어 프레임워크 - 플러터
    플러터는 구글에서 개발한 UI 프레임워크로, 다트 언어와 위젯 기반 아키텍처를 사용하여 여러 플랫폼에서 네이티브에 가까운 성능을 내는 애플리케이션을 개발할 수 있으며, 디자인투코드 기술을 통해 개발 효율성을 높이고, 'Flock' 포크를 통해 생태계 다양성을 추구한다.
  • 소프트웨어 프레임워크 - 랭체인
    랭체인은 2022년 해리슨 체이스가 시작한 언어 모델 기반 애플리케이션 개발 프레임워크로, 챗봇, 검색 증강 생성, 문서 자동 요약 등에 활용되며 다양한 데이터 형식과 도구를 지원하고 개발자 커뮤니티의 활발한 참여 속에 2023년 법인 전환 후 투자를 유치했으며 애플리케이션 배포 도구인 랭서브를 출시했다.
  • 프로그래밍 도구 - SWIG
    SWIG는 C/C++ 코드를 다른 프로그래밍 언어에서 사용할 수 있도록 인터페이스를 자동으로 생성해주는 도구로서, 복잡한 데이터 형식 처리, 메모리 관리 등을 지원하며, LLDB, GNU Radio, TensorFlow 등 다양한 프로젝트에서 활용된다.
  • 프로그래밍 도구 - 소스 코드 편집기
    소스 코드 편집기는 구문 강조, 자동 완성, 들여쓰기 등의 기능으로 코드 편집을 용이하게 하고 개발 도구 실행 환경을 제공하며, 텍스트 편집 대신 AST를 조작하는 구조 편집기도 존재한다.
  • 사유 소프트웨어 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 사유 소프트웨어 - 스타오피스
    스타오피스는 1985년 스타라이터에서 시작하여 다양한 플랫폼으로 확장되고 썬 마이크로시스템즈에 인수되어 OpenOffice.org의 기반이 되었던 오피스 스위트였으나, 오라클에 인수 후 오라클 오픈 오피스로 변경되었다가 판매가 중단되었으며, 워드 프로세서, 스프레드시트, 프레젠테이션 프로그램 등을 포함하고 있었다.
애플리케이션 프레임워크
개요
유형소프트웨어 프레임워크
분야컴퓨터 소프트웨어
목적애플리케이션 개발
특징제어 역전 (IoC)
확장 가능한 설계
주요 개념
제어 역전 (IoC)프레임워크가 애플리케이션 코드 호출
확장성필요에 따라 기능 확장 가능
재사용성공통 코드 기반 재사용
장점
생산성 향상개발 시간 단축
코드 품질 향상표준화된 구조
유지보수 용이성모듈화된 설계
단점
학습 곡선프레임워크 학습 필요
유연성 제한프레임워크 규칙 준수 필요
오버헤드추가적인 자원 소모 가능
예시
웹 애플리케이션 프레임워크스프링 프레임워크
장고
루비 온 레일즈
데스크톱 애플리케이션 프레임워크.NET Framework
자바FX
Qt
참고
관련 용어소프트웨어 라이브러리
디자인 패턴

2. 역사

애플은 최초의 상용 애플리케이션 프레임워크 중 하나인 MacApp (매킨토시용)을 개발했다. MacApp은 원래 Object Pascal이라고 불리는 확장된 (객체 지향) 버전의 파스칼로 작성되었으며, 나중에 C++(C++)로 다시 작성되었다. macOS용 Cocoa는 NeXT에서 개발한 OpenStep 프레임워크를 기반으로 한다.

2. 1. 발전 과정

애플은 최초의 상용 애플리케이션 프레임워크 중 하나인 MacApp을 매킨토시용으로 개발했다. MacApp은 1985년에 최초로 출시되었으며, 원래 Object Pascal이라고 불리는 확장된 (객체 지향) 버전의 파스칼로 작성되었다. 이후 C++(C++)로 다시 작성되었다. Mac용으로 주목할 만한 또 다른 프레임워크는 Carbon을 기반으로 한 Metrowerks의 PowerPlant이다. macOS용 Cocoa는 NeXT에서 개발한 OpenStep 프레임워크를 기반으로 한다.

2010년대 이후, 많은 앱들이 구글의 크로미움 프로젝트를 기반으로 한 프레임워크로 만들어졌다. 대표적인 프레임워크는 Electron과 크로미움 임베디드 프레임워크이다.

자유-오픈 소스 소프트웨어 프레임워크는 모질라, LibreOffice, GNOME, KDE, NetBeans, 및 이클립스 프로젝트의 일부로 존재한다.

마이크로소프트C++(C++)로 윈도우 애플리케이션을 개발하기 위한 Microsoft Foundation Class Library 프레임워크와 비주얼 베이직 또는 C#으로 애플리케이션을 개발하기 위한 .NET Framework를 판매한다.

몇몇 프레임워크는 공통 소스 코드로부터 리눅스, 매킨토시, 윈도우용 크로스 플랫폼 애플리케이션을 구축할 수 있다. 예를 들어 Qt, wxWidgets, Juce, Fox 툴킷, 이클립스 Rich Client Platform(RCP) 등이 있다.

오라클 애플리케이션 개발 프레임워크 (Oracle ADF)는 자바 기반 시스템 제작을 지원한다.

실리콘 래버러토리스는 자사의 무선 칩 시리즈에서 무선 애플리케이션 개발을 위한 임베디드 애플리케이션 프레임워크를 제공한다.

MARTHA는 모든 RealObjects 소프트웨어가 구축된 독점 소프트웨어 자바 프레임워크이다.

3. 특징

애플리케이션 프레임워크는 재사용 가능한 많은 코드를 프레임워크로 묶어 개발자의 수고를 덜고, 새로운 애플리케이션을 위해 정형화되고 표준적인 코드를 매번 다시 작성하지 않아도 되도록 한다.

3. 1. 객체 지향 프로그래밍과의 관계

애플리케이션 프레임워크 구현에는 객체 지향 프로그래밍 기법이나 객체 지향 프로그래밍 언어가 일반적으로 사용되며, 프레임워크 내의 기존 클래스를 상속하여, 어떤 애플리케이션의 독자적인 파생 부품을 정의할 수 있다. 애플리케이션에 의한 특정 처리의 부분적인 커스터마이즈에는 콜백 함수나 가상 함수에 의한 다형성을 사용한 커스터마이즈 포인트를 프레임워크 내에 준비함으로써 차분 프로그래밍이 가능하다.

3. 2. GUI 개발 지원

애플은 최초의 상용 애플리케이션 프레임워크 중 하나인 MacApp(1985년 최초 출시)을 매킨토시용으로 개발했다. 원래 Object Pascal이라고 불리는 확장된 (객체 지향) 버전의 파스칼로 작성되었으며, 나중에 C++(C++)로 다시 작성되었다. Mac용으로 주목할 만한 또 다른 프레임워크는 Carbon을 기반으로 한 Metrowerks의 PowerPlant이다. macOS용 Cocoa는 NeXT에서 개발한 OpenStep 프레임워크를 기반으로 하는 애플리케이션 프레임워크에 대한 다른 접근 방식을 제공한다.

2010년대 이후로, 많은 앱들이 구글의 크로미움 프로젝트를 기반으로 한 프레임워크로 만들어졌다. 두드러진 프레임워크는 Electron과 크로미움 임베디드 프레임워크이다.

자유-오픈 소스 소프트웨어 프레임워크에는 모질라, LibreOffice, GNOME, KDE, NetBeans, 및 이클립스 프로젝트의 일부가 있다.

마이크로소프트C++(C++)로 윈도우 애플리케이션을 개발하기 위한 Microsoft Foundation Class Library라고 불리는 프레임워크와 비주얼 베이직 또는 C#으로 애플리케이션을 개발하기 위한 유사한 프레임워크인 .NET Framework를 판매한다.

몇몇 프레임워크는 공통 소스 코드로부터 리눅스, 매킨토시, 윈도우용 크로스 플랫폼 애플리케이션을 구축할 수 있으며, 예를 들어 Qt, wxWidgets, Juce, Fox 툴킷, 또는 이클립스 Rich Client Platform(RCP) 등이 있다.

오라클 애플리케이션 개발 프레임워크 (Oracle ADF)는 자바 기반 시스템 제작을 지원한다.

실리콘 래버러토리스는 자사의 무선 칩 시리즈에서 무선 애플리케이션 개발을 위한 임베디드 애플리케이션 프레임워크를 제공한다.

MARTHA는 모든 RealObjects 소프트웨어가 구축된 독점 소프트웨어 자바 프레임워크이다.

애플리케이션 프레임워크는 특히 그래픽 사용자 인터페이스(GUI)가 보급되면서 일반화되었다. 이는 GUI가 운영 체제의 사양과 밀접한 관계가 있고, 일반적인 조작을 공통화하는 관점에서 애플리케이션의 기본 구조와 외관(룩앤필)의 표준화를 촉진하는 경향이 있기 때문이다. GUI 애플리케이션은 CUI 애플리케이션에 비해 구현이 어렵고, GUI 부품(위젯)의 그리기나, 이벤트 처리를 위한 이벤트 루프(메시지 루프) 등의 기술이 복잡해지기 쉽지만, 대부분의 애플리케이션은 비슷한 GUI 부품을 필요로 하고, 비슷한 이벤트 루프 구조를 가지고 있기 때문에 새로운 애플리케이션을 개발할 때마다 새로 작성하는 것은 노력이 낭비된다. GUI에서는 애플리케이션의 기본 코드 구조가 명확하기 때문에 표준 프레임워크에는 자동 GUI 생성 도구(템플릿이나 코드 생성기)가 준비되어 있는 경우가 많고, 서드 파티에 의한 도구 개발도 비교적 쉽다.[1]

4. 주요 사례

모질라, LibreOffice, GNOME, KDE, NetBeans, 이클립스 등은 자유-오픈 소스 소프트웨어 프레임워크의 주요 사례이다.

실리콘 래버러토리스는 자사의 무선 칩 시리즈에서 무선 애플리케이션 개발을 위한 임베디드 애플리케이션 프레임워크를 제공한다.

4. 1. macOS

애플은 최초의 상용 애플리케이션 프레임워크 중 하나인 MacApp을 매킨토시용으로 개발했다. MacApp은 원래 Object Pascal이라고 불리는 확장된 (객체 지향) 버전의 파스칼로 작성되었으며, 나중에 C++(C++)로 다시 작성되었다. Mac용으로 주목할 만한 또 다른 프레임워크는 Carbon을 기반으로 한 Metrowerks의 PowerPlant이다. macOS용 Cocoa는 NeXT에서 개발한 OpenStep 프레임워크를 기반으로 하는 애플리케이션 프레임워크이다.

2010년대 이후로, 많은 앱들이 구글의 크로미움 프로젝트를 기반으로 한 프레임워크로 만들어졌다. 두드러진 프레임워크는 Electron과 크로미움 임베디드 프레임워크이다.

4. 2. Windows

마이크로소프트C++윈도우 애플리케이션을 개발하기 위한 마이크로소프트 파운데이션 클래스 라이브러리(MFC)와 비주얼 베이직 또는 C#으로 애플리케이션을 개발하기 위한 유사한 프레임워크인 .NET 프레임워크를 판매한다. MFC는 Windows API를 얇게 감싼 C++ 언어 전용 클래스 라이브러리 및 프레임워크이며, 마이크로소프트는 이 외에도 ATL 및 WTL와 같은 C++의 템플릿 기능을 활용한 클래스 라이브러리 및 프레임워크도 개발하고 있다.[1] .NET 프레임워크는 기본 클래스 라이브러리 외에도 Windows 데스크톱 애플리케이션용 표준 GUI 프레임워크로 윈폼즈(WinForms) 및 WPF를 포함하고 있다.[1] Windows 8 이후의 Modern UI 애플리케이션 개발의 기반이 되는 WinRT에 대응하는 WinUI도 존재한다.[1]

4. 3. 크로스 플랫폼

Qt, wxWidgets, Juce, Fox 툴킷, 이클립스 RCP 등과 같이 공통 소스 코드로부터 리눅스, 매킨토시, 윈도우용 크로스 플랫폼 애플리케이션을 구축할 수 있는 프레임워크들이 있다.

4. 4. 자바

오라클 애플리케이션 개발 프레임워크 (Oracle ADF)는 자바 기반 시스템 제작을 지원한다. MARTHA는 모든 RealObjects 소프트웨어가 구축된 독점 소프트웨어 자바 프레임워크이다.[1]

4. 5. 기타

애플은 최초의 상용 애플리케이션 프레임워크 중 하나인 MacApp을 매킨토시용으로 개발했다. Object Pascal이라는 확장된 (객체 지향) 버전의 파스칼로 작성되었으며, 나중에 C++(C++)로 다시 작성되었다. Mac용으로 주목할 만한 또 다른 프레임워크는 Carbon을 기반으로 한 Metrowerks의 PowerPlant이다. macOS용 Cocoa는 NeXT에서 개발한 OpenStep 프레임워크를 기반으로 한다.

2010년대 이후, 많은 앱들이 구글의 크로미움 프로젝트를 기반으로 한 프레임워크로 만들어졌다. 두드러진 프레임워크는 Electron과 크로미움 임베디드 프레임워크이다.

자유-오픈 소스 소프트웨어 프레임워크는 모질라, LibreOffice, GNOME, KDE, NetBeans, 및 이클립스 프로젝트의 일부로 존재한다.

마이크로소프트C++(C++)로 윈도우 애플리케이션을 개발하기 위한 Microsoft Foundation Class Library라고 불리는 프레임워크와 비주얼 베이직 또는 C#으로 애플리케이션을 개발하기 위한 유사한 프레임워크인 .NET Framework를 판매한다.

몇몇 프레임워크는 공통 소스 코드로부터 리눅스, 매킨토시, 윈도우용 크로스 플랫폼 애플리케이션을 구축할 수 있으며, 예를 들어 Qt, wxWidgets, Juce, Fox 툴킷, 또는 이클립스 Rich Client Platform(RCP) 등이 있다.

오라클 애플리케이션 개발 프레임워크 (Oracle ADF)는 자바 기반 시스템 제작을 지원한다.

실리콘 래버러토리스는 자사의 무선 칩 시리즈에서 무선 애플리케이션 개발을 위한 임베디드 애플리케이션 프레임워크를 제공한다.

MARTHA는 모든 RealObjects 소프트웨어가 구축된 독점 소프트웨어 자바 프레임워크이다.

4. 6. 웹 애플리케이션 프레임워크

웹 애플리케이션 구축을 위한 애플리케이션 프레임워크도 다수 존재한다. ASP.NET, Apache Struts, Ruby on Rails 등이 대표적이다.

참조

[1] 웹사이트 Object Oriented Application Frameworks http://www1.cse.wust[...] 2011-05-29
[2] 웹사이트 Mozilla Application Framework in Detail https://developer.mo[...] 2011-05-29
[3] 웝사이트 Trend Interview:アプリケーション・フレームワークの誤解と真実(1/2) - @IT https://atmarkit.itm[...]
[4] 웹인용 Object Oriented Application Frameworks http://www1.cse.wust[...] 2019-01-29
[5] 웹인용 Mozilla Application Framework in Detail https://developer.mo[...] 2019-01-29



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com