인터넷 연결 없이 앱이 작동하지 않는 이유
⇒ 정보를 인터넷 어딘가에 존재하는 서버에서 받아오기 때문
만약 앱과 연결된 서버가 없다면?
⇒ 새로운 정보를 받기 위해 매번 앱 자체를 업데이트 해야 함
⇒ 결제가 필요한 앱의 경우 금전 정보를 주고받는 은행 서버와의 연결도 필요
빈번한 데이터 업데이트가 필요한 경우 리소스 존재 위치 와 리소스 사용하는 앱 을 분리하는 것이 유리하다
⇒ 2-Tier 아키텍처, 클라이언트-서버 아키텍처
라고 부름
⇒ 리소스를 사용하는 앱 클라이언트
, 리소스를 제공(serve)하는 곳 서버
서버는 리소스를 전달해 주는 역할만 담당하고, 리소스는 별도의 데이터 베이스
라는 공간에 저장해둔다.
⇒ 기존 2-Tier 아키텍처에 데이터베이스가 추가된 형태를 3-Tier 아키텍처 라 부름
웹 개발에서 클라이언트는 브라우저
클라이언트는 서버로 요청 보내고 응답을 받고, 서버는 데이터베이스에 요청을 보내고 응답을 받는다.
⇒ 클라이언트
: 유저와의 전반적인 상호작용을 담당하고, 서버로 부터 받은 응답에 따라 화면을 표시
⇒ 서버
: 클라이언트의 요청에 따라 적절한 응답을 되돌려 줌
클라이언트와 서버가 어떻게 통신하는지? API는 뭔지?
요청이 있어야 응답이 온다
HTTP
라는 프로토콜 이용해 대화를 나눔 ⇒ HTTP 메시지
OSI 7 Layers | 프로토콜 이름 | 설명 |
---|---|---|
7. 응용계층 | HTTP | 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜 |
7. 응용계층 | HTTPS | HTTP 에서 보안 강화된 프로토콜 |
7. 응용계층 | FTP | 파일 전송 프로토콜 |
7. 응용계층 | SMTP | 메일 전송하기 위한 프로토콜 |
7. 응용계층 | SSH | CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜 |
7. 응용계층 | RDP | 윈도우즈 계열의 원격컴퓨터에 접속하기 위한 프로토콜 |
7. 응용계층 | WebSocket | 실시간 통신, Push 등 지원하는 프로토콜 |
4. 전송계층 | TCP | HTTP,FTP 통신 등의 근간이 되는 인터넷 프로토콜 (양방향) |
4. 전송계층 | UDP | 단순하고 빠르지만 신뢰성이 낮은 인터넷 프로토콜 (단방향) |
의사소통 가능 하도록 만들어진 접점
HTTP프로토콜
을 사용해 주소(URL, URI)
통해 접근?
와 &
기호 사용하는 것 참조아메리카노 한 잔 ⇒ /coffee/americano
콜드브루 두 잔 ⇒ /coffee/coldbrew?quantity=2
아메리카노 두 잔 전부 헤이즐럿 시럽 추가 ⇒ /coffee/coldbrew?quantity=2&syrub=hazelnet
메서드
개념 등장요청 | 적절한 메소드 |
---|---|
조회 (Read) | GET |
추가 (Create) | POST |
갱신 (Update) | PUT 또는 PATCH |
삭제 (Delete) | DELETE |