✌🏻 2-Tier 아키텍처
2티어 아키텍처(클라이언트-서버 아키텍처)는 리소스가 존재하는 곳(서버)과
리소스를 사용하는 앱(클라이언트)을 분리시킨 구조를 말한다.
🤟🏻 3-Tier 아키텍처
3티어 아키텍처는 리소스를 저장하는 곳(데이터베이스)과 리소스를 전달하는 곳(서버)과
리소스를 사용하는 앱(클라이언트)을 분리시킨 구조를 말한다.
👀 클라이언트와 서버의 종류
클라이언트의 종류: iOS,안드로이드,스마트폰/태블릿/데스크탑 플랫폼 등
서버의 종류: 파일서버,웹서버,메일서버,데이터베이스 등
📍 요청과 응답, 그리고 프로토콜
클라이언트는 서버에게 리소스를 요청하고, 서버는 그 리소스를 주는 것으로 응답한다.
그리고 이런 요청과 응답은 정해진 규칙에 따라 왔다갔다하는데 그게바로 HTTP라는 프로토콜이다.
그리고 HTTP를 이용해 주고받는 메시지는 "HTTP 메시지"라고 부른다.
📍 프로토콜에 대해서
프로토콜이란 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약을 말한다.
- 프로토콜엔 HTTP뿐 아니라 여러가지가 있다.
- 각각의 프로토콜마다 정해진 규칙이 있다.
프로토콜의 종류는 아래와 같은 것들이 있다.
응용 계층 | |
HTTP | 웹에서 HTML,JSON 등의 정보를 주고받는 프로토콜 |
HTTPS | HTTP에서 보안이 강화된 프로토콜 |
FTP | 파일 전송 프로토콜 |
SMTP | 메일 전송 프로토콜 |
SSH | CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜 |
RDP | Windows 계열의 원격 컴퓨터에 접속하기 위한 프로토콜 |
WebSocket | 실시간 통신, Push 등을 지원하는 프로토콜 |
전송계층 | |
TCP | HTTP,FTP 등의 통신의 근간이 되는 인터넷 프로토콜 |
UDP | (양방향의 TCP와는 다르게) 단방향으로 작동하는 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 인터넷 프로토콜 |
참고) 응용 계층과 전송계층은 "OSI 7 Layers"라는 컴퓨터공학, 네트워크에 자주 등장하는 개념에 속함.
👼🏻 클라이언트를 위한 설명서, API
클라이언트 입장에서 서버에 뭐가 있는지 알아야 요청을 할텐데 무슨 수로 알까?
그걸 알려주는게 바로 API(Applicatioin Programming Interface) 문서이다.
API란 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공하는 것
사전적의미로는 "의사소통이 가능하도록하는 접점"을 말한다고 한다.
코드스테이츠에서는 이 API를 설명하면서
카페에서 엉뚱하게 설렁탕을 주문하지 않도록 해주는 '메뉴판'을 이 API에 빗대었는데
이해가 잘 갔다.
그러니까 종합하자면,
클라이언트는 API를 활용하여, HTTP 프로토콜에 맞춘 형식으로 주소(URL,URI)를 통해 서버에 요청을 보낸다!!
👍🏻 HTTP API의 모범 사례
HTTP프로토콜을 이용해서 서버와 리소스를 주고 받을 때,
모범적인 API디자인은
"각각의 요청에 적절한 HTTP 메서드를 사용할 수 있도록 안내하는 API"이다.
아래의 표 내용대로 각 요청에 적절한 메소드를 사용할 수 있게 API를 만들어야 한다.
요청 | 적절한 메소드 |
조회(Read) | GET |
추가(Create) | POST |
갱신(Update) | PUT 또는 PATCH |
삭제(Delete) | DELETE |
++ 참고) HTTP 요청 메서드 mdn
'개념 > 기초지식' 카테고리의 다른 글
[HTTP/네트워크] 기초개념 - IP, PORT(포트) (0) | 2022.08.04 |
---|---|
[HTTP/네트워크] 기초개념 - URL/URI (0) | 2022.08.04 |
[Git]SSH란? SSH Key 만들고 깃헙에 등록하기 (0) | 2022.07.11 |
macOS 터미널로 개발 시작하기 (0) | 2022.07.07 |
맥북 살거 아니면 우분투를 설치하라고? (0) | 2022.07.07 |