Rest API란?

coding S's avatar
Mar 20, 2024
Rest API란?

[ Rest API란? ]

어떤 블루투스 기계가 하나 있고, 이걸 컴퓨터에서 연결하고 싶다. 근데 블루투스는 C언어로 되어있다. 둘이 연결되어서 정보를 받으려면 먼저 블루투스 프로토콜에 따라 서로 통신할 수 있도록 STREAM 연결을 하고, 엔드포인트(마지막 주소)요청을 해야함. 이 주소를 요청하면, 어떤 정보를 줄지 블루투스 기기가 외부에서 접근할 수 있는 인터페이스를 제공해야 한다. (모든 프로그램이 다 이런다. 인터페이스 개방을 해야함!) 키보드, 마우스도 인터페이스. (노출 되어있으니.) 스위치도 인터페이스. -> 애를 통해서 컴퓨터를 움직이고, 스위치가 있어야 불을 끌 수 있다. (스위치가 없으면 불을 어떻게 끌건가요? 안에 들어가서 전선 끊고 그럴거야??) 내부구조를 알 수가 없으니까 사용자를 위해서 외부로 노출시켜 주는 것!! (그리고 이런 인터페이스에 맞춰서 제품을 만듬)

[ 해당 개념을 대입해보면 ]

API를 만들때 조건은 내가 스프링으로 만들어도 (스프링을 모르는) 다른 사람이 쓸 수 있게 해줘야한다는 것! 즉, 내가 API를 만드는데, 주소를 localhost/8080만 치면 나올수 있게(쓸 수 있게) 해줄게! 니가 상세보기 버튼을 누르면 상세보기 페이지를 줄게!! -> 이런게 바로 API 다! 근데 이런 것들은 모두 컨트롤러의 주소를 통해서 외부에서 접근하잖아? -> 우린 이러한 것을 API라고 부른다!!

[ 그런데 왜 Rest 라고 붙을까? ]

주소 설계의 디자인 원칙 = API RestApi의 주소 설계 규칙이 있으니 그걸 지켜서 만들라고 Rest가 붙었다!
 

또 다른 예시. 인데 별로 중요하진 않아 보인다.

[ 스마트 팩토리로 예시 ]

notion image
데이터 저장 용도의 WRITE/수집 컴퓨터. 이 서버는 어디에서든 해당 서버를 통해서 이 데이터에 접근할 수 있게 해야한다. -> 그럼 서버가 API가 됨. (노출된 인터페이스?) (서버는 자원을 공유해주는 서버가 되고, 보통 json으로 한다.) (데이터를 전송하는 저 기계들이 bit(1010) 형식으로 쏘면, 데이터를 텍스트로 받고, 그걸 DB에 정규화해서 넣게 파싱하는 것!) * /a라고 요청하면 첫번째 기계 정보를 줄게. * 근데 니가 이제 /a?date=20240320 이라고 하면 오늘 데이터를 다 줄게. * /b라고 요청하면 2번째 기계 요청을 줄게 뭐 이런 식으로 만드는게 API 서버 여기까지 하면 어디에서든지 (휴대폰 앱에서도) 서버에 붙어서 요청이 가능 API 서버!
 
 
Share article

codingb