서버는 왜 필요할까
웹/앱을 만들 때, 필요한 정보들은 서버에서 받아온다.
이렇게 생각할 수도 있다.
그냥 모든 정보를 담아서 만들면, 따로 서버에서 리소스를 받아올 필요도 없는데 왜 그러지 않을까?
그러나 그렇게 정보들을 웹/앱에 직접 담으면 많은 문제가 생긴다.
예를들어,
새로운 정보를 업데이트 하려면, 웹/앱 자체를 업데이트하여 버전업해야 하고,
'결제'라는 행동은 은행 서버와의 연결이 반드시 필요한 행동이다.
클라이언트-서버 아키텍처
이렇게 리소스가 존재하는 곳(서버)와
리소스를 사용하는 곳(클라이언트)를 분리시킨 것을 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부른다.
클라이언트-서버 아키텍처에서는
클라이언트의 요청이 선행되고, 서버에서 응답이온다.
요청없이 응답이 오는 경우는 없다.
클라이언트와 서버는 어떻게 통신할까?
프로토콜: 프로토콜은 통신규약, 즉 약속이다. 따라서 프로토콜은 프로토콜마다 지켜야할 규약이 있다.
HTTP
웹 애플리케이션 아키텍처에서는,
클라이언트와 서버가 HTTP라는 프로토콜을 이용해서 대화를 나눈다.
보통 인터넷에 있는 데이터를 요청할 때에는, HTTP프로토콜을 사용하며,
이때 주소(URL,URI)를 통해 접근할 수 있다.
이렇게 나눈 메시지들을 HTTP메시지 라고 부른다.
또한, HTTP 요청에는 메소드라는 것이 존재한다. 위 메소드들은 HTTP의 대표적인 5가지 메소드이다.
이 메소드를 사용하여 리소스와 관련된 행동(CRUD; create/read/update/delete)을 지정할 수 있다.
API
서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야 한다.
이것을 API(Application Programming Interface) 라고 한다.
Interface의 사전적 의미는 '의사소통이 가능'하도록 만들어진 '접점'이다.
서버가 리소스 전달을 위한 메뉴판, 즉 API를 구축해놓아야 클라이언트가 이를 활용할 수 있다.
'개인공부 > TIL(Today I Learned)' 카테고리의 다른 글
TIL 60일차_ Browser Security: XSS (0) | 2021.03.19 |
---|---|
TIL 59일차_error (0) | 2021.03.18 |
TIL 57일차_Promise.all (0) | 2021.03.16 |
TIL 55일차_비동기처리3: async & await (0) | 2021.03.14 |
TIL 54일차_비동기처리2: Promise (0) | 2021.03.13 |