2021/09 4

대규모 시스템 설계 기초 - 4. 처리율 제한 장치의 설계

처리율 제한 장치(rate limiter) : 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치 API 요청 횟수가 제한 장치에 정의된 임계치를 넘어서면 추가로 도달한 모든 호출은 처리가 중단된다. 몇 가지 예시 사용자는 초당 2회 이상 새 글을 올릴 수 없다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없다. 같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없다. 예시 요구사항 설정된 처리율을 초과하는 요청은 정확하게 제한한다. 낮은 응답시간 : 이 처리율 제한 장치는 HTTP 응답시간에 나쁜 영향을 주어서는 곤란하다. 가능한 한 적은 메모리를 사용해야 한다. 분산형 처리율 제한 - 하나의 처리율 제한 장치를 여러 서버나 프로세스에서 공유할 수 있어야..

[인상적인 구절] OKR

OKR은 목표와 핵심결과의 약자로서 기업과 팀, 혹은 개인이 협력해 목표를 세우기 위한 규약을 의미한다. '목표'는 성취해야 할 대상이다. 목표는 대단히 중요한 것으로서 구체적이고 행동 지향적이어야 하며, 영걈으로 가득해야 한다. 효과적으로 수립된 목표는 애매모호한 생각과 행동으로부터 조직을 지켜주는 백신이다. '핵심결과'는 목표 달성을 위한 방안을 모색하고, 달성 여부를 확인할 수 있도록 해준다. 효과적으로 마련된 핵심결과는 구체적인 일정을 기반으로 삼고, 공격적이면서 동시에 현실적이다. 무엇보다 핵심결과는 측정과 검증이 가능해야 한다. 목표는 1년 이상 장기간 동안 이어질 수 있다. 반면 핵심결과는 업무 진척에 따라 변화한다. 핵심결과를 모두 성취했다면, 목표는 당연히 이뤄져야 한다. OKR 예시 목..

[인상깊은 구절] 규칙 없음

비범한 동료들이 곧 훌륭한 직장이다 탁월한 인재 5명과 평범한 사람 2명이 함께 있으면 그 팀은 평범한 팀이 된다 매니저의 기운을 빼 최고의 성과를 내지 못하게 만든다 그룹 토의의 질을 떨어뜨려 팀의 전반적인 IQ를 낮춘다 사람들이 싫어할 일을 하게 만들어 능률을 떨어뜨린다 남보다 탁월한 능력을 발휘하고 싶은 직원을 회사에서 나가게 만든다 평범한 사람도 받아준다는 사실을 보여줌으로써 문제를 복잡하게 만든다 넷플릭스 이야기의 기반이 되는 가장 중요한 점이다. 비범한 동료들, 이 첫 번째 점이 확실하게 자리 잡지 않으면, 다른 원칙도 제 기능을 하지 못한다. 자신의 생각을 있는 그대로 말하라 (긍정적인 의도로) 상대를 공격하려는 의도가 아니라, 어디까지나 선의를 가지고 정식으로 문제를 제기한 후 자신의 감정..

Junit5 Extension 알아보기 (org.junit.jupiter.api.extension)

Extension 모든 extension을 위한 마커 인터페이스이다. Extension은 @ExtendWith 를 통해 선언적으로 등록될 수도 있고, @RegisterExtension 을 사용해 프로그램에 따라 적용될 수도 있가. ServiceLoader 매커니즘을 이용해 자동 등록될 수도 있다. ServiceLoader 또는 @ExtendWith 를 이용해 등록되는 Extension 구현체는 default constructor를 무조건 가지고 있어야 한다. @ExtendWith 를 이용해 등록될 때 default constructor는 반드시 public이 아니어도 된다. ServiceLoader를 통해 등록될 때 default constructor는 반드시 public 이어야 한다. @Register..