Achievement Goals
- 클라이언트, 서버, API 가 무엇인지 정의 내릴 수 있다.
- 웹 개발과 관련한 클라이언트-서버 아키텍처를 이해할 수 있다.
- 클라이언트와 서버가 서로 통신하기 위해 사용하는 HTTP 프로토콜에 대해 이해할 수 있다.
- HTTP 메소드의 종류를 이해할 수 있다.
- HTTP 메시지가 어떤 구성으로 이루어져 있는지 이해할 수 있다.
- 서버에서 정의한 API 문서를 통해, 서버가 제공하는 리소스를 이용할 수 있다.
- API 테스팅 툴 Postman을 이용할 수 있다.
- API를 활용해서 UI를 만들 수 있다.
- AJAX가 무엇이고, 왜 필요한지를 이해할 수 있다.
- AJAX 통신을 가능하게 하는 fetch API를 이용할 수 있다.
리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 형태의 아키텍처. 혹은 클라이언트-서버 아키텍처라고 부름. 리소스를 사용하는 앱이 바로 클라이언트, 리소스가 존재하는 곳은 서버.
서버는 리소스를 전달해주는 역할만 가지고 있고, 리소스를 저장하는 공간은 database에 두고 있음. 상기 2티어 아키텍처에 데이터베이스를 추가한 형태를 3-tier 아키텍처라고 칭함.
Front-end: 사용자가 사용할 수 있게 상호 작용을 하는 앱을 개발하는 영역
Back-end: 상품 정보를 api로 노출, 로그인, 로그아웃 등 사용자 인증을 주로 다루는 영역. 더불어 데이터 베이스 등 시스템 설계까지 도맡아서 함.
client: 플랫폼에 따라 구분됨. 보통 web site, mobile/desktop application이 있음.
server : 어떤 기능을 수행하느냐에 따라 구분됨. web, file, mail 있으며, 마찬가지로 database도 data를 제공하는 서버의 한 종류임.
클라이언트와 서버가 communication을 하는데 필요한 통신 규약 . protocol의 종류는 여러가지이며 정상적인 통신을 위해서 각자 지켜야 할 규약이 존재. HTTP는 web application architecture에서 주로 쓰이는 protocol임.
이외에 두가지 기본적인 protocol
Client가 리소스를 잘 활용할 수 있도록 Server에서 제공하는 Interface(메뉴판).
인터넷에 있는 데이터를 요청할 때 HTTP protocol을 사용하며, URL, URI를 통해 접근 가능함. parameter 사용을 위해 다음 사이트를 참조할 것. Query string
<출처: 코드스테이츠>
HTTP message의 시작 줄과 header를 묶어서 요청 head라고 부름.
http message의 payload는 body(본문)이라고 부름.
서버와 자유롭게 통신 수 있고(XMLHttpRequest), 페이지 깜빡임 없이 seamless 하게 작동하는 (JS와 DOM 이용) dynamic web page를 가능케 하는 기법. JS 내 비동기적 동작을 가능케하는 기술들을 통틀어서 AJAX라고 부름.
AJAX 이전에는 유저가 버튼을 클릭하거나 요청해야만 웹 브라우저가 새로운 내용을 가져와서 시간이 많이 걸림. 하지만 본 기법이 도입되고 나서 화면의 일부분만 업데이트하는게 가능해져 신속성과 끊김없는 사용자 경험을 가능케 함.