일기 · 199

  1. 2026
  2. 9월
  3. 09.20 듀오링고리타분위기린
  4. 09.19 반값 설빙
  5. 09.18 우주 전쟁
  6. 4월
  7. 04.19 REBEL HEART
  8. 1월
  9. 01.20 e ∈ F
  10. 01.20 기술개발 진행상황 공유 1
  11. 01.20 기술개발 진행상황 공유 2
  12. 01.20 기술개발 진행상황 공유 3
  13. 01.15 항저우
  14. 2025
  15. 10월
  16. 10.24 어제까지의 이야기
  17. 10.09 돈 벌기
  18. 9월
  19. 09.02 PERFECT BLUE
  20. 8월
  21. 08.31 코코아분말 0.9%
  22. 08.30 WHAT THE
  23. 08.29 문을 닫고 들어오세요
  24. 08.28 하우스도르프 공간
  25. 08.27 All Time Low
  26. 08.26 세상의 끝을 겨눈대도
  27. 08.25 앉은 자리가 꽃자리
  28. 08.24 6과 7 사이 자연수
  29. 08.23 아직 아무 문제도 발견되지 않았습니다
  30. 08.22 Adventure
  31. 08.21 Adobe Creek
  32. 08.20 나의 무가지보(無價之寶)
  33. 08.19 T. Rex
  34. 08.18 누구를 위하여 종은 울리나
  35. 08.17 Sunday Morning
  36. 08.16 일상의 안녕
  37. 08.15 친애하는 우리의 결함에게
  38. 08.14 이것이 있으므로 저것이 있다
  39. 08.13 나는 나의 길을 간다
  40. 08.12 Vanilla Latte
  41. 08.11 그것은 하나의 가까움
  42. 08.10 정복 불허의 공간에
  43. 08.09 쉼 없이 수선하기
  44. 08.08 나는 전설이다
  45. 08.07 철판치즈버거
  46. 08.06 난 포기에 소질 있음
  47. 08.05 스피또런
  48. 08.04 하룻밤 만에
  49. 08.03 세상에 딱 하나뿐인
  50. 08.02 게으름뱅이를 위한 변명
  51. 08.01 북극 백화점
  52. 7월
  53. 07.31 사람은 무엇으로 사는가?
  54. 07.30 KRAFTON Yeoksam Office
  55. 07.29 Slowly flowing day
  56. 07.28 What's this?
  57. 07.28 Architectural Improvements 4
  58. 07.27 Lime Light
  59. 07.26 우리가 기다린 미래
  60. 07.25 Final approach
  61. 07.25 Poster Design Note : Form and Flow
  62. 07.25 Poster Design Note : How We Made It
  63. 07.24 폭풍의 눈
  64. 07.23 IYKYK
  65. 07.22 순살치킨 -> 치킨너겟
  66. 07.21 TRAIN - TRAIN
  67. 07.21 Architectural Improvements 3
  68. 07.21 Logo Design Note : The Logic of Flow
  69. 07.20 어떤 통찰도 지름길로는 얻을 수 없다
  70. 07.20 DeepDive : Many Over Mighty
  71. 07.19 시간이 느리게 가는 건
  72. 07.19 Architectural Improvements 2
  73. 07.19 DeepDive : GC-Triggered Stop-the-World
  74. 07.18 EVEREST
  75. 07.18 Architectural Improvements 1
  76. 07.18 PhantomFlow : High-performance HTTP request simulator
  77. 07.18 Introduction to Project KlickLab
  78. 07.18 What is Clickstream data?
  79. 07.17 깊은 사고는 더 이상 니즈가 없다
  80. 07.16 이기적인 토대 위
  81. 07.15 무엇이든, 언제가는
  82. 07.14 경험을 압축하는 알고리즘은 존재하지 않는다
  83. 07.13 무한한 가능성을 가질 것
  84. 07.12 화려한 거짓을 향해
  85. 07.11 Kentucky Fried Chicken
  86. 07.10 Tropical Blue
  87. 07.09 처음처럼 내 딛는
  88. 07.08 어제와 다른 하늘의 색
  89. 07.07 누군가의 달이었기를
  90. 07.06 아직 뜯지 않은 마음
  91. 07.05 황금의 오솔길
  92. 07.04 우리는 오가는 바람
  93. 07.03 Nic dwa razy
  94. 07.02 Never basic
  95. 07.01 입꼬리올림근
  96. 6월
  97. 06.30 그럼에도 불구하고
  98. 06.29 과잉포장된 자존심
  99. 06.28 E3i3
  100. 06.27 118
  101. 06.26 무한 우주에 순간의 빛일지라도
  102. 06.25 RUSH
  103. 06.24 그래, 우리는
  104. 06.23 The wind blowing low
  105. 06.22 피어나는 마음의 꽃
  106. 06.21 하나는 죽고, 하나는 살았다
  107. 06.20 초속일초
  108. 06.19 씨앗이 가장 고귀한 이유는
  109. 06.18 Evening Primrose
  110. 06.17 마음이 휑뎅그렁할 때
  111. 06.16 하나
  112. 06.15 강철무지개
  113. 06.14 유람
  114. 06.13 13일의 금요일
  115. 06.12 백만 스물하나, 백만 스물둘
  116. 06.11 경안천
  117. 06.10 달이 아름답네요
  118. 06.09 Tampermonkey
  119. 06.08 미르
  120. 06.07 나 평생 꿈만을
  121. 06.06 아르기닌
  122. 06.05 변속주
  123. 06.04 Global Running Day
  124. 06.03 가장 밝은 별
  125. 06.02 천천히
  126. 06.01 circular metal ring
  127. 5월
  128. 05.31 담장과 쪽문
  129. 05.30 투표런
  130. 05.29 출발선
  131. 05.28 Post Traumatic Growth
  132. 05.27 SET
  133. 05.26 READY
  134. 05.25 청복
  135. 05.24 열복
  136. 05.23 강제 푸시 반성합니다
  137. 05.22 유로파
  138. 05.21 떠오름과 저묾
  139. 05.20 Family Friend Fools
  140. 05.19 Time machine
  141. 05.18 맑은 일요일
  142. 05.17 흐린 토요일
  143. 05.16 PTG
  144. 05.15 셋이 만드는 하나
  145. 05.14 Lotte+Cafeteria
  146. 05.13 오십삼
  147. 05.12 일장춘몽
  148. 05.11 𝑬𝒗𝒆𝒓𝒍𝒂𝒏𝒅, 𝑬𝒗𝒆𝒓 𝑴𝒊𝒏𝒅
  149. 05.10 五月雨よ
  150. 05.09 Your Journey Starts Here
  151. 05.08 「권의 속도」
  152. 05.07 Quiet Air
  153. 05.06 놀자판 하루
  154. 05.05 뭔데이
  155. 05.04 After School
  156. 05.03 나침반이 가리킨 곳
  157. 05.02 짧은 하루
  158. 05.01 예고된 악재는 악재가 아니다
  159. 4월
  160. 04.30 Can More
  161. 04.29 초급반
  162. 04.28 감사합니다. 죄송합니다.
  163. 04.27 맥도날드 원정
  164. 04.26 무용(無用)의 쓸모
  165. 04.25 Sunny Day
  166. 04.24 벚나무 아래에서
  167. 04.23 언제나 이타카를 마음에 두라
  168. 04.22 D-100
  169. 04.21 수상한 미용실
  170. 04.20 손으로 컴퓨터를 마주하다
  171. 04.19 비가 오면 빨래를 하자
  172. 04.18 반차
  173. 04.17 발표, 청소, 러닝
  174. 04.16 반티 발주
  175. 04.15 첫 달리기
  176. 04.14 선택과 해석
  177. 04.13 Home Sweet Home
  178. 04.12 人生
  179. 04.11 반티 디자인 공모 & 제출
  180. 04.10 알고리즘의 끝, C언어의 시작
  181. 04.09 하와이안 스테이크
  182. 04.08 Long Chat
  183. 04.07 Es irrt der Mensch, solang' er strebt.
  184. 04.06 마무리
  185. 04.05 움직이는 물체의 시간은 느리게 간다
  186. 04.04 하나의 칼날
  187. 04.03 3x7=21
  188. 04.02 퀴즈 다음날, 시험 전날
  189. 04.01 April Fools' Day
  190. 3월
  191. 03.31 1년의 90번째 날
  192. 03.30 日曜日은 칠요일 중 첫째 날 이다
  193. 03.29 토요일은 주말이 아니다
  194. 03.28 그래프와 치킨버거
  195. 03.27 3주차의 시작
  196. 03.26 기초 다지기
  197. 03.25 기초 다지기 & 정리해야 할 CS 개념들
  198. 03.24 0.44%
  199. 03.23 본가 다녀온 날
  200. 03.22 문제 풀이에 집중한 하루
  201. 03.21 동료학습
  202. 03.20 첫번째 시험
  203. 03.19 먹다가 끝난 하루
  204. 03.18 눈이 쌓이면 버그도 쌓인다
  205. 03.17 깃허브, 팀별 면담, 키워드 공부
  206. 03.16 외출과 배달
  207. 03.15 첫 주말
  208. 03.14 컴퓨팅 사고로의 전환
  209. 03.13 cookie4u.store + 1주차 발제 + 회식
  210. 03.12 디지털 포춘쿠키
  211. 03.11 정글 입성
  212. 03.10 입소 당일

Introduction to Project KlickLab

프로젝트 개요

클릭랩(KlickLab)은 웹사이트에서 발생하는 사용자 행동 데이터를
실시간으로 수집하고 분석하는 고성능 웹 애널리틱스 플랫폼이다.

클릭랩은 웹사이트 방문자의 클릭스트림(Clickstream)을
빠르고 정확하게 기록하고 분석하여,
기업이 사용자 행동에 기반한
데이터 중심의 의사결정을 할 수 있도록 지원한다.

기능적으로 구글 애널리틱스(Google Analytics)와 유사한 역할을 수행한다.


프로젝트 목적

클릭랩은 웹 애널리틱스 환경에서 요구되는 성능과 유연성 문제를 다음과 같이 해결하고자 한다.

  • 초고속 데이터 처리: 초당 수만~수십만 건 이상의 사용자 이벤트를 안정적으로 처리
  • 유연한 분석 쿼리: 다양한 조건과 관점에서 데이터를 실시간으로 분석하고 집계할 수 있는 고성능 쿼리 지원

핵심 기능

실시간 사용자 데이터 수집

  • 사용자의 클릭, 페이지 뷰, 스크롤 등의 행동 이벤트를 실시간으로 수집
  • 데이터 수집부터 분석까지의 지연 시간 최소화(10분)

쿼리 및 분석

  • 사용자 행동 데이터를 다양한 조건으로 고속 분석할 수 있는 쿼리 기능 제공

효율적인 저장소

  • 데이터 저장 및 조회 속도를 극대화하기 위한 컬럼 기반 데이터베이스(ClickHouse) 활용

아키텍처의 특장점

  • 쓰기/읽기 분리(Write/Read Separation): 높은 쓰기 성능을 요구하는 데이터 기록(write-only 서버)과 복잡한 분석 쿼리를 처리하는 조회(read-only 서버)를 별도로 구성하여 성능 최적화
  • 분산 데이터 관리: 데이터의 복제와 동기화를 통해 안정성 및 가용성 극대화

사용된 주요 기술 스택

  • AWS 클라우드 인프라: Amazon EC2, AWS Lambda, Kafka, 네트워크 로드 밸런서(NLB) 등 다양한 AWS 서비스를 활용하여 높은 가용성과 안정성 확보
  • ClickHouse 데이터베이스: 방대한 이벤트 데이터를 효율적으로 처리하고 분석하는 데 특화된 컬럼 기반 데이터베이스로, 뛰어난 성능과 압축률을 제공
  • ClickHouse Keeper: ClickHouse 데이터베이스의 복제 및 데이터 동기화를 담당하는 고성능 분산 코디네이션 서비스 (ZooKeeper 호환)

이유

웹 분석 도구 시장은 이미 Google Analytics, Mixpanel 같은 강력한 선도 제품들이 자리잡고 있다.
이들이 구축한 기술 스택은 복잡하면서도 고도화되어 있으며,
그만큼 명확하고 지속적인 수요가 존재한다는 사실을 직접 확인할 수 있었다.

Our Goal

  • 실시간 데이터 수집부터 가공, 시각화까지 전 과정을 직접 구현
  • 그 과정에서 발생하는 수많은 문제를 직접 해결하며 역량 강화
  • 복잡한 시스템 구조를 이해하고 기술에 대한 내실을 다지기

SDK 기반 이벤트 수집

  • 웹 페이지에 <script> 한 줄로 간단히 연동
  • 자동으로 page_view, click, form_submit 등의 주요 이벤트 수집
  • CDN 및 NPM 패키지로 배포 완료

실시간 데이터 처리 및 적재

  • 수집된 이벤트를 Kafka-Lambda 파이프라인을 통해 ClickHouse에 실시간 저장
  • 초당 수만 건 이상의 이벤트도 무리 없이 처리 가능

데이터 시각화 및 분석 기능

  • 전환 흐름 분석 (Conversion Summary)
  • 사용자 여정 시각화 (Sankey 차트)
  • 세그먼트 필터 및 행동 기반 요약 카드
  • 트렌드 기반 차트 분석

댓글