데이터는 보통
데이터 받기 -> 추출 -> 변환 -> 로딩
과 같은 흐름을 갖는다...
이런 흐름은 데이터를 보내고 받는 각 시스템이 1:1 일 땐
상당히 간단하고 별 거 없지만
n:n으로 늘어날 수록 노답이다.. (4:6 이면 24개의 통합이 필요하다...)
각 시스템이 주고받는 데이터는..
프로토콜도 다를 수 있고.. (TCP, HTTP, FTP, REST...)
데이터포맷도 다를 수 있고.. (Binary, CVS, JSON...)
스키마(데이터 shape) 다름 개복잡;;
1. 넷플릭스: 영상 보는 동안 실시간 추천 적용
💻 카프카 사용 전
- 사용자 데이터 수집: 영화 재생, 일시정지, 종료 데이터를 수집.
- 저장소 저장: 데이터는 로그 파일이나 데이터베이스에 저장.
- 배치 처리: 추천 알고리즘 서버가 정해진 시간(예: 매일 밤)에 저장된 데이터를 가져와 분석.
- 결과 반영: 분석 결과는 다음 날이나 시간이 좀 지난 후 추천 UI에 반영.
결과: 추천이 항상 과거 데이터를 기반으로 하다 보니 최신 취향 반영이 느림.
- 예: 오늘 로맨스 영화 몰아봤지만, 추천에는 여전히 액션 영화만 뜸.
🚀 카프카 사용 후
- 실시간 데이터 전송: 재생, 일시정지, 종료 같은 행동 데이터를 즉시 카프카로 전송.
- 스트리밍 처리: 카프카는 데이터를 바로 추천 알고리즘 서버에 전달.
- 즉각 업데이트: 서버가 데이터를 실시간으로 분석하고 추천 리스트를 업데이트.
- 화면 반영: 추천 결과가 사용자 UI에 즉시 반영.
결과: 영화를 보는 중에도 취향에 맞는 추천이 바로 반영됨.
- 예: 로맨스 영화 보자마자 비슷한 로맨스 영화가 뜨고, 몰입감 상승!
2. 우버: 실시간 데이터로 요금 계산 & 수요 예측
💻 카프카 사용 전
- 데이터 수집: 택시 위치, 사용자 요청 데이터를 수집.
- 중앙 서버에 저장: 데이터를 중앙 서버에 저장하고 일괄 처리.
- 수요 분석 지연: 서버가 데이터를 분석하고 결과를 계산하는 데 시간이 걸림.
- 요금 반영 지연: 사용자는 요금이 늦게 반영되고, 수요가 많은 지역에 차를 배치하는 것도 느림.
결과: 택시 배차가 느리고, 요금 계산이 수요를 반영하지 못해 비효율 발생.
- 예: 갑자기 비가 와서 택시가 필요해도 요금이 한참 뒤에 오르거나, 배차가 늦음.
🚀 카프카 사용 후
- 실시간 데이터 전송: 사용자 GPS, 택시 위치, 요청 데이터를 카프카로 즉시 전송.
- 스트리밍 처리: 카프카가 데이터를 분석 서버로 전달하고, 즉시 처리.
- 수요 반영: 수요가 높은 지역에 택시를 빠르게 배치.
- 실시간 요금 계산: 거리와 수요를 반영한 요금을 사용자에게 즉각 표시.
결과: 수요와 요금이 실시간으로 반영되면서 더 효율적인 서비스 제공.
- 예: 비 오는 날, 수요 급증 지역에 빠르게 배차하고 요금을 실시간으로 표시.
3. 링크드인: 유저 인터랙션 기반 맞춤형 서비스
💻 카프카 사용 전
- 데이터 수집: 사용자가 클릭, 좋아요, 공유 같은 행동 데이터를 기록.
- 저장소에 저장: 데이터를 저장한 뒤, 주기적으로 분석 서버로 전달.
- 결과 반영 지연: 분석 서버가 데이터를 처리해 추천 알고리즘을 업데이트하는 데 시간이 걸림.
- UI 업데이트 지연: 업데이트된 결과가 UI에 반영되기까지 시간이 오래 걸림.
결과: 사용자 경험이 항상 과거 데이터를 기반으로 하며, 변화가 느림.
- 예: 한동안 프로그래밍 글을 클릭했더니 여전히 추천이 예전 데이터 위주.
🚀 카프카 사용 후
- 실시간 데이터 전송: 클릭, 좋아요, 공유 데이터를 즉시 카프카로 전송.
- 스트리밍 처리: 카프카가 데이터를 분석 서버로 전달해 즉시 추천 알고리즘 업데이트.
- 추천 업데이트 반영: 분석된 결과가 바로 UI에 반영되어 사용자 행동에 맞는 추천 제공.
결과: 현재 관심사에 맞는 콘텐츠를 즉시 추천하며 사용자 몰입도 상승.
- 예: 프로그래밍 글 몇 개 클릭하자마자 비슷한 프로그래밍 글이 계속 추천됨.
카프카 사용 전후 한눈에 보기
서비스 카프카 사용 전 카프카 사용 후
넷플릭스 | 데이터 분석 후 추천 시간 지연 | 즉시 추천 반영, 실시간 업데이트 |
우버 | 요금, 수요 반영이 느림 | 실시간 요금, 배차 반영 |
링크드인 | 과거 데이터 기반 추천 | 현재 행동에 맞는 추천 |
요약
카프카 사용 전: 데이터를 모아 두고 분석 후 반영, 지연 발생.
카프카 사용 후: 데이터를 즉시 스트리밍으로 처리해, 빠르고 개인화된 경험 제공.
결론적으로 카프카는 데이터를 실시간으로 움직이는 동맥 역할을 하면서 사용자 경험을 극대화~
이런 카프카는
분산형이고.. 고장에 내성이 있고..
수평적 확장이 쉽고..
종종 레이턴시가 10ms 이하로 측정될 만큼 고성능이다.. (따라서 카프카를 실시간 시스템이라고 한다..)
'Kafka' 카테고리의 다른 글
[Kafka 입문] 다중 브로커, 레플리카 (1) | 2025.01.03 |
---|---|
[Kafka 입문] 토픽, 파티션, 스트림 (1) | 2025.01.02 |
[Kafka 입문] 구성 요소와 역할 (0) | 2025.01.02 |