Skip to content

[Test] WebSocket 대시보드 수신 부하와 권한 검증 비용 기록 #374

Description

@Gimini-3

배경

권한 회수 뒤 기존 STOMP 대시보드 구독자의 메시지를 차단하는 #373을 머지했습니다. 이 변경은 보안상 필요한 현재 역할 확인을 수신자별 outbound 경로에 추가합니다. 별도 GCP 시험에서 이 비용이 구독자 수에 따라 커지는 것을 확인했으므로, 시험 방법과 원본 측정값을 코드 변경과 분리해 보존합니다.

범위

  • 동일한 임시 VM과 OpenSQL 3노드 경로에서 기존 버전과 [Fix] 관리자 역할 회수 후 WebSocket 대시보드 접근 차단 #373 버전을 비교한 시험 조건·결과를 문서화합니다.
  • 1·5·20·50개 구독의 측정값을 목적·실행 회차별 파일로 분리하고, 50개 조건은 버전별 3회 결과를 보존합니다.
  • JVM 스택, Hikari·브로커 지표, DB 역할 확인으로 병목 위치를 설명합니다.
  • 시험 전용 합성 publisher, 시간 동기화, 표본 창, 클라우드 구성, 재현 가능 범위와 한계를 명확히 적습니다.
  • 공개 자료에는 계정·토큰·암호·내부 주소·프로젝트 식별자를 넣지 않습니다. 이 이슈는 성능 최적화 자체를 포함하지 않습니다.

관측한 문제

50개 관리자 구독에서 30초 관측을 버전별 3회 반복했습니다. 수신 지연 p95 중앙값은 기존 8.5 ms, #373 버전 2,443.7 ms였고, 수신 프레임 중앙값은 5,000건에서 588건으로 줄었습니다. 연결 오류와 수신한 sequence의 중간 누락은 0건이었지만, 동기 팬아웃 지연으로 예정된 push 자체가 적게 생성됐습니다. 이 결과는 합성 publisher를 쓴 한 환경의 관측값이며 운영 SLA나 모든 부하에서의 보장값은 아닙니다.

완료 조건

  • 비식별 시험 원본과 회차별 요약·실행 명령·해석이 서로 대조됩니다.
  • 보안 효과와 성능 비용을 분리해 설명하고, 확인된 사실·추론·미검증 범위를 구분합니다.
  • 후속 성능 개선 작업에서 동일 조건으로 전후 비교할 기준선을 제공합니다.

관련 보안 수정: #373, 원래 권한 회수 문제: #371.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions