[Loop:PAK] 9주차 WIL

2025. 12. 21. 22:33·외부활동/루퍼스 2기

🧠 이번 주에 새로 배운 것

  • 대용량 트래픽 환경일 경우 랭킹 집계와 계산을 분리해서 반영하는 테크닉을 알게 되었습니다. 초 실시간은 보장되지 않지만, 쓰기 부하를 완화하기 위한 결과임을 알았습니다.
  • 텀블링 윈도우, 슬라이딩 윈도우 개념을 알게되었고, 슬라디이 윈도우 기법으로 랭킹을 구현하는 방법을 알게 되었습니다. 콜드 스타트가 없는 장점이 있지만 구현이 복잡한 단점이 있습니다.

 

💭 이런 고민이 있었어요

  • 조회, 주문, 좋아요 이벤트의 랭킹 집계시 랭킹 일자를 어떤 시간으로 반영해야할지 고민이였습니다. 멘토님이 선호한 시간은 client가 보내준 시간 이였습니다.
  • score가 동일할 경우 일관된 정렬을 보장하기 위해 tie-breaker를 적용하였습니다. productId 저장시 고정된 자리수를 0으로 채워(zero-padding) 내림차순으로 2차 정렬을 하였습니다.

 

💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트

  • 실시간 랭킹 구현시 트래픽 환경과 요구사항 복잡도에 따라 실시간 랭킹 구현을 적절히 구현할 수 있는 안목이 생겼습니다.
  • zset의 활용법을 익혔습니다. 실시간 랭킹이 아니여도 zset을 적용하기 용이한 요구사항이 생긴다면 큰 병목없이 구현할 자신감이 생겼습니다.

 

🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것

  • 코드 구조와 책임이 아쉬운 면이 있습니다. 서비스간의 책임을 재할당하여 의존성 방향을 적절하게 수정할 예정입니다.
저작자표시 (새창열림)

'외부활동 > 루퍼스 2기' 카테고리의 다른 글

[루퍼스/루프백 2기] 코더에서 엔지니어로: 이커머스로 돌아본 10주간의 성장 기록  (0) 2025.12.29
[Loop:PAK] 10주차 WIL  (0) 2025.12.29
[루퍼스/루프백 2기] 이커머스 실시간 랭킹 구현기 - Redis ZSET부터 윈도우 설계 관점에서 콜드 스타트 해결까지  (0) 2025.12.21
[Loop:PAK] 8주차 WIL  (0) 2025.12.16
[루퍼스/루프백 2기] Kafka At-Least-Once 전송과 Consumer 멱등성 구현기  (0) 2025.12.16
'외부활동/루퍼스 2기' 카테고리의 다른 글
  • [루퍼스/루프백 2기] 코더에서 엔지니어로: 이커머스로 돌아본 10주간의 성장 기록
  • [Loop:PAK] 10주차 WIL
  • [루퍼스/루프백 2기] 이커머스 실시간 랭킹 구현기 - Redis ZSET부터 윈도우 설계 관점에서 콜드 스타트 해결까지
  • [Loop:PAK] 8주차 WIL
소프
소프
  • 소프
    기회는 찬스
    소프
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Language (20)
        • Java (19)
        • Design Pattern (1)
      • Tech (27)
        • Spring (19)
        • JPA (3)
        • QueryDSL (1)
        • Gradle (4)
      • 개발 생각 (1)
      • IT Book (0)
        • 자바_스프링 개발자를 위한 실용주의 프로그래밍 (0)
      • Database (4)
        • Mysql (4)
        • Redis (0)
      • 네트워크 (1)
      • 운영체제 (2)
      • IDE (12)
        • Intellij (9)
        • vscode (2)
        • datagrip (1)
      • 인프라 (11)
        • Docker (2)
        • Jenkins (7)
        • Github Actions (1)
        • GCP (1)
      • 형상관리 (2)
        • gitlab (2)
        • git (0)
      • 외부활동 (44)
        • CS 면접 끝장내기 - 데이터베이스 1기 (5)
        • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
        • CS 면접 끝장내기 - 자바 2기 (0)
        • TDD, 클린 코드 with Java 17기 (7)
        • ATDD, 클린 코드 with Spring 8기 (6)
        • 루퍼스 2기 (21)
      • 프로젝트 (0)
      • 회고 (6)
      • 기타 (1)
        • 제미니의 개발 실무 (0)
  • 블로그 메뉴

    • 홈
    • Github
    • LinkedIn
    • 방명록
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
소프
[Loop:PAK] 9주차 WIL
상단으로

티스토리툴바