API vs Library vs Framework

supway·2022년 9월 28일
0

Tech

목록 보기
6/7

API (Application Programming Interface)란?

  • 응용 프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 (시스템 사이의 중간다리 역할 => 리모컨)

  • 다른 프로그램이 제공하는 기능을 제어하는 것 (메서드)

ex)
구글 로그인을 이용해서 로그인을 하는 사이트를 만든다고 했을 때
구글에서 제공해주는 Google People API 를 사용할 수 있다.
이때
위의 주소를 입력하게 되면 사용자 정보를 불러올 수 있음
=> 이것을 가능하게 만드는 것이 API

  • API 특징
    • 구현과 독립적으로 사양만 정의되어 있음 (구현이 아닌 제어를 담당)
    • API를 조합해 원하는 프로그램 생성 가능
    • API 에 따라 접근 권한이 필요
    • Java API, 여러 기업들의 오픈 API

Library 란?

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

  • 재사용 가능한 코드의 집합 (도구)

  • 특징

    • 개발하는 데 필요한 것을 모아둔 일종의 저장소
    • 독립성을 가짐
    • 응용 프로그램이 능동적으로 라이브러리 사용 (흐름을 제어)
      => 개발자가 라이브러리에 있는 메서드(API)를 마음대로 사용함
    • Apache Commons, Lombok, jQuery 등

Framework 란?

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

  • 개발할 때에 빈번히 쓰여지는 범용 기능을 한꺼번에 제공해 개발 효율의 향상을 목표하는 소프트웨어 환경 (프로그램의 기본이 되는 뼈대나 틀)

  • 기본 뼈대가 있으니 내부를 어떻게 만드는지만 신경 쓰면 됨

  • 특징

    • 공통적인 개발환경 제공 (개발 편의성)
    • 상호협력하는 클래스와 인터페이스의 집합
    • 응용 프로그램이 수동적으로 프레임워크에 의해 사용
      => 프레임워크가 개발자가 작성한 비즈니스 로직을 호출해 수행함
      (제어의 역전)
    • Spring Framework, Junit, Ruby on Rails 등
  • Library vs API vs Framework

    • Library 와 API 의 차이점은 구현 로직의 유무
    • Library 와 Framework 의 공통점은 개발에 편리성을 제공
      차이점은 응용 프로그램의 주도권을 누가 가지고 있는가
      우아한Tech의 테코톡(욘,티버님의 프레임워크 vs 라이브러리 vs API)를 참조하였습니다.
profile
개발잘하고싶은사람

0개의 댓글