개인공부/TIL(Today I Learned)

TIL 58일차_ 클라이언트와 서버

soon327 2021. 3. 17. 02:32

서버는 왜 필요할까

웹/앱을 만들 때, 필요한 정보들은 서버에서 받아온다.
이렇게 생각할 수도 있다.

그냥 모든 정보를 담아서 만들면, 따로 서버에서 리소스를 받아올 필요도 없는데 왜 그러지 않을까?

그러나 그렇게 정보들을 웹/앱에 직접 담으면 많은 문제가 생긴다.
예를들어,
새로운 정보를 업데이트 하려면, 웹/앱 자체를 업데이트하여 버전업해야 하고,
'결제'라는 행동은 은행 서버와의 연결이 반드시 필요한 행동이다.

클라이언트-서버 아키텍처

이렇게 리소스가 존재하는 곳(서버)와
리소스를 사용하는 곳(클라이언트)를 분리시킨 것을 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