신나yo-TechBlog

API란?: 정의, 예시 그리고 특징 본문

TIL: theory/TIL: 용어or어휘

API란?: 정의, 예시 그리고 특징

신나yo 2021. 4. 17. 23:56
728x90

개발 & 프로그래밍 분야 문해력 기르기 프로젝트, 첫 주제는 바로 API!

유튜브에 있는 영상도 몇 가지 시청해봤지만, 명확하게 이해하지 못해서, 수업 중 API입니다 라는 설명만 들으면 답답했다. 대충 '오픈소스 === API'라고 받아들이고 수업을 따라가고 있었다.

오픈소스 === API? FALSE!!!


학습에 참고한 자료가 영어다! 뮬소프트라는 기업에서 제공해준 자료인데, 예시가 아주 생기 있고 흥미롭다ㅋㅋㅋㅋ 본인들이 다루는 비즈니스 영역이라서 그런지 굉장히 친절하고 이해하기 쉽게 설명해준 자료! 출처는 아래 링크!

 

What is an API? (Application Programming Interface) | MuleSoft

What is an API? (Application Programming Interface) API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other. Each time you use an app like Facebook, send an instant messa

www.mulesoft.com


단어 먼저 보고 가십시다.

  • acronym: 두문자어. 한국어로 치면 초성을 딴 말. ㅊㅋㄱ?(치킨각?ㅋㅋㅋㅋㅋ)
  • retrieve: 검색
  • comprise: 이루다
  • adhere: 준수하다
  • governance: 하.... 이건 애매모호하다. 위키백과에 따르면 '아직 학문적 합의가 이루어지지 않아 여기저기서 이런저런 의미로 쓰이고 있는 용어' ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
    • 그래도, 참고할 만한 지식이 있다! 공기업 공부 중 학습했던 행정학 분야에서는 '정부가 주도하던 방식에서 벗어나서 정부, 기업, 지자체 등 다양한 행위자가 네트워크를 구축해 문제를 해결하는 국정 운영 방식'이라고 설명했다.
    • 대략 '어떤 문제 해결을 위해서 관련 있는 주체들이 함께 노력한다'는 뉘앙스로 이해하면 되겠다.
      아니면..... 그때그때 해석해서 봐야지. 참 난감하네 ㅋㅋㅋㅋㅋㅋ
  • modern API: 이것도 애매모호하다. 역사 분야에서는 modern이면 근대잖아. 그런데 다른 분야에서는 mordern이 현대래. 근대랑 현대는 어감 차이가 확 느껴지는데, 이상하게 개발 분야에서 modern이라고 하면 현대보다는 '근대'가 더 입에 붙고...... 아직 확실히 모르겠어서 아래에서는 '모던 API'라고 정리해뒀다.
  • Application: Application software 또는 Application program을 줄인 말. 더 줄이면 App(앱).
    • 운영체제를 제외한 나머지 소프트웨어, 프로그램을 의미한다.
    • 운영체제에서 실행되는 모든 소프트웨어가 다 앱이다. 예를 들어, 워드프로세서, 웹 브라우저 등. (앱 설명에 대한 모든 출처는 위키백과!)
  • Interface: 서로 다른 두 시스템이나 장치 사이에서 그 둘의 정보/신호 전달을 돕는 것.
    • 서로 다른 두 시스템, 장치 사이의 경계면 또는 접점(출처는 위키백과!)
    • 여담으로, 디자인 분야에서 많이 언급되는 UI가 User Interface의 acronym으로, 컴퓨터와 사용자 간의 상호작용 접점을 의미한다.

API란?

폰에서 앱 사용할 때를 예로 들면, 앱은 인터넷에 연결해서 데이터를 서버로 보낸다. 그러면 서버는 데이터를 검색하고, 해석하고, 필요한 기능(necessary actions)을 내 폰으로 보내준다. 그 후에 앱이 그 데이터를 해석하고, 내가 읽을 수 있도록 표현해준다.

이게 API다. API가 하는 일이 바로 이것이다.

우리는 스스로도 모르게 일상 속에서 다양하게 사용하고 있다. 예를 들어...

  • 페북에서 메시지 보내고, 폰으로 날씨 체크하는 것도 API를 이용하는 활동들이다.
  • 항공예매 페이지에서, 날짜, 가고자 하는 곳 등을 입력해서 검색을 하면, API가 해당 내용들을 DB에 전달하고, 내 주문에 맞는 정보들을 return 해준다.
  • 여행서비스 사이트와 항공예매 정보를 연결해주는 것도 API이다.

나는 여기 있는데, 지구 저쪽 데이터를 가져와서 쓰고, 직구를 하고, 다른 나라 사람과 소통하는 등의 활동이 가능한 것. 그리고 서로 다른 디바이스나 앱이 서로 연결되는 것도 모두 API 덕이다.

그런데, 뮬 소프트에서 제공해준 영상 속 예시가 너무 재밌고 찰져서 아래에 그대로 가져와봤다.


API 예시: 식당을 상상해봅시다!

지금 식당에 있다고 상상해보자!

'나'는 손님으로서 테이블에 앉아 있고, 부엌은 내 주문에 따라 움직일 준비가 되어 있는 하나의 system이다.

여기서 문제점은?
내 주문음식을 부엌에 알려주고, 요리가 완성되면 부엌에서 내게로 음식을 가져와야 한다는 것이다!

이 상황에서 식당 종업원(웨이터)이 도움을 주는 역할을 한다. 이 '웨이터'가 바로 API인 것이다!

주문을 받아서, system(부엌)에 전달한다. 그리고, 그 주문에 대한 응답(요리)을 받아서 다시 내게 돌려준다.

아기자기한 애니메이션과 함께 친절한 음성으로 영상 설명을 듣다 보니 피식피식 웃음이 새어 나왔다ㅋㅋㅋㅋㅋ 앞으로 공부하다 API가 나오면 웨이터를 떠올리면 문제없다!


API의 기타 특징들

아래에 메모해두는 내용 없이도 API 개념 이해에는 크게 탈 없을 것 같다. 하지만, 이왕 공부했으니 적어두는 것!

  • 보안상 효과적이다
    • 내 디바이스와 서버는 꼭 필요한 만큼만을 공유하면서 소규모(small packets) 데이터로 소통한다. 진짜 음식을 주문하는 것처럼 말이다. 필요한 것을 주문하고, 부엌도 필요한 만큼만 조리해서 내게 전달하고!
  • API로 돈 버는 회사들이 많다
    • 구글, 이베이, 세일즈포스, 아마존, Expedia 등 메이저 기업 외에도 아주 많다고 한다.
    • API economy라는 말도 있다고 한다!
  • modern API(이하, 모던 API)의 가치 있고 유용한 특징들
    1. (일반적으로 HTTP & REST의) 기준을 준수한다.
      1. 개발자 친화적이며, 접근과 이해가 쉽다.
    2. 코드라기보다는 제품으로 취급된다.
      1. 구체적인 수요자들의 소비를 위해 디자인되었다. 예를 들면, 모바일 개발자들.
      2. 사용자들이 API의 유지보수와 수명주기에 대해 예측(certain expectations)할 수 있도록, 문서화되고 버전으로 관리된다(versioned).
    3. 표준화되었기 때문에, 보안과 governance면에서 강한 규율을 갖추고 있다. 또한, 수행(performance)과 규모(scale) 면에 있어서 모니터하고 관리한다.
    4. 제품화된 다른 소프트웨어들처럼, 모던 API는 그 자체의 SDLC(Software Development LifeCycle. 소프트웨어 개발 수명주기)가 존재한다.
      1. 사이클: 디자인 → 테스트 → 개발(building) → 관리(managing) → 버전 관리(versioning)
      2. 소비와 버전 관리를 위해 '문서화 잘하는 것'이 중요하다.

커버 이미지 출처: Photo by NASA on Unsplash  

728x90

'TIL: theory > TIL: 용어or어휘' 카테고리의 다른 글

마크다운Markdown 이란?  (0) 2021.04.20
Comments