피드로 돌아가기
Endpoint classification: OPEN, AUTHENTICATED, ACCESS_CONTROLLED
Dev.toDev.to
Backend

DB 기반 Trie 구조 도입으로 배포 없는 엔드포인트 권한 제어 구현

Endpoint classification: OPEN, AUTHENTICATED, ACCESS_CONTROLLED

Akarshan Gandotra2026년 5월 4일11intermediate

Context

하드코딩된 라우팅 경로와 YAML 설정 기반의 권한 관리로 인한 잦은 배포 발생 및 유지보수 비용 증가. 와일드카드 경로 처리를 위한 효율적인 매칭 알고리즘 부재로 인한 시스템 확장성 한계 직면.

Technical Solution

  • Endpoint Classification을 DB 컬럼으로 관리하여 코드 수정 및 배포 없이 런타임에 권한 설정 변경 가능 구조 설계
  • 경로 세그먼트 기반의 Trie 데이터 구조를 도입하여 O(depth)의 시간 복잡도로 빠른 경로 검색 및 와일드카드({id}) 매칭 구현
  • Service Slug 단위로 Trie를 격리하여 전역 Trie의 경로 충돌을 방지하고 캐시 지역성 및 갱신 효율성 최적화
  • X-Service-Slug 및 X-Request-Path 헤더를 통한 명시적 라우팅 지원으로 서비스 간 중첩 경로 문제 해결
  • Readiness Probe와 메모리 내 Trie 상태를 연동하여 DB 장애 시에도 기존 트래픽의 서비스 연속성을 보장하는 장애 격리 전략 채택
  • JWT 내 권한 정보 저장을 배제하여 설정 변경 사항이 즉각 반영되는 데이터 중심의 권한 결정 메커니즘 구축

- 정적 경로 외에 와일드카드 패턴 매칭이 빈번한 경우 Map 대신 Trie 구조 검토 - 인프라 설정 변경을 위한 배포 프로세스를 줄이기 위해 설정의 DB화 및 In-memory 캐싱 전략 적용 - 시스템 부팅 시 필수 데이터 로드 실패 시에만 Readiness를 Fail 처리하고, 런타임 갱신 실패는 서비스 유지 방향으로 설계

원문 읽기