Kafka

[카프카 입문] 사용 전후 example

99duuk 2025. 1. 7. 22:50

데이터는 보통 

데이터 받기 -> 추출 -> 변환 -> 로딩

과 같은 흐름을 갖는다...

 

이런 흐름은 데이터를 보내고 받는 각 시스템이 1:1 일 땐 

상당히 간단하고 별 거 없지만

n:n으로 늘어날 수록 노답이다.. (4:6 이면 24개의 통합이 필요하다...)

 

각 시스템이 주고받는 데이터는..

프로토콜도 다를 수 있고.. (TCP, HTTP, FTP, REST...)

데이터포맷도 다를 수 있고.. (Binary, CVS, JSON...)

스키마(데이터 shape) 다름 개복잡;;



1. 넷플릭스: 영상 보는 동안 실시간 추천 적용

💻 카프카 사용 전

  1. 사용자 데이터 수집: 영화 재생, 일시정지, 종료 데이터를 수집.
  2. 저장소 저장: 데이터는 로그 파일이나 데이터베이스에 저장.
  3. 배치 처리: 추천 알고리즘 서버가 정해진 시간(예: 매일 밤)에 저장된 데이터를 가져와 분석.
  4. 결과 반영: 분석 결과는 다음 날이나 시간이 좀 지난 후 추천 UI에 반영.

결과: 추천이 항상 과거 데이터를 기반으로 하다 보니 최신 취향 반영이 느림.

  • 예: 오늘 로맨스 영화 몰아봤지만, 추천에는 여전히 액션 영화만 뜸.

🚀 카프카 사용 후

  1. 실시간 데이터 전송: 재생, 일시정지, 종료 같은 행동 데이터를 즉시 카프카로 전송.
  2. 스트리밍 처리: 카프카는 데이터를 바로 추천 알고리즘 서버에 전달.
  3. 즉각 업데이트: 서버가 데이터를 실시간으로 분석하고 추천 리스트를 업데이트.
  4. 화면 반영: 추천 결과가 사용자 UI에 즉시 반영.

결과: 영화를 보는 중에도 취향에 맞는 추천이 바로 반영됨.

  • 예: 로맨스 영화 보자마자 비슷한 로맨스 영화가 뜨고, 몰입감 상승!

2. 우버: 실시간 데이터로 요금 계산 & 수요 예측

💻 카프카 사용 전

  1. 데이터 수집: 택시 위치, 사용자 요청 데이터를 수집.
  2. 중앙 서버에 저장: 데이터를 중앙 서버에 저장하고 일괄 처리.
  3. 수요 분석 지연: 서버가 데이터를 분석하고 결과를 계산하는 데 시간이 걸림.
  4. 요금 반영 지연: 사용자는 요금이 늦게 반영되고, 수요가 많은 지역에 차를 배치하는 것도 느림.

결과: 택시 배차가 느리고, 요금 계산이 수요를 반영하지 못해 비효율 발생.

  • 예: 갑자기 비가 와서 택시가 필요해도 요금이 한참 뒤에 오르거나, 배차가 늦음.

🚀 카프카 사용 후

  1. 실시간 데이터 전송: 사용자 GPS, 택시 위치, 요청 데이터를 카프카로 즉시 전송.
  2. 스트리밍 처리: 카프카가 데이터를 분석 서버로 전달하고, 즉시 처리.
  3. 수요 반영: 수요가 높은 지역에 택시를 빠르게 배치.
  4. 실시간 요금 계산: 거리와 수요를 반영한 요금을 사용자에게 즉각 표시.

결과: 수요와 요금이 실시간으로 반영되면서 더 효율적인 서비스 제공.

  • 예: 비 오는 날, 수요 급증 지역에 빠르게 배차하고 요금을 실시간으로 표시.

3. 링크드인: 유저 인터랙션 기반 맞춤형 서비스

💻 카프카 사용 전

  1. 데이터 수집: 사용자가 클릭, 좋아요, 공유 같은 행동 데이터를 기록.
  2. 저장소에 저장: 데이터를 저장한 뒤, 주기적으로 분석 서버로 전달.
  3. 결과 반영 지연: 분석 서버가 데이터를 처리해 추천 알고리즘을 업데이트하는 데 시간이 걸림.
  4. UI 업데이트 지연: 업데이트된 결과가 UI에 반영되기까지 시간이 오래 걸림.

결과: 사용자 경험이 항상 과거 데이터를 기반으로 하며, 변화가 느림.

  • 예: 한동안 프로그래밍 글을 클릭했더니 여전히 추천이 예전 데이터 위주.

🚀 카프카 사용 후

  1. 실시간 데이터 전송: 클릭, 좋아요, 공유 데이터를 즉시 카프카로 전송.
  2. 스트리밍 처리: 카프카가 데이터를 분석 서버로 전달해 즉시 추천 알고리즘 업데이트.
  3. 추천 업데이트 반영: 분석된 결과가 바로 UI에 반영되어 사용자 행동에 맞는 추천 제공.

결과: 현재 관심사에 맞는 콘텐츠를 즉시 추천하며 사용자 몰입도 상승.

  • 예: 프로그래밍 글 몇 개 클릭하자마자 비슷한 프로그래밍 글이 계속 추천됨.

 


 

카프카 사용 전후 한눈에 보기

서비스 카프카 사용 전 카프카 사용 후

넷플릭스 데이터 분석 후 추천 시간 지연 즉시 추천 반영, 실시간 업데이트
우버 요금, 수요 반영이 느림 실시간 요금, 배차 반영
링크드인 과거 데이터 기반 추천 현재 행동에 맞는 추천

요약

카프카 사용 전: 데이터를 모아 두고 분석 후 반영, 지연 발생.
카프카 사용 후: 데이터를 즉시 스트리밍으로 처리해, 빠르고 개인화된 경험 제공.

결론적으로 카프카는 데이터를 실시간으로 움직이는 동맥 역할을 하면서 사용자 경험을 극대화~

 

 


 

 

이런 카프카는

분산형이고.. 고장에 내성이 있고..

수평적 확장이 쉽고..

종종 레이턴시가 10ms 이하로 측정될 만큼 고성능이다.. (따라서 카프카를 실시간 시스템이라고 한다..)

 

'Kafka' 카테고리의 다른 글

[Kafka 입문] 다중 브로커, 레플리카  (1) 2025.01.03
[Kafka 입문] 토픽, 파티션, 스트림  (1) 2025.01.02
[Kafka 입문] 구성 요소와 역할  (0) 2025.01.02