본문 바로가기
Developer area/Study

API 기초 이해하기

by beeny-ds 2023. 10. 29.

출처: brunch story 님의 블로그

개발자와 일하다보면 용어의 충돌이 발생한다. 간단한 예시로는 데싸가 말하는 아키텍처와 개발자가 말하는 아키텍처의 정의는 다르다. 이러한 용어를 이해할겸, 이러한 용어가 사용되는 분야(?)를 이해할겸 설명이 잘 된 블로그 글을 참고했다. (거의 똑같이 복붙했다.) 해당 블로그는 디자이너로 일하는 분의 블로그로 비개발자의 시선으로 설명이 아주 잘 되어 있다.
API 기초 이해하기 를 참고하길 바란다. 감사의 말씀을 전합니다. :)

 

API(Application Programming Interface) 란?

API 는 키보드로 설명할 수 있다.

 

우린 키보드를 통해 컴퓨터를 동작한다. 키보드의 버튼을 누르면 → 키보드에서 컴퓨터로 전달되고 → 스크린에서 텍스트를 볼 수 있다. 키보드를 통해 컴퓨터와 인터렉션(interaction: 상호작용) 하는 것이다.

 

이와 같은 맥락으로 API 는 프로그램과 서로 상호작용하는 것을 도와주는 매개체이다. 코드들끼리 서로 소통하기 위해 만들어진 게 API 이다.


API 역할

API 는 앱과 기기가 원활하게 통신할 수 있도록 한다.

  1. 사용자가 앱에 접속하여 장바구니에 있는 리스트를 보고 싶어 한다. → 장바구니 클릭
  2. 클릭과 동시에 사용자는 서버에 장바구니 리스트를 보여달라고 요청(request) 한다.
  3. 서버는 사용자에게 Json 방식(문자열 방식)으로 응답(response) 한다.

출처: https://brunch.co.kr/@hyoi0303/25

즉, API 는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 중간 매개체 역할을 해주는 셈이다.

 

*Json 방식이란?

출처: https://brunch.co.kr/@hyoi0303/25

JavaScript Object Notation 의 줄임말로, 속성 값으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.

특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다.

위 그림은 장바구니에 담겨 있는 상품에 대한 정보를 서버에서 응답해주는 Json 객체이다.


다양한 API 종류

그렇다면 REST API, GraphQL API, .. 등은 무엇인가?

'프로그램이 서로 소통할 수 있게 도와준다.' 라는 같은 목적을 가진 생김새만 다른 키보드들이다.

 

*공공 API (Public API)

공공 API 중에는 날씨 API 가 있다. 만약 한국 날씨 정보를 원한다면 전 세계 날씨 정보를 갖고 있는 서버에서 한국 날씨 정보를 요청해야 할 것이다. 그러나 네이버가 날씨 데이터를 공개해도 대부분의 사람들은 그 데이터를 가지고 자신에게 맞게 사용하기가 어려울 것이다. 정보가 너무 방대하기 때문이다.

그렇기 때문에 네이버에선 자사 데이터를 활용하여 사용할 수 있게끔 '네이버 날씨 API'를 사용자들에게 공개한 것이다.

Public API 는 개방형 API 로, 모두에게 공개된다. 누구나 제한 없이 API 를 사용할 수 있는 게 특징이다.

 

*REST API( Representational State Transfer )

인터넷에서 시스템 또는 컴퓨터 간의 통신 채널을 제공하는 웹 서비스의 아키텍쳐 스타일이다.

따라서 REST API 는 REST 의 아키텍쳐 스타일로 지원되는 애플리케이션 프로그램 인터페이스이다.

즉, REST 는 통신하는 행위를 말하고 REST API 는 REST 방식으로 데이터를 주고받을 수 있게 해 놓은 수단이라고 할 수 있다.

 

*아키텍쳐란

최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경 등을 설명 및 설계하는 청사진 또는 설계도이다. 기본 Computer Science 지식을 기반으로 주변 환경 등을 고려하여, 최상의 소프트웨어를 구성하는 방법을 연구하고 이를 바탕으로 가이드하는 역할을 한다.

 

*인터페이스란

서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.

 

*REST API 예시

Instagram API 를 사용하면 애플리케이션에서 사용자 태그, 사진, 계정 등을 검색할 수 있다.

이때 핸드폰 화면에 보이는 Instagram 이 인터페이스가 되고 검색 기능이 REST API 를 제공하는 수단이 된다.

 


 

마치며,,

필자 회사에서 개발자들과 대화하다보면 REST API, 아키텍처, request, response 이런 단어를 많이 사용한다. 

업무 특성 상 개발자와의 의사소통이 중요하기에 개발자가 사용하는 단어의 개념을 정리했다.

의사소통을 위해 계속 공부할 생각이다.

반응형

'Developer area > Study' 카테고리의 다른 글

[쿠버네티스] kubectl 명령어 정리  (0) 2023.11.05
[키워드] 개발자 용어 정리 2  (0) 2022.09.01
[키워드] 개발자 용어 정리  (0) 2022.08.04

댓글