Network

[gRPC] Status Codes

noahkim_ 2026. 4. 17. 23:38

1. Status Code

  • gRPC 호출은 마지막에 status 하나를 클라이언트에게 돌려줌
  • 보통 code, description으로 구성됨

 

2. 자주 쓰이는 코드

코드 의미 생성주체 재시도 관점 예시
OK 성공 서버/라이브러리 재시도 불필요 정상 저장
CANCELLED 호출 취소 주로 호출자/서버 컨텍스트 보통 자동 재시도 아님 클라이언트 취소, 서버에서 cancel 감지
DEADLINE_EXCEEDED 정해진 시간 안에 응답 못 받음 라이브러리에서 자주 생성 상황 따라 가능 3.5초 deadline 초과
INVALID_ARGUMENT 입력값 자체가 잘못됨 애플리케이션이 직접 같은 요청 재시도 의미 없음 빈 content, 잘못된 roomId 형식
NOT_FOUND 대상 없음 애플리케이션이 직접 상태 바뀌기 전엔 의미 없음 채팅방 없음
ALREADY_EXISTS 이미 존재함 애플리케이션이 직접 보통 의미 없음 같은 메시지 중복 생성
FAILED_PRECONDITION 현재 상태상 실행 불가 애플리케이션이 직접 상태 수정 전 재시도 의미 없음 이미 나간 유저가 전송
ABORTED 동시성 충돌/트랜잭션 중단 애플리케이션이 직접 상위 작업 재시도 후보 낙관적 락 충돌
RESOURCE_EXHAUSTED 리소스 부족 라이브러리/애플리케이션 둘 다 가능 보통 백오프 후 가능 quota 초과, 큐 포화
UNIMPLEMENTED 미구현/미지원 라이브러리/서버 재시도 의미 없음 없는 RPC 호출
INTERNAL 내부 오류 라이브러리/서버 보통 바로 재시도 비추천 직렬화/불변식 깨짐
UNAVAILABLE 현재 서비스 사용 불가 라이브러리에서 자주 생성 백오프 후 재시도 후보 서버 다운, 연결 실패
UNAUTHENTICATED 인증 실패 라이브러리/애플리케이션 자격 증명 수정 후 토큰 없음/유효하지 않음
PERMISSION_DENIED 권한 없음 애플리케이션 권한 없으면 의미 없음 해당 방 쓰기 권한 없음
UNKNOWN 알 수 없는 오류 라이브러리/서버 상황 따라 다름 예외가 애매하게 변환됨

 

 

출처

'Network' 카테고리의 다른 글

[gRPC] Deadlines  (0) 2026.04.17
[gRPC] 1. What is gRPC?  (0) 2025.08.26
[IBM Technology] What are DNS Zones And Records?  (0) 2025.03.29
[IBM Technology] What is DNS?  (0) 2025.03.29