기존에 확실한 개념을 잡지 않고 사용하고 있던 API
, Interface
에 대해 간략히 정리 해보자.
Application Programming Interface
)응용 프로그램
간에 데이터를 주고 받는 방법을 API
(A
pplication P
rogramming I
nterface)라 한다.프로그램
과 또 다른 프로그램
을 연결
해주는 일종의 다리(미들 웨어)
라고 볼 수 있다. 특정 데이터를 제공하는 서버
가 존재할 때 우리가 만든 응용 프로그램
이 서버에 데이터를 요청 할 수 있다. 이 때 컴퓨터 끼리 데이터를 주고 받는
것이기 때문에 어떠한 양식
을 필요로 한다.
데이터를 제공 해주는 해당 서버가 인가되지 않은 사용자에게 데이터를 제공하지 않도록 API
(미들웨어
)내에서 흐름 제어
를 수행 할 수 있다.
API는 중간 다리(미들웨어
)역할을 한다 위에서 말했다. 또한 데이터를 제공해주는 서버에 대한 호출 제한을 하는 역할을 담당 하기도 한다.
어떠한 두 가지가 서로 연결되고 영향을 미칠 수 있는 장소 / 방법 / 상황을 의미 한다.
키보드
, 마우스
)우리는 키보드를 통해 컴퓨터에 명령을 내리거나 요청을 할 수 있다.
이러한 부분을 사람과 기계 사이의 Interface라 한다.
REST와 REST API에 대해 간략히 정리 해보자.
Representational State Transfer
)REST
는 어떤 형식
을 나타내는 말을 의미 한다.사이트의 구성 원리
를 의미 한다.HTTP에는 이미 REST 원칙이 녹아 들어 있다.
HTTP URI
(Uniform Resource Identifier)를 통해 자원
(Resource)을 명시하고, HTTP Method
(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용
하는 것이다.
즉, REST
는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource
가 있고 HTTP Method
를 통해 Resource
를 처리하도록 설계된 아키텍쳐를 의미한다.
웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
CRUD Operation
Q : 어떻게 인터넷에서 정보를 공유 할 것인가?
A : 정보
들을 하이퍼 텍스트
로 연결한다.
HTML
URI
HTTP/1.0
(1994-1996)REST (1999)
Roy T. Fielding,
Microsoft Research에서 발표
REST (2000)
Roy T. Fielding,
박사 논문에서 발표 하였음.
오늘날에 존재하는 API는 실제로 REST API가 아니지만 REST API라고 부른다. (현재 상태)
서버는 H/W적 관점
에서는 서버가 설치되 있는 소형 컴퓨터를 의미 한다. 또한 S/W적 관점
에서 서버는 정적 컨텐츠(Html, js, css, image)를 처리하는 서버(Nginx, Apache
)의 역할을 수행 한다.
서버
도 우리가 흔히 사용하는 데스크탑 컴퓨터
혹은 노트북
과 동일한 개념을 갖는다.서버
란 말은 역할의 개념
이다.글
과 사진
을 제공 해주며, 위 데이터
를 업로드 받아서 보관 해준다.게임
을 열어 준다.위치
, 목적지
를 받아서 가는 길과 소요 시간을 제공 해준다.클라이언트
서비스를 제공해주는 쪽이 서버
가 된다.Client → Server의 흐름은 위 같이 표현이 된다.
FrontEnd → Client Side Script
BackEnd → Server Side Script
즉, 쉽게 말해
Server Side Script
언어는 서버에서 값을 변경하거나 수정 할 수 있지만,Client Side Script
는 Html 페이지의 변경이나 수정 없이 있는 그대로 보여주는 것을 의미 한다.