모놀리식 아키텍쳐 (Monolithic Architecture) 하나의 큰 서버에서 모든 것을 처리
마이크로서비스 아키텍쳐 (Microservice Architecture - MSA) 개별 서버로 구성하고 서로 통신하도록 하는 경우
REST API
정보를 주고 받을 때 사용되는 형식 → REST란 형식의 API
요청의 모습을 보고 어떤 일을 하는지 알 수 있음
기본적인 데이터 처리 : 생성, 조회, 수정, 삭제
CRUD : Create, Read, Update, Delete
Representational State Transfer의 약자 → Resource, Method, Representation of Resource로 구성
Resource : Unique한 ID를 가지는 리소스, URI URL : Uniform Resource Locator로 인터넷 상 자원의 위치 URI : Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성, URI가 URL보다 더 포괄적인 범위
Scheme: 리소스에 접근하는 데 사용할 프로토콜. 웹에서는 http 또는 https를 사용
Host: 접근할 대상(서버)의 호스트 명
Path: 접근할 대상(서버)의 경로에 대한 상세 정보
Method : 서버에 요청을 보내기 위한 방식
GET : 정보 요청 (Read)
URL에 변수(데이터)를 포함시켜 요청
데이터를 Header에 포함하여 전송
URL에 데이터가 노출되어 보안에 취약
캐싱할 수 있음
POST : 정보 입력 (Create)
데이터를 서버로 제출해 추가 또는 수정
URL에 변수(데이터)를 노출하지 않고 요청
데이터를 Body에 포함
URL에 데이터가 노출되지 않아 기본 보안은 되어 있음
캐싱할 수 없음
PUT : 정보 업데이트 (Update)
PATCH : 정보 업데이트 (Update)
DELETE : 정보 삭제 (Delete)
HTTP (Hyper Text Transfer Protocol)
정보를 주고 받을 때 지켜야 하는 통신 규약(프로토콜)
HTTP는 기본적으로 80번 포트 사용, 서버에서 80번 포트를 열어주지 않으면 HTTP 통신 불가능
Header와 Body
Http 통신은 Request하고, Response를 받을 때 정보를 패킷에 저장
Packet의 구조 : Header / Body
Header: 보내는 주소
Body: 실제 전달하려는 내용
Status Code
클라이언트 요청에 따라 서버가 어떻게 반응하는지 알려주는 Code
1XX(정보) : 요청을 받았고, 프로세스를 계속 진행
2XX(성공) : 요청을 성공적으로 받았고 실행함
3XX(리다이렉션) : 요청 완료를 위한 추가 작업이 필요
4XX(클라이언트 오류) : 요청 문법이 잘못되었거나 요청을 처리할 수 없음
5XX(서버 오류) : 서버가 요청에 대해 실패함
동기와 비동기
동기(Sync) 서버에서 요청을 보냈을 때, 응답이 돌아와야 다음 동작을 수행할 수 있음 A 작업이 모두 완료될 때 까지 B 작업은 대기
비동기(Async) 요청을 보낼 때 응답 상태와 상관없이 다음 동작을 수행함
IP
네트워크에 연결된 특정 PC 주소
인터넷 상에서 사용하는 주소 체계
4덩이의 숫자로 구성된 IP 주소 체계를 IPv4
localhost, 127.0.0.1 : 현재 사용중인 Local PC
0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소