API vs Framework vs Library

이하연·2021년 9월 16일
0

[oop] 객체지향

목록 보기
6/7

https://www.youtube.com/watch?v=We8JKbNQeLo

API

정의

API는 Application Programming Interface

응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

좀 더 쉽게 설명하자면 프로그래밍 간에 연결시켜주는 다리 역할

특징

  • URI를 통해 데이터를 받는 형태가 많다
  • 구현과 독립적으로 사용법만 정의되어 있다
  • API에 따라 접근 권한이 필요할 수 있다.
  • 예시 - Kakao Map API, java API, 여러 기업들의 오픈 API

Library

정의

Library는 응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 높은 소프트웨어

단어 뜻대로 도서관으로 생각해보자면, 필요한 책(필요한 기능,함수)이 있다면 대여하기 위해 도서관(소프트웨어)에서 빌려오는 것처럼 생각하면 이해하기 쉽다.

즉, 자주 사용하는 함수들을 모아 재사용하는 것이다.

특징

  • 독립성을 가진다

  • 모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결

    • 예시

      math

      이 라이브러리는 삼각법이나 로그 함수같은 반복적인 수학적 기능을 제공합니다. 프로그래밍 언어들은 데이터 가공, 그래프 조작, 문자열 파싱 등의 작업을 위한 라이브러리들을 가지고 있습니다. 만약 라이브러리가 있다면 모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결할 수 있습니다.

  • 응용 프로그램이 능동적으로 라이브러리를 사용한다.

    • 의미 : 개발자가 개발할 때 필요한 부분에 능동적으로 라이브러리를 호출해서 사용한다

    • 예시

      calculate

      학교 학생들의 성적의 평균을 계산하는 프로그램을 만들고 싶어요
      이때 문자열을 받아 파싱해서 우리가 원하는 평균값을 반환하는 라이브러리를 사용하고 싶습니다.

      학생들의 성적이 담긴 문자열을 입력 받는다
      필요한 라이브러리를 호출해서 원하는 값을 얻는다.

      String scores = "버디:80, 뚱이:15, 에헴:75, 이바:50, 지노: 20";
      
      // 여기서 라이브러리 calculate(String: scores)를 호출
      double average = library.calculate(scores);
      
      return average
  • Apache Commons, Guava, Lombok, jQuery 등이 존재


Framework

정의

Framgework = Frame 틀,뼈대 + work 일하다 = 틀 안에서 일하다

응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경

특징

  • 반복적인 디자인 패턴을 쉽게 재활용할 수 있다.

  • 상호협력하는 클래스와 인터페이스의 집합이다.

  • 응용 프로그램이 수동적으로 프레임워크에 의해 사용된다.

  • Spring Framework, Junit, Ruby on Rails

단점

  • 원하는 모든 기능들이 있는 것은 아니다. 오히려 framework 때문에 추가적인 처리 해야 할 수 있다.
  • 때때로 필요하지 않은 기능들이 있기에 과도한 크기를 가진다.
  • 중요한 프레임워크의 업데이트는 상황에 따라 많은 비용이 필요하다.
  • 때로는 오래된 프레임워크 버전에 결합되어 있어 업데이트를 하지 않는 편이 나을 수도 !

API , Library, Framework 의 차이점

Library와 API

구현로직의 유무

Library와 Framework

Framework : 어떻게 작동하는지 정의,통제 / your code: 원하는 행위 정의 / library: 유용한 기능 정의

  • Library는 우리가 코딩할때, 필요하면 호출해서 사용하기에 우리가 원하는 블록인 Library1, Library2를 가져다가 끼는 형식입니다.
  • Framework는 우리의 코드를 Framework가 원하는 모양으로 만들어서 끼워야 합니다.
  • 호출된 libary는 우리의 코드에 연결하고, 우리의 코드를 다시 framework에 연결됩니다.

→ 이렇듯 응용 프로그램의 흐름 주도권을 누가 가지고 있느냐에 따라 달라집니다.

0개의 댓글