피드로 돌아가기
Dev.toBackend
원문 읽기
DB 기반 Trie 구조 도입으로 배포 없는 엔드포인트 권한 제어 구현
Endpoint classification: OPEN, AUTHENTICATED, ACCESS_CONTROLLED
AI 요약
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 처리하고, 런타임 갱신 실패는 서비스 유지 방향으로 설계