[TIL] Interaction With Server

김민성·2021년 3월 20일
0

Achievement Goals

클라이언트, 서버, API 가 무엇인지 정의 내릴 수 있다.

클라이언트 : 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱.
브라우저를 통해 주로 이용하는 웹(Web) 플랫폼에서의 클라이언트는 웹사이트 또는 웹 앱이라고 부릅니다. iOS나 안드로이드와 같은 스마트폰/태블릿 플랫폼, 그리고 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱 역시 클라이언트가 될 수 있습니다.

서버 : 사용자 눈에 보이지 않지만, 상품 정보를 API로 노출한다던지, 로그인/로그아웃, 권한 관리 등의 사용자 인증을 주로 다룹니다. DB에 있는 리소스를 클라이언트에게 보여줄 수 있도록 연결해줍니다.

API : Application Programming Interface 의 약자로 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해주는 역할을 합니다. 가게를 예로 들면 손님이 클라이언트, 직원이 서버, 메뉴판이 API입니다.

웹 개발과 관련한 클라이언트-서버 아키텍처를 이해할 수 있다.

리소스가 존재하는 곳(서버)와 리소스를 사용하는 앱을 분리시킨 것을 클라이언트-서버 아키텍쳐라고 합니다.(2-Tier)
리소스가 존재하는 곳을 서버와 DB로 다시 나눈 것을 3-Tier 아키텍쳐라고 합니다.(클라이언트-서버-DB)

클라이언트와 서버가 서로 통신하기 위해 사용하는 HTTP 프로토콜에 대해 이해할 수 있다.

인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있게 됩니다. 클라이언트와 서버가 서로 요청과 응답을 받기 위해서 서로 규약을 정해놓은 것이 있는데 그것이 HTTP 프로토콜입니다.

HTTP 메소드의 종류를 이해할 수 있다.

GET : 조회(read)
POST : 요청, 생성(create)
PUT or PATCH : 갱신(update)
DELETE : 삭제(delete)

HTTP 메시지가 어떤 구성으로 이루어져 있는지 이해할 수 있다.

HTTP 메시지는 헤더 부분과 바디부분으로 나뉩니다. 사진에서 request부분에 스타트라인에는 요청방식(get, post, delete..)/ url/ 원하는 http 버전 으로 값이 들어갑니다. 바디는 모든 요청에 바디부분이 의미있는 것은 아닙니다. GET, HEAD, DELETE , OPTIONS처럼 리소스를 가져오는 요청은 바디가 크게 의미가 없습니다. response부분에서도 바디는 에러값 없이 200번대 결과가 출력되는 경우엔 크게 의미가 없습니다.

참조 : https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

AJAX가 무엇이고, 왜 필요한지를 이해할 수 있다.

AJAX : 웹페이지에서 한부분을 클릭하는 경우 전체페이지를 반환하게 된다면 용량적으로, 시간적으로 손해입니다. 그렇기 때문에 부분적으로 페이지를 업데이트하게 해주는 js, dom 같은 dynamic web programming 방식이 등장했습니다. 그리고 서버에서 값을 새롭게 받아올 수 있게 하는 xml동적렌더링 방식을 합친 것이 AJAX(Asynchronous JavaScript and XML)입니다.

AJAX 통신을 가능하게 하는 fetch API를 이용할 수 있다.

profile
https://github.com/alstjd8826

0개의 댓글