ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API란 무엇인가?
    STUDY/Computer Science 2023. 8. 9.

    어떤 것을 좀 사용해봤다고 그것에 대해 잘 이해하고 있다고 착각하는 경우가 종종 있다.

    내가 그렇다. API가 뭔지 설명해보란 말에 떠올랐던 생각은 "어떠한 역할을 수행할 수 있는 기능?" 따위였다.

    분명 API에 대한 내용을 한 번 들었건만, 제대로 정리하지 않고 프로젝트만 진행해서 API를 계속 만들줄만 알고

    API가 어떤건지에 관해서는 다 까먹어버린 것이다.

     

    뭐 이렇게 기회가 왔으니, 이참에 API에 대해 정리해보고자 한다!

     

    API

    API는 Application Programming Interface의 약자로, 사전적 정의는 "응용 프로그램에서 사용할 수 있도록, 운영 체제 혹은 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스"를 말한다. 

     

    여기서 인터페이스(interface)란 서로 다른 두 개의 물체가 상호간에 정보나 신호를 주고받기 위해서 필요한 접점이나 경계면을 말한다!
    즉, 상호간에 소통을 위해 만들어진 접점이다.

     

    이해가 쉽게 실생활에서 비유해보자.

    식당에서 음식을 주문하는 손님과 주문을 받는 점원 그리고 요청에 맞게 음식을 조리하는 요리사가 있다.

    손님은 점원이 가져다준 메뉴판을 보며 음식을 선택하고, 그 주문을 점원이 요리사에게 전달한다. 요리사는 어떤 손님이 어떤 음식을 시켰는지는 모르지만 요청이 들어온 음식을 요리해서 점원에게 전달하고, 점원은 전달받은 요리를 다시 손님에게 전달한다.

     

    여기서 점원손님요리사 사이에서 소통을 주관하는 인터페이스(interface) 인 것이다

     


    UI(User Interface) - 사용자 인터페이스

    UI는 한번쯤 들어봤을 수 있다. UI란 인간과 컴퓨터 사이에서 의사소통을 목적으로 만들어진 물리적, 가상적 접점(매개체)을 의미한다. 사용자 인터페이스는 인간과 컴퓨터 사이에서 상호간에 소통할 수 있도록 입력, 출력 역할을 수행한다.

    이 역시 예시로 듣는 편이 훨씬 이해가 빠를 것이다.

     

    다음은 UI의 종류들이다.

     

    내가 지금 블로그를 작성하려면 키보드라는 인터페이스를 통해서 작업을 명령해야 한다. 없다면 글을 쓸 수가 없다. 바탕화면은 보이지만 마우스라는 인터페이스가 없다면 커서를 이동할 수가 없다. 이러한 키보드와 마우스 같은 UI를 Hardware User Interface라고 한다.

     

    우리가 바탕화면에 있는 크롬 아이콘을 더블 클릭하면 브라우저 창이 뜬다. 브라우저 창을 띄우는 명령어의 입력없이 그래픽 요소들을 통해 

    컴퓨터와 정보 교환을 가능하게 해주는 인터페이스를 Graphical User Interface(GUI)라고 한다.

     

    마지막으로 Web User Interface(WUI)는 우리가 흔히 보는 웹 브라우저 상에서 인터페이스로 화면의 디자인, 배너, 아이콘, 검색 버튼 등 시각적인 요소를 말한다. 항상 들어가던 Naver, Youtube 등 자주보던 화면들이 이에 해당한다!

     

    그렇다면 API는 무엇과 무엇의 소통을 주관하는 인터페이스 인가?

     

    API란 응용 프로그램(Application)들이 서로 소통하기 위한 접점으로, 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다. 

    여기서 응용 프로그램(Application)이란 운영체제(MacOS, Linux, Window 등)에서 실행되는 모든 소프트웨어를 말한다.

    -크롬(Chrome) 브라우저, Slack, KakaoTalk, 메모장, Keynote, Excel 등

     

    웹 서비스에서의 API

    API가 어플리케이션 사이에서 소통 역할을 하는 접점이라고 했는데, 그렇다면 웹/앱 서비스에 있어서 API란 무엇일까

    내가 인스타그램 서비스를 만들고 운영한다고 예를 들어보자면. 사용자가 서비스를 원활하게 이용하기 위해서 필요한 운영체제 혹은 서버에서 실행되고 있어야하는 애플리케이션은 크게 3가지를 얘기할 수 있다. 먼저, 사용자에게 웹 사이트를 표출하기 위해서 필요한 클라이언트 애플리케이션(Chrome 브라우저)과 인스타그램 서비스의 모든 정보가 저장되어 있는 데이터베이스 애플리케이션이 필요합니다.

     

    여기서 브라우저는 여러가지 이유로 데이터베이스에서 서비스에 필요한 정보들을 직접 요청해서 받아올 수 없기 때문에 중간에서 소통해줄 수 있는 인터페이스가 필요하다. 바로 이러한 소통의 역할을 해주는 응용 프로그램(애플리케이션)이 API 이다.

     

    API 유형

    API는 3가지 유형으로 나뉘는데, 차이점 접근할 수 있는 범위 차이이다.

    1) private API
    : private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행하기 때문에 외부에 노출되지 않는다.

    2) public API
    : public API는 개방형 API로, 모두에게 공개되는 API 형태이다.

    3) partner API
    :partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있는 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.

     

    API 장점

    아까의 예를 다시 들고와본다면 식당에서 손님은 원하는 음식을 주문을 하면 점원이 가져다 준다. 이때 손님은 이 음식이 어떻게 만들어지는지 딱히 알 방법이 없다. 사실 몰라도 아무 상관이 없다. 이것이 API의 장점이다. 내가 가져다 쓰려는 API의 기능을 구현하는 방법을 몰라도 API가 가져다주는 기능을 그대로 사용하면 된다.

    당신이 만약 의류 이커머스 사이트를 만든다고 할 때, 결제 시스템은 꼭 있어야 할 기능일 것이다. 하지만 이 시스템을 당신이 직접 만들 필요가 없다. 만드는 시간도 시간이며, 옷을 파는것보다 시스템을 구축하고 유지보수 하는 데 더 힘이 들지도 모른다.

    이럴 땐 결제 시스템 API를 받아와서 사이트에 넣는 방식이 훨씬 현명한 방법인 것이다.

     

    정리하며

    자주 말하고 듣고 보는.. API에 대해서 알아봤다. 이번엔 제발 머리에 들어차길 바라면서 썼다.

    다음엔 REST까지 정리를 해볼 생각이다.

     

     

    참조 - https://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/

    https://dev-dain.tistory.com/50

    https://www.shutterstock.com/ko/blog/what-is-an-api/

    'STUDY > Computer Science' 카테고리의 다른 글

    데이터베이스 정규화 알아보기  (0) 2023.08.16
    DB Transaction  (0) 2023.07.26
    시간 복잡도에 관하여  (0) 2023.07.12
    디자인 패턴과 프로그래밍 패러다임  (0) 2023.05.19
Designed by Tistory.