![[Rate Limit - 3] Fixed Window Counter, Sliding Window Logging, Sliding Window Counter 알고리즘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FnGocc%2FbtsPL2HK8SH%2FAAAAAAAAAAAAAAAAAAAAAAFHDgWp7P9_tt0RS860yktikx9AefdeOW3iuyV3WcOE%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DXzQLxPq7chHhm2voP29vm69Vl4E%253D)
[목차]1. Rate Limit이란? 설계 시 주의사항2. Token Bucket, Leaky Bucket 알고리즘3. Fixed Window, Sliding Window Logging, Sliding Window Counter 알고리즘 지난 포스팅에선, Bucket 방식의 Token Bucket, Leaky Bucket 알고리즘을 살펴보고, 직접 구현과 테스트를 진행했다.이번 글에선 Window 방식의 알고리즘인 Fixed Window Counter, Sliding Window Logging, Sliding Window Counter을 다룬다. 모든 예제 코드는 아래 Github에서 확인할 수 있다. GitHub - mag123c/rate-limiterContribute to mag123c/rate-..
![[Rate Limit - 2] Token Bucket, Leaky Bucket 알고리즘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbnlHTf%2FbtsPEFGwjpM%2FAAAAAAAAAAAAAAAAAAAAABNIoRBTZMWHQ0iTxyvjmJxnzo5RnoIHn9vbeZC4MO2n%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DI7vaslt25mdMOEt6n24By2IaJnY%253D)
[목차]1. Rate Limit이란? 설계 시 주의사항2. Token Bucket, Leaky Bucket 알고리즘3. Fixed Window, Sliding Window Logging, Sliding Window Counter 알고리즘 지난 포스팅에선, Rate Limit이란 무엇이고 설계시 주의사항, 특히 분산 환경에서의 Race Condition 처리에 대해 알아보았다.이번 포스팅에선, Rate Limit을 구현할 수 있는 알고리즘 중 Bucket 기반의 알고리즘들에 대해 살펴보려고 한다. 이번 포스팅을 포함한 Rate Limit에 관련된 모든 코드는 아래 깃허브에서 확인할 수 있다. GitHub - mag123c/rate-limiterContribute to mag123c/rate-limite..
![[Rate Limit - 1] Rate Limit이란? (설계 시 주의사항)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FtRPLV%2FbtsPF8txhld%2FAAAAAAAAAAAAAAAAAAAAAD06kWLLdy31XA0f3CvF_K1co6ZklYFP_fEhMlTAavYN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DQYkj%252BoNaiI3XNuUt4wt%252FFoK8s5A%253D)
사이드 프로젝트에서 AWS에 100달러 이상의 과금이 된 적이 있다. 이 때 처음으로 Rate Limit을 도입했고, A/B 테스트를 통해 적절한 임계치를 찾았던 기억이 있다. 최근, 가상 면접 사례로 배우는 대규모 시스템 설계 기초 를 다시 읽으면서, Rate Limit에 대해 깊이 있게 정리해놓지 않았다는 것을 깨닫고, 정리하는 글이 되시겠다(?) [목차]1. Rate Limit이란? 설계 시 주의사항2. Token Bucket, Leaky Bucket 알고리즘3. Fixed Window, Sliding Window Logging, Sliding Window Counter 알고리즘 Rate Limit Rate Limit는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위..

돈 쓸 일이 많아서, 최대한 Gemini CLI를 주로 이용하고 GPT 4o를 겜스고에서 결제해서 사용하고 있었는데개발자들 사이에서 Claude Code가 넘사라는 이야기를 링크드인, X, 유튜브 등의 커뮤니티에서 너무 많이 듣다보니 도저히 안되겠다 싶어서 Claude Code를 결제해서 한 달 사용해봤다. (겜스고는 클로드 코드 맥스 1인 구독권을 팔아라!!! 제발!!!) 처음에는 100달러, 200달러라는 요금이 두 강아지를 키우는 가장(?)에게 너무 비싼 것 같아서 소소하게 Pro 요금제를 결제해서 사용했는데, 문제는 20달러로는 금방 토큰 사용량을 초과해버려서, 갈증이 났다. 큰 맘 먹고 Max 100 달러짜리로 사용해봤다. 초라하기 짝이 없는 성적표(?)를 받았다. (커피한잔 앱으로 유명한 ..

추억의 "방능"공유기를 사용하는 집에서 스타크래프트, 워크래프트 같은 게임을 했던 사람이라면, 방능이라는 단어를 한 번씩 들어봤을거라 생각한다. 내가 만든 게임 방에 다른 사람이 들어올 수 있는 상태를 뜻하는 말로, 그 시절에는 방능이 안되면 포트포워딩을 해야했고, 네이버를 뒤져서 방법을 찾아보면 공유기에서 설정할 수 있다는 말을 듣고 마구잡이로 따라했었다. 최근 스타크래프트 영상을 몇 개 보다보니 갑자기 그 시절이 생각났다. 그 때는 단순 따라하기만했던 블로그의 설정들을 개발자가 된 지금 왜 공유기 설정이 필요했는지, 게임을 호스팅한다는 게 무슨 의미인지 정리해볼 수 있었다. 방장이 호스트인 P2P 통신스타크래프트, 워크래프트는 P2P 방식이다. 서버가 방을 관리하는 것이 아닌, 내가 직접 방장이..

nest의 e2e이 글을 읽으시는 nest를 활용하는 개발자분들은, e2e를 작성하시나요? 어떻게 작성하고 계신가요?보통은 nest의 공식 문서 가이드에 따라 TestingModule을 통해 NestApplication을 init한 후 사용하실 겁니다.beforeAll(async () => { const moduleRef = await Test.createTestingModule({ imports: [CatsModule], }) .overrideProvider(CatsService) .useValue(catsService) .compile(); app = moduleRef.createNestApplication(); app.use(thirdPartyMiddleWare()); // i..

[SKT 해킹 사태] 2주 간의 타임라인으로 본 사건의 재구성보안업계에서 말하는 ‘골든타임’은 ‘빠르면 빠를수록’이다. 이를 반영하듯 현행 정보통신망법은 사고 인지 후 24시간 내 한국인터넷진흥원(KISA) 또는 과학기술정보통신부에 신고하도록 규www.boannews.com 예스24 ‘랜섬웨어 공격’에 회원정보 유출 정황…개보위 조사 착수개인정보보호위원회가 랜섬웨어 공격으로 ‘먹통’이 된 온라인 서점 예스24에 대한 개인정보 유출 조사에 착수했다. 예스24는 그동안 개인정보가 유출되지 않았다고 밝혔지만, 하루 만에 이와 www.hani.co.kr 최근 뜨거웠던 보안 이슈들과 더불어 TypeScript Backend Meet-Up 의 토스 한상진님의 발표를 듣고해싱 방식들의 안정성을 전혀 생각해보지 않..

⭐오픈소스의 판도를 바꿀, AI로 오픈소스 기여 완벽 가이드와 프롬프트 공유!직접 AI로 오픈소스 기여해본 후 느꼈던 충격을 공유합니다!medium.com 오픈소스에 기여해보고 싶다고 처음 생각했던 때가 2023년 12월 DevFest에서, 첫 PR을 날린건 2024년 11월. 왜 이렇게 오래걸렸을까?오픈소스는 뭔가 어려워보이잖아.. 라고 생각해서? 소위 진입장벽 때문에..? 하지만 이번 오픈소스 멘토링에서 이 진입장벽을 깨부술 엄청난 것을 겪게 되었다. 이슈 선정이 힘들어? AI로 딸깍오픈소스 기여에 막막했을 때를 회고해보자면 기여의 스타트인 이슈 선정부터 막막했다. 정말 막막했다. "내가 이거 해도 되나?""이슈를 어떻게 찾지?""아 전부다 영어네 ㅋㅋ" 오픈소스 멘토링 8기에서는,..