컨퍼런스&기술블로그
글또
-
Sharding 만들어보기
들어가며 안녕하세요.최근 Pinterest의 샤딩 관련 글을 읽고 흥미로운 점들이 많아 이를 계기로 샤딩에 대해 더 공부하게 되었습니다.이 과정에서 우아한형제들의 기술 블로그 글도 접하게 되었고, 글에 소개된 코드를 바탕으로 직접 따라 만들어 보았습니다.이 글은 샤딩에 대한 소개, 우아한형제들의 글 분석, 그리고 Pinterest의 글 분석 순으로 구성되어 있습니다. 샤딩(Sharding) 샤딩이란 무엇이며, 언제 필요할까? 서비스를 장기간 운영하거나 폭발적인 성장을 경험하면 데이터베이스(DB)에 저장된 데이터의 양이 급격히 증가합니다. 데이터가 많아지면 DB의 쓰기, 읽기 속도가 느려지고, 저장 용량 부족과 네트워크 병목 같은 문제가 발생할 수 있습니다. 이를 해결하기 위해 선택할 수 있는 확장 ..
-
실시간 리더보드 만들어보기
이 글은 아래의 글을 바탕으로 작성하였습니다. Design a Real-Time Leaderboard system for millions of usersUnpacking Challenges, Assumptions, and the Scope of Real-Time Leaderboard Designmedium.com 들어가며 안녕하세요. 오늘은 Medium 글에서 흥미로운 주제를 발견하여 직접 따라 해보고, 이에 대해소개하고자 합니다. 이번에 다룰 주제는 게임이나 검색어 분야에서 흔히 사용되는 '랭킹 시스템 구축'입니다.게임 유저의 점수를 실시간으로 수집하여 랭킹을 보여주는 시스템을 설계하고 이를 유저에게 보여줘야합니다. 이 과정을 통해 랭킹 시스템 설계의 핵심 개념과 실제 구현 방법에 대해 설명하겠습니..
-
글또10기 삶의 지도
삶의 지도라는 것은 제가 붙인 이름이며, 자신이 어떤 사람이고 어떤 성격을 가지고 있고, 어떤 사건으로 지금의 내가 되었는가에 대해 작성한 내용입니다. - 글또 10기 모집 내용 중 안녕하세요. 이번 글또 10기를 시작하며 글을 남깁니다. 어느덧 네 번째인 글또 10기, 7, 8, 9기를 지나 시간이 이렇게 흘렀습니다. 2022년 처음 참여했는데, 벌써 2025년이 다가오고 있다니, 시간이 참 빠르게 느껴집니다. 삶의 지도글또에 처음 지원할 때 작성하게 되는 주제 중 하나가 ‘삶의 지도’라고 알고 있습니다. 저는 이전 기수부터 참여했기에 이 주제로 글을 써본 적이 없지만, 이번 기회에 저만의 삶의 지도를 그려보려 합니다. 글의 형식이 정해져 있다고 생각하지 않기에, 자유롭게 제 이야기, 생각을 풀어보겠습..
-
HikariCP와 Slow Query로 인한 Commit 성공과 Rollback 실패
0. 들어가며 안녕하세요.이번 글에서는 회사에서 겪었던 DB 관련 이슈에 대해 이야기해보려 합니다.문제는 Spring Boot, HikariCP, MariaDB 환경에서 발생했으며, HikariCP와 Slow Query로 인해 트랜잭션 실패가 발생한 사례를 다룹니다. 원인을 분석하고, 이에 대한 해결책을 함께 고민해보겠습니다.중간중간에 부가설명은 접은글(더보기)로 작성했습니다. 문제 상황트랜잭션 사후 처리대응마무리 1. 문제 상황저희 서비스는 MSA 구조로 되어있으며, 각 서비스는 동기와 비동기 통신으로 소통합니다. 이번 문제는 A 서비스와 B 서비스 간 동기 통신 중 발생했습니다. A 서비스는 B 서비스에 업데이트를 요청하고, B 서비스에서 성공적으로 업데이트가 반영되면 성공을 반환합니다.A 서비스는 ..
-
Lock에 대해 알아보기: Gap Lock
0. 들어가며 안녕하세요. 오늘은 Gap Lock에 대해 알아보려고 합니다.Gap Lock에 관심을 갖게 된 이유는 재고 관련 Locking을 공부하다가 궁금한 점이 생겼기 때문입니다. 재고 정합성을 위해 SELECT FOR UPDATE를 사용하고 있었는데, 이에 대해 참고 자료를 살펴보던 중 SELECT FOR UPDATE를 사용할 때 발생할 수 있는 Deadlock에 관한 설명을 보았습니다.이 Deadlock은 단순한 자원 경합에 의한 것이 아니라, MySQL의 고유한 Lock 특성으로 인해 발생하는 것이었습니다. 그래서 이 문제의 원인인 Gap Lock에 대해 더 깊이 알아보고 공부해 보려고 합니다. Gap Lock 이란 무엇인가?Gap Lock 의 필요이유는 무엇인가?PK, UK예제당근 글 분석 ..
최신 글
-
Sharding 만들어보기글또 2024.11.24 17:11
들어가며 안녕하세요.최근 Pinterest의 샤딩 관련 글을 읽고 흥미로운 점들이 많아 이를 계기로 샤딩에 대해 더 공부하게 되었습니다.이 과정에서 우아한형제들의 기술 블로그 글도 접하게 되었고, 글에 소개된 코드를 바탕으로 직접 따라 만들어 보았습니다.이 글은 샤딩에 대한 소개, 우아한형제들의 글 분석, 그리고 Pinterest의 글 분석 순으로 구성되어 있습니다. 샤딩(Sharding) 샤딩이란 무엇이며, 언제 필요할까? 서비스를 장기간 운영하거나 폭발적인 성장을 경험하면 데이터베이스(DB)에 저장된 데이터의 양이 급격히 증가합니다. 데이터가 많아지면 DB의 쓰기, 읽기 속도가 느려지고, 저장 용량 부족과 네트워크 병목 같은 문제가 발생할 수 있습니다. 이를 해결하기 위해 선택할 수 있는 확장 ..
-
2024.11.17 dbTIL 2024.11.17 22:08
https://velog.io/@yyong3519/RDS-Slow-%EC%BF%BC%EB%A6%AC-Slack%EC%9C%BC%EB%A1%9C-%EC%95%8C%EB%9E%8C-%EB%B3%B4%EB%82%B4%EA%B8%B0 Mysql Slow 쿼리 Slack으로 알람 보내기출처 글 작성 계기 1. Slow Log 남기기 2. Lambda 3. CloudWatch & Lambda 연동velog.io https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=225714 WWW.PHPSCHOOL.COM개발자 커뮤니티 1위 PHPSCHOOL.COM 입니다.www.phpschool.com https://jungseob86.tistory...
-
2024.11.16 pinterest shardingTIL 2024.11.17 21:17
https://medium.com/pinterest-engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f Sharding Pinterest: How we scaled our MySQL fleetThis is a technical dive into how we split our data across many MySQL servers. We finished launching this sharding approach in early 2012, and it’s still the system we use today to store our core…medium.com 이전에 pinterest sharding관련 글도 읽었었는데요. 20..
-
실시간 리더보드 만들어보기글또 2024.11.09 21:59
이 글은 아래의 글을 바탕으로 작성하였습니다. Design a Real-Time Leaderboard system for millions of usersUnpacking Challenges, Assumptions, and the Scope of Real-Time Leaderboard Designmedium.com 들어가며 안녕하세요. 오늘은 Medium 글에서 흥미로운 주제를 발견하여 직접 따라 해보고, 이에 대해소개하고자 합니다. 이번에 다룰 주제는 게임이나 검색어 분야에서 흔히 사용되는 '랭킹 시스템 구축'입니다.게임 유저의 점수를 실시간으로 수집하여 랭킹을 보여주는 시스템을 설계하고 이를 유저에게 보여줘야합니다. 이 과정을 통해 랭킹 시스템 설계의 핵심 개념과 실제 구현 방법에 대해 설명하겠습니..
-
2024.11.08 Meta cache, AOPTIL 2024.11.08 22:42
https://moonsub-kim.github.io/docs/meta/cache-made-consistent-metas-cache-invalidation-solution/ Cache made consistent: Meta’s cache invalidation solutionMeta의 Cache made consistent: Meta’s cache invalidation solution 을 번역한 글 입니다.moonsub-kim.github.iohttps://engineering.fb.com/2022/06/08/core-infra/cache-made-consistent/ Cache made consistentCaches help reduce latency, scale read-heavy workloads..