[웹 구성 간 흐름] 웹 본질 : 요청 - 반환의 주체와 방법

2SEONGA·2024년 12월 10일
1

ASAC

목록 보기
1/13
post-thumbnail

[그림으로 보는 웹 구성 간 흐름]



1. Monolithic vs. MSA

(1) Monolithic : 단일 서버

  • 장점 : 하나의 서버가 모든 서비스를 제공 (로드밸런서 + 다중 서버의 경우도 해당)
  • 단점 : SPOF 즉, 하나의 문제가 전체의 문제가 됨

(2) MSA : 다수 서버

  • 장점 : 하나의 문제가 다른 문제로 전파되지 않음
  • 단점 : 서버의 정리 정돈, 버전 관리 안됨

2. Client & Server


3. API Gateway

  • MSA의 단점 보완 가능
  • 모든 서버에 대한 모든 API 호출 중앙화
    • Swagger : API 제공 버전 관리
    • Consumer-Producer 관리 : 어떤 서버의 API를 어떤 서버가 사용할 지 관리
      멀티스레드 환경에서 여러 스레드가 공유 자원에 접근할 때,
      동기화 문제를 해결하기 위해 작업의 생산 주체와 처리 주체를 분리하여 관리

4. HTTP API & REST API

(1) HTTP API

  • 웹 환경에서 HTTP라는 통신 규칙으로 데이터를 주고 받으며 통신하는 것

(2) REST API

  • REST(REpresentational State Transfer) : 네트워크 아키텍처 원리의 모음
    자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 것
  • REST(ful) API : REST 아키텍처 스타일의 설계 원칙을 준수하는 API
  • REST(ful) API의 4가지 제약조건
    1. 자원의 식별
    2. 메시지를 통한 리소스 조작
    3. 자기서술적 메시지
    4. 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어 아키텍처
  • HTTP Response Status
    • 10X : 정보성 응답
    • 20X : 성공
    • 30X : Redirection
    • 40X : Client Error
    • 50X : Server Error

6. GraphQL vs. Rest API

  • Rest API
    • 요청한 데이터보다 많은 데이터를 미리 결정된 구조로 반환
  • GraphQL
    • 요청에 따라 필요한 데이터만 정확히 지정하여 JSON 개체로 반환

7. gRPC, Queue, WebSocket, WebHook

기술주요 특징주요 용도
gRPC고성능, 양방향 스트리밍, 인터페이스 정의 언어 (Protocol Buffers)마이크로서비스 간 통신, 서비스 메시
Queue메시지 저장 및 전달, 비동기 처리, 작업 스케줄링, 낮은 시스템 결합도작업 큐, 이벤트 드리븐 아키텍처
WebSocket양방향 통신, 실시간 데이터 교환채팅, 게임, 실시간 대시보드
Webhook이벤트 기반, HTTP 요청외부 서비스 통합, 알림 시스템

profile
(와.. 정말 Chill하다..)

0개의 댓글