새로운 개념을 배웠는데 금방 까먹을까봐 정리해 두어야 할 것 같다!
API에 대한 개념 설명은 부스트코스 코칭스터디 하면서 여러 번 들었는데, 생각보다 기억에 남지 않고 그냥 결제 API, 지도 API 이런 식으로 쓰인다는 점만 기억해두고 있었다. 그 때도, 그런 API들이 전부는 아니라는 설명을 들었는데, 오늘 친절한 운영진분의 설명으로 조금 더 확실하게? 개념을 적립할 수 있었다.
API(Application Programming Interface)란?
API를 설명듣기 전에 인터페이스에 대한 설명을 들었다. UI에 대해서 자주 접해서 인터페이스라는 말을 대략적으로 감 잡고 있다고 생각했는데, 막상 인터페이스가 뭔지 아는 것 같지는 않았다. 인터페이스는 사용자와 컴퓨터(혹은 다른 다양한 기기들 간)를 연결시켜주는 시스템 혹은 매개체라고 할 수 있다. 예를 들어, 모니터를 통해 사용자에게 사용 화면을 보여주는 것도 인터페이스의 예가 될 수 있고, 키보드, 마우스 뿐만 아니라, 음료 자판기의 음료 선택 버튼(자판기와 사용자를 연결시켜 줌)도 인터페이스이다.
API는 프로그램끼리 연결해주는 것으로 이해하면 된다. 즉, 프로그램끼리 정보를 주고 받을 수 있고 서로 연결될 수 있도록 해주는 것이다. 대표적인 예가 카카오맵 API이다. 우리가 어떤 기능에서 지도를 사용하고자 할 때, 지도를 직접 만들기는 어려울 땐 API를 가져오면 된다. 이를 통해 데이터를 주고 받을 수 있다. API를 가져올 때는 보통 요청되는 방식을 통일시켜서 제공자와 사용자 모두가 편의를 볼 수 있도록 URL과 비슷한 형태로 사용된다.
RESTful(Representational State Transfer) API란?
REST는 소프트웨어 아키텍쳐의 한 형식이다. 이해한 바로 적어보자면 REST API를 통하면 프론트엔드와 백엔드을 나눠서 진행할 수 있다. REST를 이용해 json 파일 형태로 된 데이터(api)를 보내고 받아올 수 있으며 이를 잘 관리하면 프론트단에서 보낸 정보를 백에서 받고, 백에서 데이터를 선정해 보내면 프론트에서 보여줄 수 있다. 내가 참고한 블로그에 따르면, REST API는 좀 더 쉽고 직관적으로 URL을 관리할 수 있다. 즉, http의 method와 함께 저장하여 url을 짧게 유지할 수 있는 것이다. 만약 URI가
http://news.kbs.co.kr/news/view.do?ncd=3421128
와 같이 구성되어 있다면, 우리는 현재 주소가 무엇을 가리키는 지 알기 어렵다. 반면에 URI가 다음과 같다면 어떨까?
https://challenging.tistory.com/36
http://class.likelion.net/boards/1/posts/406
이렇게 하면 우리가 보고 있는 것이 36번째 resource 라는 것 혹은 자원(resource)이 게시판들 중 첫번째 게시판의 글들 중 406번째 글임을 쉽게 알 수 있다. REST는 URI를 통해서 명시된 자원에 접근하고 어떠한 조작(CRUD)를 가할지 HTTP method로 나타내는 것이다.
Tutorial 따라하기
이후에 이어지는 글을 통해 REST API와 장고에서 제공하는 Rest Framework에 대해서 자세하게 알아볼 수 있다.
댓글