API란 다양해진 애플리케이션의 필요에 대응하여 아주 많이 쓰이고 있지만 UI가 없어 추상적인 관계로 그 개념을 이해하기가 약간 힘들 수 있다.
API는 “Application Programming Interface”의 약자이고 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타내고 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다.
즉, 간단히 말해서 데이터를 요청하고 응답하는 전부이다.
현재에는 API의 구조를 이야기 할 때에, 가장 대표적인 두가지 방식을 이야기 한다. SOAP API와 REST API 이다. 비슷하지만 서로 다른 방법이다.
SOAP(simple Object Protocol)는 프로토콜이고, REST(Representational State Transfer)는 분산 시스템 설계를 위한 아키텍쳐 스타일이다.
Representational State Transfer
오늘은 REST 에 대해 자세히 얘기해보겠다. 개발 공부를 하다보면 자주 듣는 용어가 특히 REST API이다. 추상적인 개념이라서 그런지 정확하게 감이 오질 않는다. 그리고 ‘RESTful 하다’, RESTful API 등 알듯 말듯 하면서 스스로 설명하기에는 개념이 잘 잡히지 않는다.
Statelessness (무상태성)
Layered System (계층화)
Cacheability (캐시가능)
Scalability (확장가능성)
Flexibility (유연성)
Independence (독립적)
더 자세한 내용들은 참고자료를 확인하길 바란다. 일단 개념만 잡고가고 더 자세한 개념과 이해는 추후에 공부할 예정이다.
참고자료
https://jnhro1.github.io/web/2021/06/13/REST.html
https://dongwooklee96.github.io/post/2021/03/28/rest-api-보안-및-인증-방식.html
https://aws.amazon.com/ko/what-is/api/?nc1=h_ls