분류 전체보기86 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. Notion Formula를 통한 회의 날짜 자동 채우기 삽질기 팀에서는 Notion을 통해 주간 회의록을 관리하고 있습니다. 매주 자동으로 생성되도록 반복 옵션(repeat option)을 설정해 두었으며, 최신 항목이 가장 먼저 보이도록 미팅 일자를 기준으로 정렬하고 있습니다. 하지만 이 방식에는 한 가지 문제가 있었습니다. 새로 생성된 문서에는 미팅 일자가 지정되지 않기 때문에 목록의 가장 아래에 생성되었습니다. 초기에는 직접 미팅 일자를 지정해도 큰 문제가 없었으나, 회의록이 누적되면서 찾기가 점점 어려워졌습니다.물론 새로 생성된 문서의 미팅 일자를 2027년 같은 먼 미래로 지정하여 항상 맨 위에 오도록 설정할 수도 있었습니다. 하지만 저희 팀 미팅은 대부분의 상황에서 매주 금요일 오후 2시로 고정되어 있기 때문에, 미팅 일자가 자동으로 지정되도록 만들고 싶.. 2025. 1. 19. 이전 1 2 3 4 ··· 22 다음