본문 바로가기

CS

[CS] 프레임워크와 라이브러리, API 차이

프레임워크 라이브러리


프레임워크

  • 소프트웨어의 특정 문제를 해결하기 위한 클래스와 인터페이스의 집합
  • 소프트웨어의 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것
  • 객체의 생성, 관계설정, 생명 주기들을 제어함
  • 설계의 재사용

라이브러리

  • 도구(부품)로써의 개념이 강한 코드. 만든 클래스에서 필요한 기능을 호출하여 사용한다.
  • 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합
  • 코드의 재사용
프레임워크 라이브러리 차이
  • 제어 흐름에 대한 주도성이 어디에 있는지가 핵심, 프레임워크의 제어의 역전(Inversion Of Control) 개념
  • 프레임워크는 제어의 흐름이 프레임워크에 내재되어 있으나 라이브러리는 프로그래머가 주도하고 라이브러리를 도구로 이용하는 차이
  • 라이브러리는 필요한 기능이 있을 때 능동적으로 라이브러리를 사용, 프레임워크는 프레임워크가 사용자의 코드를 불러와 사용하는 느낌
  • 따라서 프레임워크에는 코드에 대한 규칙이 정해져 있음
  • 프레임워크에는 메뉴얼, 룰이 있으며 자유도가 떨어지는 반면 라이브러리는 자유롭게 프로그래머가 사용 가능함
  • 프레임워크는 효율적이고, 검증된 코드라는 점에서 버그 발생 가능성이 적으며 유지보수가 안정적(프레임)이지만 학습에 오랜 기간이 걸리고 제작자의 의도된 제작 틀이 있어 자유롭게 개발하기 어렵다는 한계가 있음

API


  • API(Application Programming Interface): 프로그램이 동작하는 환경을 제어하기 위해 환경에서 제공되는 조작 장치
  • 어플리케이션 : (운영체제를 제외한, 특정 목적으로 프로그래밍된)소프트웨어
  • 인터페이스 : 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계 즉, 리모콘같이 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템