본문 바로가기
1. SW 개발 & IT 트렌드

라이브러리, 프레임워크, 애플리케이션 프로그래밍 인터페이스(API)

by soosun 2021. 1. 6.

- history-of-web-frameworks-timeline-2019 -

처음 C/C++로 작업하면서 접해본 것이, MFC 였다. 복잡성과 편리성을 동시에 제공하는 이런 환경 때문에 개발자들 사이에 많은 이야기들이 있었고, 이런 정형화된 틀에 갇히게 되는 것을 경계하는 목소리도 컸었던 것 같다. 사실 MS는 초기에 개발자들을 윈도우즈에 유입시키고 발을 묶어두기 위한 전략으로 MFC를 사용한 것이라는 것은 잘 알려진 정설이다. 아직도 건제한 Microsoft Visual Studio가 산증인이 아닐까 ?

- (Microsoft Foundation Class Library, MFC)는 마이크로소프트에서 만든 윈도 API C++로 둘러 싼 라이브러리로,  클래스들은 윈도의 공용 컨트롤과 스마트 포인터를 사용하는 창 개체이다. MFC의 문서/뷰 프레임워크는 데이터 모델과 유저 인터페이스, 제어 로직을 분리한다는 MVC 디자인 패턴을 자연스럽게 만들어준다. 

 

라이브러리, 프레임워크, 애플리케이션 프로그래밍 인터페이스(API) 간의 차이를 알아보자.

누구나 손쉽게 사용하는 용어들이지만 개념적으로는 차이가 있다.

분산환경의 확산과 web 중심의 추세에 맞추어, 현대의 프로그래밍 환경이 다양한 프레임워크들 속에서 이루어지고 있으나,

이 것이 프로그래머들에게 어떤 영향을 주는 것이지는....

 

www.redhat.com/ko/topics/cloud-native-apps/what-is-a-Java-framework

 

자바 프레임워크(Java Framework)란? 종류, 라이브러리, 차이점

자바 프레임워크란 개발자가 Java 프로그래밍 언어로 애플리케이션 작성을 위해 미리 작성된 코드를 뜻하며, 프레임워크 종류에 따라 사전 정의 클래스가 달라집니다.

www.redhat.com

프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. 라이브러리와 프레임워크를 헷갈리는 경우도 있는데, 보통 프레임워크라고 하면 클래스 라이브러리가 합쳐진 형태라고 볼 수 있다.
메소드  클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다. - wiki -
웹 프레임워크(web framework, WF) 또는 웹 애플리케이션 프레임워크(web application framework, WAF)는 동적인 웹 페이지나, 웹 애플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다. 웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주 목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함하고 있다. 모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 
  • Spring: Java 웹 프레임워크
  • AngularJS/Vue/React: JavaScript의 웹 프레임워크
  • Django: Python 웹 프레임워크
  • Flask: Python의 마이크로 웹 프레임워크
  • Ruby on Rails: Ruby 웹 프레임워크
  • Laravel, Codeigniter, CakePHP, Symfony, Zend: PHP 웹 프레임워크
  • Bootstrap: 트위터 jQuery 기반 웹 프레임워크
  • .NET Framework: MS Windows 프로그램 개발 및 실행 환경 프레임워크
  • Node.js: Express.js, NestJS, meteor 프레임워크
  • 웹 프론트엔드의 SPA용 프레임워크 (AngularJS, Angular, Vue.js 등)
  • Qt: The Qt Company에서 개발한 오픈 소스 C++ 개발 프레임워크
  • Play: 함수형 언어 Scala 웹 프레임워크
  • 안드로이드: 안드로이드 애플리케이션용 프레임워크
  • Cocoa: iOS, macOS 애플리케이션용 프레임워크

 

댓글