본문 바로가기
728x90
반응형

전체 글72

SAGA 패턴 Choregraphy-based SAGA(코레오그래피 사가)순차적으로 이벤트가 전달되면서 트랜잭션이 관리되는 방식이벤트는 RabbitMQ, Kafka와 같은 메시지 큐 미들웨어를 사용해서 비동기 방식 혹은 분산 처리 형태로 전달할 수 있음코레오그래피 방식의 경우 에러가 발생했을 때 현재 트랜잭션 상태에 대해 파악하기 어려움확장이 어려움Orchestration-based SAGA(오케스트레이션 사가)서비스가 Event를 직접 구독하지 않고, Saga Orchestrator에서 Event를 구독한 후 각 서비스를 호출하여 트랜잭션을 관리하는 방식트랜잭션에 관여하는 모든 서비스는 Orchestrator에 의해 트랜잭션을 수행하고 결과를 Orchestrator에게 전달오케스트레이션 방식은 현재 트랜잭션의 상태를.. 2025. 1. 24.
TCP/IP의 상태 모델 별 개발자 작업 CLOSE(초기 상태)연결이 닫힌 상태. 소켓이 열리지 않았거나 연결이 종료됨개발자 작업소켓을 생성하고 연결 요청을 준비클라이언트의 경우 connect() 호출 준비서버의 경우 bind() 와 listen() 호출 후 대기 상태로 전환LISTEN(서버 대기 상태)서버가 클라이언트의 연결 요청을 기다리는 상태개발자 작업서버에서 accept() 를 호출해 클라이언트의 연결 요청을 처리필요한 경우 연결 제한 수를 설정하거나 타임아웃 처리SYN_SENT(클라이언트 연결 요청 상태)클라이언트가 서버에 연결 요청을 보낸 상태개발자 작업연결이 성공하지 않을 경우 타임아웃 처리연결이 성공하면 다음 단계로 상태 전환실패 시 재시도 로직이나 오류 핸들링 구현SYN_RECEIVED(서버 연결 요청 수신 상태)서버가 클라이언.. 2025. 1. 23.
RESTful API RESTful API?REST(Representational State Transfer) 아키텍처 스타일을 따르는 APIHTTP 프로토콜을 기반으로 클라이언트와 서버 간의 통신을 설계하는 방식원칙자원(URI)모든 자원은 고유한 URI로 식별됨GET: 자원조회, GET /users/123POST: 자원생성, POST /usersPUT: 자원전체수정, PUT /users/123PATCH: 자원부분수정, PATCH /users/123DELETE: 자원삭제, DELETE /users/123무상태성(Stateless)서버는 클라이언트의 상태를 저장하지 않음모든 요청은 독립적임캐싱(Caching)HTTP 캐싱 헤더를 활용하여 응답 데이터를 클라이언트가 캐싱할 수 있도록 지원함일관된 인터페이스API는 표준화된 방식으.. 2025. 1. 23.
HTTP 1/2/3 HTTP 1.1데이터는 문자열로 전송연결당 하나의 요청과 응답을 처리. 동시전송 문제와 다수의 리소스를 처리하기에 속도와 성능의 문제를 갖고 있음HOL-Blocking 발생, RTT(Rount Tript Time)의 증가매 요청시 마다 쿠키 정보를 헤더에 포함시키고 중복된 헤더 값을 전송HTTP 2.0데이터는 바이너리로 인코딩하여 압축해서 전송Multiplexed Streams 방식이 도입되어 한번의 연결로 여러개의 메세지를 동시에 주고 받을 수 있음. 그러므로 HOL-Blocking이 발생하지 않음Stream Prioritization: 요청 리소스간 우선순위를 설정하여 응답을 빨리 받을 수 있음Header Compression: 헤더 정보를 HPACK 압축 방식을 이용하여 압축 전송Server Pus.. 2025. 1. 22.
HTTP 헤더 HTTP 헤더?요청이나 응답에 대한 추가 정보를 제공하는 키-값 형태의 메타데이터HTTP 프로토콜이 유연하고 확장 가능하게 동작하도록 도움 쿠키클라이언트에 저장되는 작은 데이터 조각. 서버와 클라이언트 간의 상태를 유지하기 위해 사용키-값 형태서버가 응답 시 Set-Cookie 헤더를 통해 클라이언트에 쿠키를 설정하며 이후 요청에 자동으로 포함됨만료 시간이나 도메인, 경로 설정을 통해 동작 범위를 제어 가능Keep-AliveHTTP 연결을 재사용하여 클라이언트와 서버 간의 통신 효율성을 높이는 기능동작 방식: 기본적으로 HTTP 요청-응답 후 TCP 연결은 종료되지만, Keep-Alive를 사용하면 연결을 유지하여 여러 요청을 처리할 수 있음. 예를 들어 하나의 TCP 연결로 웹 페이지의 HTMP, CS.. 2025. 1. 22.
TCP 3-way handshake, 4-way handshake TCP 3-way handshakeTCP 연결을 설정할 때 클라이언트와 서버가 서로의 상태를 확인하고 신뢰성 있는 데이터 전송 경로를 확보하는 과정임 (연결 설정 과정)동작 과정클라이언트 -> 서버 (SYN)클라이언트가 서버로 SYN(Synchronize) 패킷을 전송하여 연결을 요청이때 초기 시퀀스 번호(ISN)를 생성하여 전송서버 -> 클라이언트 (SYN+ACK)서버가 클라이언트의 요청을 수락하고 SYN+ACK 패킷을 전송서버도 자신의 초기 시퀀스 번호(ISN)를 생성클라이언트 -> 서버 (ACK)클라리언트가 서버로 ACK(Acknowledgment) 패킷을 전송하여 연결이 완료되었음을 확인Client Server | -------- SYN --------> |.. 2025. 1. 22.
728x90
반응형