이번 포스팅에서는 분산 데이터 스트리밍 플랫폼으로 알려져 있는 Kafka에 대해 알아보려고 합니다.
카프카, 데이터 플랫폼의 최강자를 읽고 정리하는 글입니다.
위의 책을 읽고 공부하며 정리한 글이기 때문에, 틀린 부분이 있을 수 있으니 참고 부탁드립니다.
카프카(Kafka)란?
카프카(Kafka)는 분산 스트리밍 플랫폼으로, 대용량의 데이터 스트림을 처리하고 저장할 수 있는 오픈 소스 소프트웨어입니다. 아파치 소프트웨어 재단(Apache Software Foundation)에서 현재 개발 및 관리되고 있으며, 고성능, 내고장성, 확장 가능성 및 실시간 데이터 처리를 위한 도구로 널리 사용되고 있습니다. 그렇다면 이러한 분산 스트리밍 플랫폼으로서 각광받는 카프카(Kafka)의 등장 배경을 알아보도록 하겠습니다.
카프카(Kafka)의 등장 배경
카프카(Kafka)는 다음의 이유로 인해 처음 등장하게 되었습니다.
- 대용량 데이터 스트리밍 : 많은 기업과 조직에서 점점 더 많은 데이터를 생성 및 수집을 하게 되었고, 대량의 데이터를 실시간으로 처리하고 저장하기 위한 효율적인 방법이 필요했기 때문이다.
- 데이터 실시간 처리 : 부정 거래 탐지, 실시간 분석과 같은 시나리오에서 실시간으로 처리해야 하는 경우가 많아졌기 때문이다.
- 데이터 파이프라인 : 생성된 데이터를 컨슈머(소비자)로 안정적으로 전달할 수 있는 효율적인 방법이 필요했기 때문이다.
- 다양한 데이터 소스와 대상 통합 : 카프카(Kafka)는 다양한 데이터 소스에서 데이터를 수집하고 다양한 대상으로 전달하기 용이했기 때문이다.
- 오픈 소스 커뮤니티와 지원 : 카프카(Kafka)는 아파치 소프트웨어 재단에서 개발되었기 때문에 활발한 커뮤니티와 자원을 아파치로부터 제공받을 수 있습니다.
결과적으로 카프카(Kafka) 도입으로 인해 위의 모든 문제를 해결할 수 있었습니다.
그렇다면 기존의 데이터 처리 시스템은 이러한 문제를 왜 해결할 수 없었는지에 대해서도 알아보도록 하겠습니다.
아래 이미지는 카프카의 등장 이전 데이터 처리 시스템의 형상입니다.
위의 이미지처럼 기존 데이터 처리 시스템 각각의 애플리케이션과 데이터베이스가 end-to-end로 연결되어 있고 비즈니스 요구사항이 늘어남에 따라 데이터 시스템의 복잡도가 증가하게 되었다. 이러한 증가로 인해 다음과 같은 문제가 야기되었다.
- 시스템의 복잡도 증가 : 정해진 데이터의 전송 위치가 없어 데이터의 플로우를 파악하기 어려우며 시스템의 관리가 어려움
- 데이터 파이프라인 관리 난이도 증가 : 각 데이터 파이프라인마다 데이터 포맷과 처리 방식이 다르기에 데이터 불일치 가능성 높아짐
카프카(Kafka) 적용 후의 변화
아래 이미지는 카프카 적용 후의 데이터 처리 시스템의 모습입니다.
이전의 데이터 처리 시스템의 모습과 비교해 보았을 때 한눈에 봐도 간단해 보이는 것을 알 수 있습니다.
카프카 적용으로 인한 이점은 아래와 같습니다.
- 모든 데이터의 플로우를 중앙에서 관리할 수 있게 됨
- 기존에 없던 새로운 시스템이 추가되더라도 카프카(Kafka)에서 제공하는 표준 형식으로 연결 가능함(확장성의 증가)
- 각 서비스 간의 연결을 고려할 필요 없이 각각의 비즈니스 로직에 집중이 가능함
'WEB > Study' 카테고리의 다른 글
웹 크롤링과 웹 스크래핑의 개념과 차이점 (13) | 2023.08.10 |
---|---|
CSR과 SSR는 어떤 차이가 있을까? (9) | 2023.08.02 |