Token Bucket 알고리즘 알아보기
안드로이드 개발을 하다 보면 네트워크 요청을 적절히 제어해야 하는 상황을 자주 마주칩니다. 사용자가 버튼을 연타하거나, 스크롤하면서 수많은 이미지를 요청하거나, 백그라운드 동기화가 과도하게 발생하는 경우가 대표적입니다. 오늘은 이런 문제를 해결하는 핵심 알고리즘인 Token Bucket에 대해 깊이 있게 다뤄보겠습니다. 특히 Kotlin으로 구현하면서 안…

안드로이드 개발을 하다 보면 네트워크 요청을 적절히 제어해야 하는 상황을 자주 마주칩니다. 사용자가 버튼을 연타하거나, 스크롤하면서 수많은 이미지를 요청하거나, 백그라운드 동기화가 과도하게 발생하는 경우가 대표적입니다. 오늘은 이런 문제를 해결하는 핵심 알고리즘인 Token Bucket에 대해 깊이 있게 다뤄보겠습니다. 특히 Kotlin으로 구현하면서 안…
커스텀 갤러리 기능을 개발할 때 이미지 썸네일을 만드는 과정에서 흔히 하는 실수가 있습니다. BitmapFactory.decodeStream()은 InputStream을 Bitmap으로 디코딩한 후에도 스트림을 자동으로 닫지 않습니다. 개발자가 명시적으로 FileInputStream을 닫아야 하는데, 이를 놓치는 경우가 많습니다. 사용자가 빠르게 스크롤하…
평가기관의 자료에 따르면, 넷플릭스를 통한 스트리밍 비디오가 전체 글로벌 인터넷 트래픽의 15%를 차지한다고 합니다. 유튜브나, 아마존 프라임, 애플 TV 등의 서비스까지 합하면 더 클 것으로 추정됩니다. 이번 포스팅에서는 비디오 스트리밍 서비스가 실제로 어떻게 구현되는지, 캐시와 같은 기능을 하는 애플리케이션 레벨 프로토콜과 서버를 사용하여 어떻게 최적…
지금까지 우리가 일상적으로 사용하는 대부분의 애플리케이션(웹, 이메일, DNS 등)은 항상 켜 져 있는 인프라스트럭처 서버에 크게 의존하는 클라이언트-서버 구조를 채택하고 있습니다. 하지만 P2P(Peer-to-Peer) 구조는 이와는 전혀 다른 접근 방식을 사용합니다. 이번 포스트에서는 P2P 파일 분배의 원리를 수학적으로 분석하고, 가장 성공적인 P2P…
프로젝트 규모가 커지면서 Gradle 빌드 시간이 점점 길어지고 있나요? 특히 IDE에서 프로젝트를 동기화할 때마다 오래 기다려야 한다면, Configuration phase에서 실행되는 코드를 점검해볼 필요가 있습니다. 이 글에서는 Gradle 6.1부터 도입된 ValueSource API가 왜 필요한지, 그리고 Configuration Cache와 어…
왜 LL-HLS가 필요할까요? 여러분은 실시간 스트리밍을 보다가 이런 경험 해보신 적 있나요? LCK를 유튜브 라이브로 보는데 채팅창에 "GG"가 도배되고 나서야 화면에서 넥서 스가 터지는 장면을 보게 되는 경우 또는 월드컵을 보는데, 케이블TV 보는 친구가 카톡으로 "골!!!"이라고 먼저 알려주는 상황 Roger Pantos(Apple)가 WWDC201…
이전 포스팅에서도 언급한 적이 있었지만, 빌드의 성능은 팀/조직의 개발 생산성에 크게 영향을 미칩니다. 하루에 여러 번 실행되는 빌드에서 작은 지연도 누적이 된다면, 나중에 보았을 때 결론적으로는 큰 시간적 손실로 이어집니다. 이는 CI/CD 환경에서도 마찬가지입니다. 따라서, 빌드 속도 개선을 위해 팀/조직 차원에서 시간을 투자하는 것은 분명히 가치가 …
이직을 결심한 이유 전 직장의 동료분들은 대체로 멋지고 나이스한 분들이셨습니다. 업무적으로 배울점도 많고, 함께 스터디도 하면서 기술적인 성장을 꿈꾸었습니다. 사무실이 삼성역 동일타워, MDM타워(야놀자 본사)에 있었을 때에는 근처 탄천에서 함께 러닝을 같이 하기도 했고, 퇴근 후 동료분들과 함께 PC방에 가서 롤 을 하기도 했고, 볼링을 치러 가기도 했고…
개발자로써 회사에서 일하다 보면 다양한 상황들을 마주하게 됩니다. 커리어 전환, 팀 간 협업 문제, 코드 리뷰 문화, 작업 소요 시간 추정... 이런 상황들 하나하나에서 정답이 없어 고민하곤 했는데, 이번에 읽게 된 『The Software Engineer's Guidebook』 (게르겔리 오로스 저)는 말 그대로 소프트웨어 엔지니어의 가이드북 그 자체였…
2022년 7월, Google은 안드로이드에 중요한 보안 업데이트를 발표했습니다. 바로 DNS-over-HTTP/3(DoH3) 지원인데요. 이는 사용자의 개인정보를 보호하면서 동시에 네트워크 성능을 개선하는 혁신적인 기술입니다. DNS 개인정보 문제 네트워크 연결의 대부분은 으로 시작됩니다. 우리가 웹사이트에 접속할 때 HTTPS를 통해 콘텐츠를 안전하게…