목록 보기
사람은 떠났는데 권한은 남았다
백엔드

사람은 떠났는데 권한은 남았다

flex
flex
2026년 7월 29일

두줄요약

관계 원천과 인가 튜플을 Outbox·CDC·Kafka로 동기화해 잔존 권한 문제를 줄이는 구성을 다뤘습니다. 부분 실패, 캐시, 감사 이력까지 함께 고려한 운영 포인트도 정리했습니다.

문제 상황

  • 관계 데이터가 도메인 서비스에 흩어져 있고, 인가 엔진의 튜플 상태가 원천 변경을 제때 따라가지 못하는 구조
  • 조직 이동이나 퇴사 이후에도 옛 관계가 남아 잔존 권한이 생기고, 반대로 새 권한은 늦게 반영되는 문제

구조와 흐름

  • 기존 Outbox·CDC·Kafka 레일 위에 인가 컨슈머와 튜플 쓰기 서비스를 얹는 동기화 파이프라인 구성
  • 도메인 이벤트를 관계 생성·삭제 명령으로 번역해 인가 엔진의 튜플 상태를 갱신
  • 튜플 변경 이력을 시간순으로 남겨 변경 전파와 감사 추적에 활용

트레이드오프

  • 관계 개편 시 여러 튜플을 여러 덩어리로 나눠 쓰면서 부분 성공 가능성 수용
  • 허용 방향의 불일치를 더 위험하게 보고, 민감 데이터는 캐시를 배제하는 보수적 선택 적용
  • 캐시 무효화 대신 최신성 기준으로 우회 여부를 판단해 지연과 안전성 사이를 조정

성능/운영 포인트

  • 컨슈머 랙, 처리 시간, Outbox→Kafka 지연을 모니터링하며 초~분 단위 창을 관리
  • 재시도와 중복 수신 방지, 이벤트 고유 ID로 순간 실패 흡수
  • 실패 이벤트 재처리 경로는 별도 과제로 남겨 둠

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...