Kafka(카프카)란 무엇인가
·
Apache Kafka
주니어 백엔드 개발자의 Apache Kafka 이해하기 📌 서론: Kafka는 왜 만들어졌을까? LinkedIn은 빠르게 성장하는 플랫폼으로, 수백만 명의 사용자와 수십억 개의 이벤트를 실시간으로 처리해야 했다. 그러나 당시 사용하고 있던 메시징 시스템은 이런 대규모 데이터와 실시간 분석 요구사항을 충족시키지 못했다. 이러한 문제를 해결하기 위해, LinkedIn은 새로운 데이터 스트리밍 플랫폼이 필요했다. 그 결과, 높은 처리량, 낮은 지연 시간, 그리고 높은 가용성을 목표로 Kafka가 개발되었다. Kafka의 도입으로 LinkedIn은 기존에 겪던 데이터 처리와 실시간 분석의 문제를 성공적으로 해결할 수 있었다. 이렇게 Kafka는 LinkedIn의 특정 문제를 해결하기 위해 탄생했고, 그 후로도 ..
스프링에서 느슨한 결합 만들기: 이벤트 기반 아키텍처 적용
·
Spring/Spring 기초 지식
이벤트 기반 아키텍처를 적용해서 느슨한 결합(Coupling)을 만들어 보자 📖 서론 이번 포스트에서는 먼저 결합도가 높은 일반적인 시나리오를 살펴보고, 이를 개선하기 위해 결합도가 높은 코드에 스프링의 이벤트 기반 아키텍처를 적용시켜 보자. 코드를 쉽게 이해하기 위해 자주 사용되는 로그인 프로세스를 예로 들어, 어떻게 결합도를 낮추고 코드의 효율성을 높일 수 있는지 설명하도록 하겠다. 1. 결합도가 높은 login() 메서드 작성하기 결합도가 높은 login() 메서드 코드 분석하기 하단의 login() 메서드에서 처리하는 주관심사와 외부 관심사를 분리시켜 보자. 여기서 주관심사는 사용자의 로그인 과정이며, 외부 관심사(비관심사)는 로그인 후의 추가 작업들(예: 알림 보내기, 타 기기에서의 로그아웃 ..