◎ 클라이언트-서버 아키텍쳐
-
서버의 필요성
- 만약 클라이언트 부분만 있다면, 실시간 정보를 반영하기가 어려움 (계속 업데이트 해야함)
- 클라이언트에서 정보를 취합하기가 불가능하다 (쇼핑 주문한 내역...)
-
클라이언트 서버 아키텍처(2티어 아키텍쳐)
- 클라이언트 : 사용자가 직접 경험하는 부분
- 서버 : 클라이언트에서 요청시에 데이터를 전달해주는 부분
- 여기에 DB(Database)를 포함하면 3티어 아키텍쳐 라고 한다.
- 백엔드 개발자는 서버와 DB를 관리, 그리고 서버와 DB 사이 통신과정 등을 담당
-
클라이언트, 서버 종류
- 클라이언트 : 보통 플랫폼으로 분류
- 웹사이트 또는 웹 앱 : 브라우저를 통해 주로 이용하는 웹(Web) 플랫폼에서의 클라이언트
- 앱 : 스마트폰/태블릿 플랫폼, 그리고 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱도 클라이언트가 될 수 있다.
- 서버 : 무엇을 하느냐에 따라 구분
- 웹 서버, 파일 서버, 메일 서버, DB 서버 ...
◎ 프로토콜(protocol)
-
프로토콜
- 컴퓨터간의 통신 규약, 즉 약속
- 웹 어플리케이션 아키텍쳐에서는 클라이언트와 서버간에서 HTTP라는 프로토콜을 이용
-
프로토콜 특징
- 같은 일을 하기 위해 "다양한 방법"이 존재할 수 있다.
- 프로토콜은 각자의 프로토콜마다 지켜야 하는 규약이 존재
◎ 클라이언트-서버 통신과 API
- API(Application Programming Interface)
- 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 제공해준 인터페이스(interface)
- 보통 인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있다.
- HTTP 메서드
- 하려는 행동에 맞게 적절한 메서드를 사용해야함
- GET(조회), POST(추가), PUT, PATCH(수정), DELETE(삭제)