2026/04 4

[gRPC] Status Codes

1. Status CodegRPC 호출은 마지막에 status 하나를 클라이언트에게 돌려줌보통 code, description으로 구성됨 2. 자주 쓰이는 코드코드의미생성주체재시도 관점예시OK성공서버/라이브러리재시도 불필요정상 저장CANCELLED호출 취소주로 호출자/서버 컨텍스트보통 자동 재시도 아님클라이언트 취소, 서버에서 cancel 감지DEADLINE_EXCEEDED정해진 시간 안에 응답 못 받음라이브러리에서 자주 생성상황 따라 가능3.5초 deadline 초과INVALID_ARGUMENT입력값 자체가 잘못됨애플리케이션이 직접같은 요청 재시도 의미 없음빈 content, 잘못된 roomId 형식NOT_FOUND대상 없음애플리케이션이 직접상태 바뀌기 전엔 의미 없음채팅방 없음ALREADY_EXIST..

Network 2026.04.17

[gRPC] Deadlines

1. Deadline클라이언트가 "이 시각 이후에는 더 이상 응답을 기다리지 않겠다" 라고 정하는 시간✅클라이언트는 이 시각이 넘으면 호출을 포기하고 실패로 간주함 필요성분산 시스템에서는 서버가 느려지거나 네트워크가 밀림으로 인한 지연이 발생할 수 있음⚠️ 만약 deadline이 없다면, 클라이언트가 계속 대기하게 되어 지연이 전체 시스템에 전파될 수 있음 2. ClientDEADLINE_EXCEEDED 상태deadline 초과 시, 클라이언트가 호출에 대해 받는 상태 3. ServerCANCELLED 상태서버에서 작업 중 deadline 시간을 초과할 경우, 계속 하던 작업을 자동 취소함✅ 단, 작업중인 것은 롤백하는 코드를 작성해줘야 함 4. PropagationgRPC 요청이 체이닝 형식일 경우, ..

Network 2026.04.17

[Tomcat 11] 1. Architecture

1. ArchitectureTomcat Server└── Service ├── Connector (HTTP / AJP) ← 요청을 받는 입구 └── Engine ← 요청 처리 총괄 ├── Host (www.site.com) │ ├── Context (/) │ ├── Context (/chat) │ └── Context (/admin) └── Host (api.site.com) ├── Context (/) └── Context (/v1)구성 요소정의역할Server톰캣의 전체 인스턴스이자 최상위 컨테이너여러 Service를 담고 전체 서버를..

Spring/Spring MVC 2026.04.16

[Tomcat 11] 2. Connector

1. HTTP 1.1 Connector특정 TCP 포트에서 연결을 받아서, 요청을 처리를 하게 하는 입구 (Engine으로 넘겨 처리함)non-async 요청 1개당 worker thread 1개를 처리 동안 점유함 2. AttributesCommon Attributes속성설명의미protocol어떤 HTTP connector 구현을 사용할지 정하는 설정현재 톰캣이 NIO 기반으로 동작하는지 이해하는 기준asyncTimeout비동기 요청의 기본 timeout 시간async 요청이 오래 걸릴 때 timeout 원인 해석 가능maxParameterCount요청에서 허용할 최대 파라미터 개수파라미터 폭주나 비정상 요청으로부터 서버 보호maxPartCountmultipart 요청에서 허용할 최대 part 개수파일..

Spring/Spring MVC 2026.04.15