DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from Flex
#Backend

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

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

Summary

퇴사한 김팀장의 옛 권한은 언제 사라질까? 실시간 인가 정합성 해결기

플렉스팀이 겪은 ReBAC 기반 인가 동기화 파이프라인의 실전적 설계와 세 가지 지혜

도메인 서비스와 인가 엔진 사이의 상태 수렴을 안전하게 해결하는 아키처를 제시합니다. 기존의 신뢰도 높은 CDC 인프라를 연계하여 정합성 불일치 문제를 해결하고, 지연의 방향성에 따른 비즈니스적 판단과 시스템 한계 대처법을 공유합니다.

  • 01신규 메시징 인프라 없이 기존의 Outbox 및 Debezium CDC 파이프라인을 100% 재활용
  • 02지연의 양상을 허용 방향 불일치와 제한 방향 불일치로 구분하여 위험도 기반의 차등 제어
  • 03멱등성 유지를 위한 차이분 기반 튜플 갱신과 중복 방지 필터링 기법 구현
  • 04최신성 확보를 위해 캐시 무효화 대신 호출 시점에 우회 여부를 판단하는 구조 적용
  • 05인가 내역을 시간순 이력으로 영속화하여 사후 보안 규제 및 감사 조사 대응책 확보

+RECOMMENDATION

세밀한 접근 제어(ReBAC) 정합성을 완벽하게 동기화하고, 대규모 조직 변경과 복잡한 보안 감사 요건을 해결하려는 시니어 개발자 및 아키텍트에게 적극 추천합니다.

The Problem

도메인 서비스에 분산된 관계 데이터의 원천이 변경될 때 인가 엔진의 상태가 즉각적으로 일치되지 않아, 퇴사자나 부서 이동자에게 과거 권한이 유지되는 보안 취약점과 권한 불일치 위험이 발생합니다.

The Solution

새로운 메시징 인프라 추가 없이 기존의 Transactional Outbox와 Debezium CDC, Kafka 인프라를 활용하여 도메인 이벤트를 인가 엔진의 관계 튜플 쓰기 명령으로 변역하는 컨슈머를 설계하여 동기화했습니다.

The Result

초에서 분 단위의 실시간 감시 체계를 통해 수백 개의 관계 변화가 발생하는 대규모 조직 개편 변경 사항을 안정적으로 처리하며, 관계 변경 내역을 시간순 목록으로 기록해 사후 감사 추적이 가능하도록 구성했습니다.

Trade-off

관계 변경 사항 기록 시 비원자적 다중 쓰기를 수행하여 부분 실패의 위험이 존재하며, 영구 실패 시 자동 재처리 경로가 부재하고, 정합성을 극대화하기 위해 캐시를 우회할 경우 인가 엔진의 부하가 가중되는 한계가 있습니다.

03

Key Concepts

Concept · 01

ReBAC

주체와 리소스 사이의 명시적 관계 정의를 통해 권한을 논리적으로 판정하는 차세대 접근 제어 모델입니다.

  • 본문에서는 역할 목록 방식 대신 OpenFGA 엔진을 도입해 모든 권한 판정을 관계 튜플 데이터 형태로 관리하도록 구성하였습니다.
Concept · 02

Transactional Outbox Pattern

데이터베이스 쓰기 연산과 메시지 발행 연산을 단일 로컬 데이터베이스 트랜잭션으로 원자적으로 처리하는 분산 시스템 디자인 패턴입니다.

  • 도메인 데이터가 바뀔 때 Outbox 테이블에 메시지를 함께 기록하여 메시지 손실 없는 안정적인 인가 이벤트 전송의 기반을 제공했습니다.
Concept · 03

CDC (Change Data Capture)

데이터베이스의 트랙션 로그를 실시간으로 모니터링하여 데이터 변경 사항을 즉시 감지하고 다른 시스템에 연동하는 기술입니다.

  • Debezium을 활용해 Outbox 데이터의 생성과 변경을 지연 없이 감지하고 Kafka 브로커로 고속 유통시키는 데 사용되었습니다.
Continue reading · same source

FlexMore from Flex

View all posts from Flex
  • @Scheduled 한 줄로 버티다, 트리거를 밖으로 꺼낸 이야기

    Spring BootScheduledDistributed Lock
    5일 전
  • 사람도 에이전트도, 덜 읽을수록 더 잘 고칩니다

    ModularizationAI AgentLLM Context
    1주 전
  • 헥사고날 아키텍처, Adapter만 바꾸면 될까

    Hexagonal ArchitecturePort and AdapterMulti Cloud
    2주 전
  • 경계를 빌드로 못 박으면, 경계를 옮기는 일도 빌드가 붙잡습니다

    Multi-ModuleGradleClean Architecture
    3주 전
  • AI가 하한선을 올린 순간, 저희는 직무를 다시 그리기로 했습니다

    AI CodingMicro FrontendsVertical Slice
    1개월 전

Source

Flex
Flex
Engineering Blog

Published · July 29, 2026

Topics

ReBACOpenFGACDCKafkaOutbox Pattern