미디어 서버의 메모리에 계정별 방송 경로를 추가해 두면, 서버 재시작 뒤에는 그 설정을 다시 만들어야 합니다. 계정 키가 폐기될 때도 이미 반영한 설정을 바꿔야 합니다. PokeClip에서는 이를 위해 인증 서비스의 원하는 상태를 주기적으로 가져와 맞추는 path-reconciler를 검토했습니다.
이 방식은 2026년 10월 6일 연결별 인증 방식으로 전환하면서 폐기한 설계입니다. 저는 조정자 방식을 선택하고 실패 조건을 정한 뒤 후속 방향으로 바꾸는 결정을 했으며, 설계와 실측은 AI 협업으로 진행했습니다. 현재 구현 소개가 아니라, 부분 응답을 삭제 근거로 쓰지 않기 위해 어떤 규칙이 필요했는지와 인증 대기를 조사한 기록입니다.
경로에 비밀을 넣어야 한다는 전제에서 출발했습니다
당시에는 경로별 passphrase를 미리 설정하는 구조를 검토했습니다. Auth가 변경을 한 번 push하는 것만으로는 미디어 서버 재시작을 알기 어렵고, 서버 사이에 관리 API도 열어야 했습니다. 그래서 미디어 옆의 조정자가 Auth에서 원하는 상태를 pull하고 MediaMTX Control API로 실제 경로를 맞추는 안을 택했습니다.
| 대안 | 처리하기 쉬운 것 | 추가 책임 |
|---|---|---|
| Auth에서 경로 변경 push | 계정 변경 직후 알림 | 재시작 감지·재전송·관리 API 접근 |
| 미디어 옆 조정자의 pull | 재시작 뒤 원하는 상태 재수집 | 주기 지연·부분 응답·삭제 판단 |
| 연결별 인증 | 연결 시점의 계정 판정 | 인증 대기·응답기·수신부 계약; 후속 선택 |
조정자는 Auth의 모든 페이지를 받아 목록을 완성한 뒤 비밀 참조를 해석하고 경로에 반영하도록 설계했습니다. 평문 대신 Secrets Manager 참조를 받는 안이었으며, 원문 저장 이전이 선행 조건이었습니다. 그 이전은 현재도 준비 중인 별도 계획이고, 옛 조정자와 함께 완료된 작업이 아닙니다.
목록에 없다는 것과 읽지 못했다는 것은 달랐습니다
첫 페이지는 받았지만 둘째 페이지가 실패했다면, 뒤쪽 계정은 삭제된 것이 아니라 아직 읽지 못한 것입니다. 여기서 응답에 없는 경로를 지우면 정상 방송까지 제거할 수 있습니다. 따라서 모든 페이지를 받아 목록의 완전성을 확인하기 전에는 누락을 삭제 근거로 쓰지 않도록 정했습니다.
폐기에는 반대 방향의 조건도 필요했습니다. 이미 확인한 키 폐기를 다음 조회 오류 때문에 되돌려서는 안 됩니다. 마지막 정상 확인 이전에 시작한 방송은 종료까지 보호하고, 새 접속은 별도로 판정하는 방식으로 검토했습니다. Auth 장애 허용 시간이 지나 확인하지 못한 새 접속을 닫는 상태가 되더라도 Control API 실패로 반영이 지연되면, 그 차이를 health에 드러내야 했습니다.
이 규칙을 적어도 즉시 차단이 보장되지는 않았습니다. 조정 프로세스가 죽으면 마지막 설정이 남는 fail-static과 조회·변경 사이 경합이 제약으로 남았습니다. 정상 경로를 추가하는 것보다 실패한 조회로 무엇을 바꾸지 말아야 하는지 정하는 일이 더 복잡했습니다.
인증 지연 0.3초가 마지막 연결에는 3.057초가 됐습니다
Auth 조회, 비밀 해석, 경로 적용에는 별도 시간 예산을 두기로 했습니다. 조회가 전체 시간을 소모하면 이미 확인한 폐기조차 적용하지 못할 수 있기 때문입니다. 계속 실패하는 키가 뒤의 후보를 굶기지 않도록 FIFO 후보 큐를 검토했고, 긴급 차단은 Auth 폐기와 운영자 차단 목록으로 다뤘습니다. 서버 재시작을 정상 폐기 수단으로 삼지는 않았습니다.
인증 대기가 다른 요청에 미치는 영향도 확인했습니다. 10월 5일, 통제된 인증 응답 지연을 주입한 실험의 원시 패킷과 로그를 다시 대조했습니다.
| 실험 조건 | 관측 |
|---|---|
| 동시 연결 10개, 인증 지연 0.1초 | 마지막 수락 1.059초 |
| 동시 연결 10개, 인증 지연 0.3초 | 마지막 수락 3.057초 |
| 인증 지연 1.5초 | 새 HLS 세션과 경로 목록 API도 약 1.49초 대기 |
인증 요청은 연결마다 1회였고 순서대로 처리됐습니다. 새 HLS 세션과 목록 API는 각각 10회 확인했습니다. 개별 인증 응답의 지연만 볼 것이 아니라 다른 연결과 관리 요청으로 대기가 퍼지는지도 봐야 한다는 근거였습니다. 기존 방송 전체의 중단이나 수정 후 성능 개선을 측정한 결과는 아닙니다.
이후에는 경로를 미리 맞추는 대신 연결에서 계정을 판정하기로 했습니다
후속 방향은 MediaMTX의 연결별 HTTP 인증을 응답기가 받아 Auth에 계정을 확인하고, 그 계정의 SRT passphrase를 해당 연결에 사용하는 방식입니다. 관련 상류 제안 MediaMTX #6306은 2026년 10월 15일 확인 시 열려 있었으며 병합·릴리스 실적으로 세지 않습니다. dev-media 연동과 실제 서버 검증도 남아 있습니다.
경로 상태를 주기적으로 맞추는 조정자는 현재 방식에서 빠졌지만, 조사에서 얻은 판단까지 사라지지는 않았습니다. 부분 응답으로 삭제를 추론하지 않고, 이미 확인한 폐기를 뒤의 오류로 뒤집지 않으며, 인증 대기가 영향을 미치는 범위를 측정해야 합니다.
이 설계 기록의 쓸모는 조정자 자체를 다시 만들도록 권하는 데 있지 않습니다. 계정 목록과 실행 중인 연결을 동기화하려 할 때 정상 응답 뒤에 숨는 실패 조건을 보여 줍니다. 전제가 바뀌면 구현은 버릴 수 있어도, 그 과정에서 확인한 실패 조건은 다음 인증 방식에서도 다시 검토할 기준이 됩니다.