Tsunayoshi Tsuna Sawada - Katekyo Hitman Reborn 3 '분류 전체보기' 카테고리의 글 목록 — 개발하는 핸니
[Spring] Redis Stream을 이용한 티켓 이벤트 성능 이슈를 해결해보자.
·
카테고리 없음
들어가기 앞서 . . .Tickle 서비스의 티켓 이벤트 응모 시스템은 수천 명의 동시 사용자가 참여할 수 있도록 설계되어야했다.응모 과정에서 사용자 포인트 차감, 좌석 상태 변경, 목표 금액 달성 여부 판단 등 여러 임계영역 연산이 필요했고,이를 Redis Stream을 활용해 처리하고 있었다. 하지만, 초기 부하 테스트 결과에서 1000 VU 이상 시 응답 지연이 급증하며 병목이 발생했고,이 문제를 해결하기 위해 애플리케이션 레이어(Tomcat, 스레드풀, 커넥션 풀 등)부터 Redis 컨슈머 구조까지 전방위적인 튜닝 및 구조 개선 작업을 진행하게 되었다. 제목간단하게 어떤 포스팅이고 어떤 주제를 다룰건지 작성하자 1차 테스트1차 테스트 지표1차적으로 부하테스트를 진행하였을 때 아래와같은 성능 지표가..
[자격증] 2025년 2회차 정보처리기사 실기 합격 후기
·
대외활동
들어가기 앞서 . . .개발자로 취업하기 위해서는 정보처리기사 자격증 취득은 필수라고 생각했고,CS공부도 같이 할 겸 가볍게 정보처리기사 공부를 시작하게 되었다. 막상 공부해보니 생각보다 범위도 넓고 개념도 탄탄하게 잡아야 해서결국엔 한 번 떨어지고, 두 번째 도전에서야 붙을 수 있었다. 이 포스팅은 처음 준비하는 사람에게 도움이 될 수 있도록실제 시험에서 느낀 점, 그리고 단원별 전략까지 정리해본 후기다!2025년 1회차 불합격2025년 초, 한 달 정도 공부하고 정보처리기사 1회차 시험을 봤는데 결과는 55점 불합격이었다.그 해 합격률이 15%밖에 안 되었고, 개정 이후 첫 시험을 제외하면 가장 낮은 합격률을 기록한 회차였다. 당시 나는 2024년판 수제비 교재로 공부했지만,2025년 1회차의 코딩 ..
[자격증] 5일전사 ADsP 취득
·
대외활동
들어가기 앞서 . . .2025년 4월 SQLD에 이어서 6월에 ADsP 자격증을 취득했다.SQLD와 유사한 시험으로 잘 알려져 있어 도전하게 되었고, 5일이라는 짧은 준비 기간동안 공부를 했다. 우선 필자는 전공생이기도하고 SQLD 자격증을 이미 보유하고 있었기 때문에, 어느정도 데이터와 데이터베이스에 대한 기본 지식을 갖춘 상태에서 ADsP를 준비했다. 따라서 이 후기는 전공자 또는 SQLD를 먼저 공부한 분들에게 더 도움이 될 수 있을 것 같다!ADsP는 어떻게 준비하면 좋을까5일 만에 자격증을 취득했다!공부 기간이 길지 않았기 때문에 이론을 처음부터 끝까지 모두 암기하기보다는, 기출문제 중심의 단기 집중 전략을 사용했다..우선 이틀동안 정리노트로 달달 암기하고, 외웠던 이론이 기억이 안나도 나머지..
[ Spring ] 비관적 락 성능 개선을 해보자
·
Spring
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. 비관적 락 성능 개선을 해보자 | Notion들어가기 앞서 . . .hail-buttercup-c86.notion.site 들어가기 앞서 . . .동시성 보장을 위해 비관적 락을 적용했지만, 부하 테스트에서 TPS가 1.3으로 너무 낮게 측정되는 문제를 확인했다.락 자체를 포기하지 않은 상태에서(=비관적 락 유지) 어디에서 병목이 생기고 무엇을 줄이면 성능을 끌어올릴 수 있는지 검증·개선해 보고자 이 글을 정리했다. 비관적 락 적용 후 성능부하 테스트를 진행하며 성능이 너무 느리게 나와 가장 먼저 드는 의문이 DB가 잘못설계되었나?라는 생각이 들었다.쿼리를 개선할 수 있는 부분이 있지 않나해서 요청할 때 실행되는 SQL..
[ 트러블슈팅 ] HikariPool-1 - Connection is not available, request timed out after...
·
Spring/Error
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. https://hail-buttercup-c86.notion.site/DB-HikariPool-1-Connection-is-not-available-request-timed-out-after-266a011d2d8380ac81b5ec3b9d4d5ed5?pvs=74 [DB] HikariPool-1 - Connection is not available, request timed out after… | Notion들어가기 앞서..hail-buttercup-c86.notion.site 들어가기 앞서..📄 티켓 이벤트 성능 테스트 과정에서 발생한 트러블 슈팅입니다.문제 상황o.h.engine.jdbc.spi.SqlExceptionH..
[ Spring ] Redis의 분산 락을 적용하고 Pub/Sub로 동시성 문제를 해결하자.
·
Spring
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. Redis의 분산 락을 적용하고 Pub/Sub로 동시성 문제를 해결하자. | Notion들어가기앞서…hail-buttercup-c86.notion.site 들어가기 앞서 . . .프로젝트에서 동시성 문제를 해결하기 위해 락에 대해서 공부하고, 또 성능 개선을 위해 고민까지 해보았다.하지만 결국 락을 걸고 동시성을 해결한다는 것은, 하나의 요청을 처리하는 동안 모든 요청이 대기를 하기때문에 성능이 눈에띄게 좋아지는 것은 힘들 것 같다는 생각이 들었다.성능을 개선하기위해 구글링을 하니 ‘분산 락’이라는 것에 대한 언급이 많았다. 분산 락은 무엇일까? 한 번 알아보자. 분산 락분산락은 분산 시스템에서 여러 노드나 프로세스가 동..
[ 트러블슈팅 ]데이터 정합성 이슈: 커밋 시점으로 인해 발생한 동시성 문제
·
Spring/Error
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. https://hail-buttercup-c86.notion.site/269a011d2d8380108873fb5bc477ec7f 분산 락 이후의 포인트 누적 동시성 문제 | Notion들어가기 앞서..hail-buttercup-c86.notion.site 들어가기 앞서.. 📄 동시성 성능 개선 과정에서 발생한 트러블 슈팅입니다. 분명 lock을 통해서 동시성을 보장해주었다고 생각했는데, 이벤트 누적 금액이 정상적으로 반영되지 않는 결과가 있었다. 왜 동시성이 제대로 보장되지 않았을까? 오류를 해결해보자.문제 상황필자의 서비스는 이벤트에 응모할 시, 사용자의 포인트를 차감하여 해당 포인트만큼 이벤트에 누적하게 된다.하지만 ..
[ Spring ] 동시성을 잠금으로 안전하게 처리해보자
·
Spring
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. 동시성을 잠금으로 안전하게 처리해보자 | Notion들어가기앞서…hail-buttercup-c86.notion.site 들어가기앞서…이제 본격적으로 공부한 내용을 프로젝트에 적용해보고자한다.필자가 맡고있는 이벤트 기능의 주요 서비스는 여러명의 사용자가 포인트를 지불하고 이벤트에 참여하면 이벤트에 누적 금액이 쌓이게되고, 목표 금액에 달성한 사용자만이 티켓을 얻게되는 이벤트이다.때문에 동시에 여러명이 요청할 가능성이 있는 이벤트 응모 요청은 동시성 처리가 필수이다. 실습 전 읽어보면 도움되는 문서화 노트 [ CS ] LockNotion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. Lock | Not..