본문 바로가기

분류 전체보기87

네번의 글또 마무리 2020년에 활동했던 글또 5기를 시작으로 벌써 네 번째 글또를 마무리 짓고 있다. 이번 글또의 경우 다짐글을 따로 적지는 않았지만, 신청 시점에 작성했던 문구와 활동 초기의 다짐들을 되뇌어보면…한글로 적혀있는 글이 존재하지 않지만, 가끔 찾아볼만한 마이너 한 주제를 털어보고 싶다.매 제출 시작 시점에 글을 제출하자!위와 같은 다짐을 하고 시작했는데, 역시 잘 된 것 같지는 않다. 아무튼 벌금은 안 내고 완주는 했으니 잘했다고 해야 할까… 아무튼 반년 간의 글또 활동 간에 생각한 것을 정리하고, 다음에 대하여 이야기해보고자 한다.후기글또를 하면서 아래와 같은 글을 작성했다.Kafka 메세지를 안정적으로 다루는 방법 (Transaction Outbox Pattern) Kafka를 사용할 때 메시지의 안정성.. 2025. 3. 30.
java/kotlin 환경에서 비동기 코드를 테스트하는 2가지 방법 요즘 비동기 로직을 정말 많이 작성합니다. 외부 API 호출, 대용량 데이터 처리, 이메일 발송과 같은 시간이 걸리는 작업들을 기다리지 않고 처리할 수 있게 해 주기 때문입니다. 이를 통하여 불필요한 작업을 비동기로 넘겨서 response time을 크게 줄일 수 있죠. 그러나 비동기 로직은 테스트하기가 까다롭습니다. 실행 시점을 정확히 예측하기 어렵고, 메인 스레드가 아닌 다른 스레드에 동시에 실행되면서 발생하는 복잡성도 고려해야 합니다. 이로 인하여 어떤 함수를 호출하고, 이의 반환 값을 검증하거나, 반환 이후의 상태를 확인하는 방식으로는 테스트를 할 수 없게 됩니다. 아래와 같은 예시로 좀 더 이야기해볼게요.class EmailService( private val emailRepository:.. 2025. 3. 16.
누구나 알아두면 도움이 될 인가 시스템 : Google의 Zanzibar와 ReBAC 안녕하세요. 앞선 글에서는 RBAC의 특징과 한계에 대하여 이야기를 나누어 보았습니다. 특히 동적인 환경에서의 유연성 부족, 세분화된 접근 제어의 어려움, 그리고 복잡한 관계 표현의 한계를 주요 문제로 언급했었는데요. 오늘은 이러한 문제들을 ReBAC(Relationship-Based Access Control)가 어떻게 접근하고 해결하였는지 ReBAC을 기반으로 만들어진 인가 시스템(Authorization System)인 Google의 Zanzibar를 통해 어떻게 실제로 구현되었는지 살펴보려고 합니다. 오늘의 이야기는 Google에서 2019년에 발표한 Zanzibar: Google’s Consistent, Global Authorization System 논문을 기반으로 이야기해보겠습니다.RBAC.. 2025. 3. 2.
누구나 알아두면 도움이 될 권한 관리 모델 : RBAC(Role-Based Access Control) 오늘은 NIST(미국 국립표준기술연구소)에서 발표한 "The NIST Model for Role-Based Access Control: Towards A Unifed Standard" 논문을 바탕으로 RBAC(Role-Based Access Control)에 대해 정리해보려고 합니다.여러분이 웹 서비스나 애플리케이션을 개발해 보셨다면, 아마도 이미 RBAC를 구현하고 계셨을 겁니다. 예를 들어, 쇼핑몰 시스템에서 '관리자', '판매자', '일반 사용자'와 같은 역할을 만들고 각 역할에 따라 다른 기능을 제공하는 것이 바로 RBAC의 기본적인 형태입니다. 사실 RBAC의 개념은 컴퓨터가 널리 보급되기 이전부터 존재했습니다. 예를 들어, 회사에서 특정 문서에 접근할 수 있는 권한을 직급이나 부서에 따라 부여.. 2025. 2. 2.