
reference:
✅ API란?

API는 Application Programming Interface의 줄임말로서, 고유한 기능을 가진 개별 소프트웨어 간에 이루어지는 통신(=요청과 응답) 매커니즘(=작동 방식)을 의미한다.

일단 Interface가 중요하다. 치즈라면이든 만두라면이든 본질은 라면이다.
뭔소리냐! Interface를 어디서 봤다. UI(User Interface)와 API의 공통점이 바로 Interface였던 것!
Interface는 한국어로 계면(界面)이다. 계면도 어디서 봤다. 계면활성제! 계면활성제는 물과 기름의 '경계면'에 침투해 화학 작용을 일으켜, 기름이 물에 섞이게 함으로써 쉽게 씻겨내려가도록 돕는 '활성제'이다.
UI는 사용자와 프로그램 사이에 침투하여 둘이 상호작용할 수 있도록 돕는 매커니즘이다. 따라서 API는 서로 다른 응용 프로그램 사이에 침투하여 둘이 상호작용할 수 있도록 돕는 매커니즘이라고 할 수 있겠다.
API 문서란, 개발자들이 API를 이해하고 사용할 수 있도록 자세하게 설명된 문서를 의미한다. 프로젝트에서 가상자산 API를 사용할 예정이다. 대충 치즈라면을 주문한다고 보면 된다. 그렇다면 내가 밟아야 할 첫 번째 step은, 가상자산 API 중 하나를 선택해서 우선 읽는 것이다!
✅ API 매커니즘의 종류는?
일반적으로 요청을 보내는 애플리케이션을 클라이언트라고 하고, 응답을 보내는 애플리케이션을 서버라고 한다. API가 생성된 시기와 이유에 따라, API는 네 가지 방식으로 작동할 수 있다.

그렇다고 한다!
REST API를 제외한 나머지는 기술 부채로 남겨두도록 하겠다. 때로는 약간 빚을 내서라도 빠르게 성장하기 위해 노력하는 태도가 필요하겠다.
✅ REST API란?
우선 REST API에서 REST란 Representational State Transfer 의 약자로, 오늘날 가장 많이 사용되는 API 작동 방식이라고 볼 수 있다.
상태 전환을 표현하는 방식이 바로 REST라고 할 수 있다. '상태', '전환'이 핵심이다.
영화 API를 사용하는 상황이라고 상상해보자. 기본적으로 API는 CRUD(Create, Read, Update, Delete)를 위해 존재한다. 그런데 URL 설계를 이따위로 했다고 생각해보자.

피가 끓는다...
'상태 전환'에 일정한 패턴을 부여하는 것. REST의 본질이다. 우선 잡다한 동사를 제거한다.

그 다음, 컬렉션과 고유 식별자를 통해 URL을 표현한다. /movies/inception 이런 식이다.
그런데 어쨌든 CRUD를 표현해야 하잖아? 그래서 명사로 구성된 URL에 HTTP methods를 결합하게 된다. HTTP methods는 GET, POST, PUT, DELETE 등으로 구성된다.

피를 끓게 만든 URL은 각각이 모두 URL이다. HTTP methods와 결합된 URL은 두 개 뿐이다. /movies, /movies/inception이 바로 그것이다. method만 달리 사용한 것이다.
영화의 검색이나 필터를 처리하기 위해서는 query parameters를 활용하면 되겠다.
이러한 REST 아키텍처를 따르는 API를 REST'ful'하다고 말하는 것이다.
오늘은 여기까지!
✅ 회고
구본권 한겨레 사람과 디지털 연구소장은, 이른바 '호기심 격차 시대'가 온다고 제언한 바 있다. 사실 이미 왔다. Generative AI의 비약적인 발전에 따라 무엇이든 물어볼 수 있는 세상이 되었고, 태어날 때부터 정보를 많이 갖고 태어나는 사람은 없기에, 호기심이라는 변수에 따라 개인 간의 격차가 심화된다는 견해를 비췄다.
호기심의 양도 중요하지만, 방향이 더 중요하다고 생각한다. 구글에 '상추가 몸에 좋은 이유'를 검색하면 내일부터 상추를 먹고 싶어지겠지만, '상추가 몸에 좋지 않은 이유'를 검색하면 여전히 상추는 장 수세미에 불과하다는 점을 반추하게 된다.
나는 질문을 갖고 사는가? 그 질문이 다소 냉소적이지는 않은가? 좋은 퀄리티의 질문을 어느 정도 쌓고 있는가? 질문에 대한 질문이 필요한 시점인 것 같다.