무한 우주에 순간의 빛일지라도

TL;DR: 개발 3년차, 코딩이 재미없어진 순간 부트캠프 가장 좋아하는 말로 다른 부트캠프를 수강했음에도 루퍼스를 재수강한 이유 3년차, 곧 4년차 개발자의 길목에 서 있는 저는 깊은 고민에 빠져 있었습니다. 2년 8개월 동안 두 번의 이직을 거치며 앞만 보고 달

2025년 9월 19일
·
0개의 댓글
·

랭킹 시스템 설계...ing

Redis와 Kafka를 활용한 랭킹 시스템 설계 과정 아키텍처 설계 1. 랭킹용 데이터 집계 배치 처리 네트워크 오버헤드 감소 Redis 처리량 증대 컨슈머 처리 효율성 향상 2. TTL 전략으로 메모리 관리 랭킹 데이터는 시간이 지나면 relevance가

2025년 9월 12일
·
0개의 댓글
·

Kafka 이벤트 파이프라인 구축기: 현실적인 선택과 타협

UPSERT 전략:현재 상품 총 카운트에 캐시가 존재하므로, 캐시 만료를 적용하기 어려웠다.status를 추가하여 관리할 경우에 캐시 만료 전략을 활용할 수 있을 것 같다.

2025년 9월 5일
·
0개의 댓글
·

파사드에 이벤트키토김밥 말아주기

주문-결제 시스템에서 강한 결합을 이벤트로 풀어낸 이야기 문제 상황: 파사드의 뚱뚱함 현재 이커머스 프로젝트에 다양한 기능이 추가되고, 외부 PG 연동도 하면서 주문과 결제의 트랜잭션은 분리되었지만 여전히 주문 파사드에서는 다양한 연관 도메인들의 작업이 하나의 트랜잭

2025년 8월 29일
·
0개의 댓글
·

뿌리 깊은 시스템은 외부바람에 흔들리지 않는다

분산 환경에도 흔들리지 않는 주문/결제 시스템 설계하기 > 외부 시스템 장애에도 끄떡없는 주문/결제 시스템을 만드는 방법 현대사회의 복잡한 비즈니스로 인해 우리의 시스템이 더 이상 단독으로 움직이지 못하고, PG라는 개념이 등장하면서 개발자의 고뇌도 깊어진 것 같다

2025년 8월 22일
·
0개의 댓글
·

상품 조회 쿼리 성능 개선 및 지표 분석

분석 환경: MySQL 8.4.6 (Docker) 데이터 규모: product 1,010,200건, product_status 1,010,200건 테스트 방법: EXPLAIN ANALYZE를 통한 실제 실행 계획 및 성능 측정최종 인덱스 전략: 모든 컬럼 ASC 방

2025년 8월 15일
·
0개의 댓글
·
post-thumbnail

복잡한 시스템을 클린하게 구현하는 법

TL;DR: 업무와 과제 속 복잡성과 싸우며, 유비쿼터스 언어와 도메인 주도 설계 원칙을 통해 문제를 해결해나간 과정을 공유요즘은 회사에서는 프론트 라이브러리 설계를 하고, 퇴근 후엔 백엔드 과제를 하고 있다보니 머리가 밤낮으로 쪼개지는 중인데, 이 글은 그 쪼개짐의

2025년 7월 24일
·
0개의 댓글
·

테스트 코드는 설계 도구다 - TDD로 깨달은 진짜 개발

이론적으로는 테스트 코드가 중요하다고 배운다. 하지만 실무에서는 '일단 구현부터'가 현실이다. 테스트코드는 정말 효율적일까? 정말 필요한 테스트코드란 뭘까?

2025년 7월 17일
·
0개의 댓글
·

[Media/Basics] MSE에선 재생되는데, 왜 파일 저장은 실패할까?

조각난 데이터는 재생되지만, 조각을 합친 파일은 재생이 안된다?스트리밍 환경에서는 오디오 데이터를 작은 조각(Segment) 형태로 나눠 전송하고 브라우저에서는 이를 실시간으로 받아 재생한다.이때 많이 사용되는 형식 중 하나가 fMP4 (Fragmented MP4) 이

2025년 7월 13일
·
0개의 댓글
·

[Media/Basics] 코덱과 컨테이너

오디오나 비디오 데이터를 압축(encoding)하거나 해제(decoding)하는 기술 또는 소프트웨어파일의 용량, 음질/화질, 처리 속도, 라이선스 등에서 각각 특성이 다름여러 미디어 스트림(오디오, 비디오, 자막 등)을 하나의 파일로 묶는 "그릇" 역할내부에 어떤 코

2025년 7월 9일
·
0개의 댓글
·
post-thumbnail

[Media/Streaming] 실시간 스트리밍에서 락 없이 Race Condition을 다루는 법

웹서비스를 하다 보면 race condition을 피하기 어려운 경우가 많다. 이를 해결하기 위해 공용 자원에 대한 접근을 제한하거나 락(lock)을 걸기도 하지만 이 방식은 서버 성능에 큰 영향을 준다. 그래서 많은 서비스들이 캐시나 메시지 큐 등 다양한 설계를 도입

2025년 7월 9일
·
0개의 댓글
·
post-thumbnail

[Media/Playback] Video.js seek 타이밍 이슈 디버깅

video.js + HLS + MSE의 미묘한 타이밍 충돌 오류 디버깅 미디어를 스트리밍한다는 것 웹에서 영상을 재생하는 일은 이제 더 이상 복잡하지 않다. ` 태그에 src`만 설정하면, 브라우저가 알아서 영상을 불러오고 재생할 수 있다. 대부분의 경우 이렇게

2025년 6월 28일
·
0개의 댓글
·

OSI 7계층과 프로토콜(Protocol)

통신의 역할을 7개 계층으로 나눈다! 라는 말 자체는 많이들 들어보셨을 것 같습니다. 뭔 통신하나를 하는데 이렇게 많은 과정과 약속이 필요하다니... 대체 OSI계층이 뭐고 이게 왜 필요한걸까요? 뭔지 알아야 응용이 될 거 아닌가요.

2024년 7월 19일
·
0개의 댓글
·
post-thumbnail

[JDK/21] EnableDynamicAgentLoading

JDK17로 작업했던 코드를 JDK21로 실행하니 발생하는 경고..https://belief-driven-design.com/looking-at-java-21-feature-deprecations-03fff/해당 링크의 The Problem With Dynam

2024년 7월 3일
·
0개의 댓글
·