📬 Rest API 를 사용해서 CRUD 작업을 진행함
웹 개발 프로젝트를 할 때, API 명세서를 참고하면서 서버에 요청을 보내고 응답을 받아왔다. 개발에서 중요한 역할을 하는 API는 무엇일까?
간단하게 예시를 들어보자.
여기 두 도깨비는 가운데 큰 벽이 있어서 직접적인 소통이 불가능하다. 왼쪽 깨비가 책이 필요한 상황. 오른깨비는 책이 있다.
왼쪽 깨비가 외친다. "여기 책 한 권만 줘."
왼쪽 깨비가 쏘아올린 말을 누가 오른깨비에게 전달해줬다. 덕분에 요청사항을 들은 오른깨비가 책 한 권을 누군가의 손을 빌려 전해줬다. 덕분에 왼쪽 깨비도 책을 얻게 되었다.

여기 중간에서 요청을 전달해주고 응답을 받아온 누군가가 바로 API 이다.
웹 개발에서 왼쪽 깨비는 클라이언트, 오른깨비는 서버를 의미하기도 한다. 이 때 필요한 정보를 요청하고 응답을 받기도 하고, 저장하고 싶은 정보를 전달하고 저장을 완료했다는 대답을 받기도 한다.
API란 어플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 약자로, 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.
또한 여러 프로그램과 데이터베이스, 기능들의 상호 통신 방법을 규정하고 도와주는 매개체이다. API는 데이터베이스가 아니지만, 액세스 권한이 있는 앱의 권한 규정과 서비스 요청에 따라 데이터나 서비스 기능을 제공하는 메신저 역할을 한다.
내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제3자에게 노출되지 않는다.
개방형 API로, 전체 공개된다. 누구나 제한 없이 API를 사용할 수 있는 특징이 있다.
기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.
REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일이고, SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡하다.
API라는 단어의 사용도에 비해 무엇인지 정확하게 알고있지 못했는데, 정리를 통해 확실하게 어떤 용도인지 알게되었다. 그리고 많이 사용하는 REST API의 특징에 대해서도 정리해봐야겠다.