ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API, Library, Module, Framework 란?
    Programming/BackEnd 2020. 4. 22. 11:02

    API란 Application Programming Interface의 약자로 응용프로그램에서 데이터를 주고 받기 위한 방법을 뜻합니다. 예를 들어 Google Map 라이브러리를 사용하기 위해서는 GoogleMap API를 이용하여야 합니다. GoogleMap API 문서에 나온대로 설정 및 코딩을 하면 Goolgle에서 제공하는 데이터를 사용할 수 있습니다. 여기서 GoogleMap은 라이브러리를 의미합니다. 라이브러리란 함수들의 집합이라고 할 수 있습니다. 자주 쓰는 기능들을 모듈화 시켜놓은 것입니다. 프로그래머는 API를 이용함으로써 라이브러리를 쉽게 이용할 수 있다는 장점이 있습니다. 라이브러리에 접근하기 위해서는 API를 이용해야합니다. 즉, API는 라이브러리를 이용하기 쉽게 하기 위한 규약이라고도 할 수 있습니다.

     

    API

    어떠한 응용프로그램 간에 데이터를 주고 받기 위한 방법을 의미합니다. 어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지, 그리고 어떠한 데이터를 제공 받을 수 있을지에 대한 규격.

    특정 라이브러리나 모듈의 복잡한 내부적인 로직을 모르더라도 API를 통해 라이브러리를 쉽게 사용할 수 있다.

    API는 대통령이 폭탄발사버튼을 누르는 것에 비유할 수 있다. 대통령은 폭탄 발사 과정의 복잡한 로직을 모르더라도 버튼만 누르면 폭탄을 발사시킬 수 있다. 즉, 개발자는 복잡한 라이브러리를 API를 통해 손쉽게 사용할 수 있다는 것이다. 단, 데이터를 주고 받는 형식은 정해진대로 설정을 해야한다.  

     

    라이브러리

    공구상자에 들어 있는 하나의 공구. 하나의 특정 목적을 갖고 있다. 

    라이브러리(library)는 다른 프로그램들과 링크되기 위하여 존재하는, 하나 이상의 서브루틴(subroutine)이나 함수(function)들의 집합 파일 말하는데 함께 링크(link)될 수 있도록 보통 컴파일된 형태인 목적코드(object code) 형태로 존재한다.

    장점

    코드의 재사용, 부품화 실현, 소스를 제공하지 않음으로서 중요기술의 유출 방지

    개발자입장에서는 개발 시간을 단축시킬 수 있음.

    라이브러리들은 사용자의 프로그램과 링크되어 실행이 가능한 완전한 프로그램을 이룬다. 이러한 링크는 대개 정적으로 연결되지만, 시스템에 따라 동적으로 연결될 수 있다.

     

    프레임워크

    쉽고 빠르고, 일관성 있는 개발을 위해 제공되는 틀 또는 뼈대를 제공. 개발키트라고 생각하면된다. 개발 키트 안에는 여러가지 공구들(라이브러리, 클래스들), 메뉴얼(개발문서) 등 이 포함되어있다.

    메뉴얼대로 개발하지 않아도 제품을 만들 수는 있지만, 그럴 경우 여러 사람이 작업할 때 어디까지 작업했는지, 어떤 식으로 작업했는지 알기가 어렵다. 즉, 유지보수가 어렵다는 뜻이다.

    프레임워크의 메뉴얼대로 개발을 하면 합의된 방식으로 개발하는 것이기 때문에 협업이 용이하고 유지보수성, 생산성이 높아지는 것이다. 즉, 개발효율성이 높아진다.  

    개발을 위한 틀. 클래스, 인터페이스의 집합.

    프로그램의 근간이 되는 구조를 잡는 것으로부터 시작하여, 각종 외부 요소(데이터베이스, 보안, 사용자 인터페이스)와 접하는 영역에 대한 구현 방식을 제안하는 역할

     

    모듈

    특정 기능을 위한 데이터, 함수, 클래스의 집합

     

     

     

     

     

    'Programming > BackEnd' 카테고리의 다른 글

    포트포워딩(PortFowarding)이란?  (0) 2020.04.25
    HTTP 프로토콜의 이해  (0) 2020.04.25
    1. 클라이언트 - 서버 구조의 이해  (0) 2020.04.25
    서버 개발 프레임워크  (0) 2020.04.22
    AWS 개념  (0) 2020.04.22
Designed by Tistory.