Chat 상우

[network] API 란? 개념 이해하기 - rest api 1편 본문

HTTP

[network] API 란? 개념 이해하기 - rest api 1편

chat-rilla 2023. 8. 11. 18:05

개발 공부를 하다 보면 조금씩 API라는 용어를 접하게 되는데 API라는 것이 참 다양한 부분에서 사용되기에 처음에 API를 이해하는데 많은 어려움이 있었고 rest api를 정리하기 전 API의 대한 개요를 먼저 잡고 진행을 하는 것이 좋을 것 같다는 생각을 하게 되어 포스팅을 시작하려고 한다. 

수정이 필요한 내용의 피드백은 언제든지 환영 입니다.

 

1. API란

API란 "Application Programing Interface"의 약자로, 컴퓨터나 컴퓨터 프로그램 사이의 연결을 의미하며 일종의 소프트웨어 인터페이스로 다른 종류의 소프트웨어에 대한 서비스를 제공한다. 

  • 인터페이스 : 서로 다른 두 개의 시스템 혹은 장치 간의 신호를 주고받기 위한 접점으로 사용자가 기기를 쉽게 동작시키는데 도움을 주는 소프트웨어 시스템을 의미한다.

클라이언트 - 서버 통신과정

위의 설명에서 주목해야 하는 부분은 컴퓨터 혹은 컴퓨터 프로그램 사이의 연결인데 웹 개발을 하는 개발자 입장에서는 우리의 시스템이 서드 파티 시스템의 기능을 이용하기 위해서 (예 : 결재 시스템) 해당 API를 사용하는 경우가 있으며 응용 프로그램 개발자의 경우 OS의 기능을 사용하기 위해 OS에서 제공하는 API를 이용하게 된다. 


자주 헷갈려하는 부분은 API라는 용어가 웹에서 서버 간의 통신을 위해서만 사용된다는 부분으로 그렇지 않다는 것을 이야기하고자 한다.

api를 통한 통신


표현식은 다르지만 결국 API가 갖는 의미는 컴퓨터 프로그램 사이의 연결 혹은 컴퓨터 간의 연결을 의미하기 때문에 표현식은 달라도 용어는 중복이 될 수 있다는 것이다.
OS가 제공해 주는 API를 사용하고자 하는 경우 보통은 C, C++ 언어를 이용하여 개발을 하게 되는데 OS(운영체제)가  C언어로 개발이 되어 있기 때문이다.

 


2. API 디자인 가이드

WEB 개발자로 API를 만들기 위해서 우리가 지켜야 할 규칙을 설명하고 마무리하고자 한다.

 


REST API 6가지 제약조건 : https://gorilla-ohgiraffers.tistory.com/3

 

[REST API] Roy Fielding이 말하는 6가지 제약 조건

REST(Representational State Transfer)는 월드 와이드 웹(World Wide Web)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 해당 용어는 Roy Fielding의 박사학위 논문에서 소새가 되

gorilla-ohgiraffers.tistory.com