마케터가 chatGPT로 배우는 Kafka 시작과 그 역사
들어가며
Kafka 라는 플랫폼에 대해 들어보신적 있으신가요?
해당 기술은 Linkedin의 엔지니어가 개발한 분산 스트리밍 플랫폼입니다.
Kafka는 대용량 데이터 스트리밍, 실시간 처리, 데이터 내구성 등의 기능을 제공하여 스트리밍 및 메세징을 지원하는 플랫폼을 널리 사용되고 있는데요.
다양한 유형의 데이터를 처리하고 분석하기 위한 솔루션으로 등장하였습니다.
사실 이런 개념에 대해서 처음 Kafka 를 접하시는 분이라면 매우 어색하게 느껴지실 텐데요.
이번 글에서 Kafka 개념에 대해서 자세히 알아볼 수 있도록 그 시작과 역사에 대해서 chatGPT를 통해 알아보도록 하겠습니다.
Apahce Kafka 는 누가 언제 시작했어?
Apache Kafka는 Linkedin의 엔지니어인 제이 크리스토퍼(Jay Kreps), 준 뉴맨(Jun Rao), 나헌 샤르마(Neha Narkhede)가 개발한 분산 스트리밍 플랫폼입니다. 이 프로젝트는 2010년에 시작되었고, LinkedIn 내에서 다양한 데이터 파이프라인의 요구를 충족시키기 위해 개발되었습니다.
이후 2011년에 오픈소스로 공개되었으며, 2012년에는 아파치 소프트웨어 재단(ASF, Apache Software Foundation)에 기증되어 Apache Kafka로 등록되었습니다. Apache Kafka는 대규모의 실시간 데이터 스트리밍 및 메시징을 지원하는 플랫폼으로 널리 사용되고 있습니다.
이름을 Kafka 로 한 이유는 뭐야?
LinkedIn에서 개발한 Apache Kafka의 이름은 작가 Franz Kafka에서 영감을 받아 지어졌습니다. Kafka는 데이터 스트리밍 플랫폼으로써, Franz Kafka의 작품들이 현실과 환상, 본질적인 의미와 해석 가능한 의미 간의 불확실성과 복잡성을 다루듯이, 데이터의 복잡성과 다양성을 다루는 데 적합한 이름으로 선택되었습니다.
또한 Kafka의 작품에서 나타나는 주체의 고립과 혼란된 세계 또한 데이터의 흐름과 관련하여 어울릴 수 있다고 생각되어서일 수 있습니다. 이처럼 Kafka의 작품이 가진 특징이 데이터 스트리밍과의 유사성을 드러내기 때문에 이 이름이 선택되었습니다.
Kafka를 왜 만들게 되었을까?
LinkedIn에서 개발된 Apache Kafka는 주로 대규모 실시간 데이터 스트리밍을 지원하기 위해 만들어졌습니다. LinkedIn은 다양한 유형의 데이터를 처리하고 분석해야 했는데, 이를 위해서는 확장 가능하고 내결함성 있는 데이터 파이프라인이 필요했습니다. 기존의 메시징 시스템은 LinkedIn의 요구를 완전히 충족시키기 어려웠고, 이에 따라 LinkedIn 엔지니어들은 새로운 솔루션을 찾아야 했습니다.
이러한 도전에 대응하고자 LinkedIn에서는 다음과 같은 목표를 가지고 Kafka를 개발하게 되었습니다:
- 확장성: 대량의 데이터 스트림을 처리할 수 있는 확장 가능한 시스템이 필요했습니다. Kafka는 수평 확장이 가능하며, 클러스터를 구축하여 데이터 처리량을 쉽게 늘릴 수 있습니다.
- 내결함성: 데이터 손실 없이 안정적인 데이터 전달이 중요했습니다. Kafka는 복제와 파티션 분산 등의 메커니즘을 통해 내결함성을 제공합니다.
- 실시간 처리: 실시간으로 데이터를 처리하고 분석하는 데 초점을 맞췄습니다. Kafka는 낮은 지연 시간과 고성능을 제공하여 실시간 분석에 적합합니다.
- 다양한 데이터 유형: 다양한 종류의 데이터(로그, 이벤트, 메트릭 등)를 처리하기 위한 유연한 데이터 모델이 필요했습니다. Kafka는 다양한 데이터 유형을 처리할 수 있는 구조를 제공합니다.
- 데이터 유실 방지: 데이터의 무결성과 보존이 중요했습니다. Kafka는 데이터의 지속성을 보장하여 데이터 유실을 방지합니다.
종합적으로 말하면, LinkedIn은 데이터 파이프라인의 요구 사항을 충족시키기 위해 데이터 스트리밍의 복잡성과 규모에 대응할 수 있는 효과적인 솔루션으로 Kafka 를 개발하게 되었습니다.
kafka 는 무슨 언어로 만든거야?
Scala의 특징 중 하나는 자바와의 호환성이 높다는 점입니다.
따라서 Kafka는 자바 애플리케이션과도 상호 작용할 수 있고, Kafka 클라이언트 라이브러리를 통해 다양한 프로그래밍 언어로 개발된 애플리케이션과 통신할 수 있습니다.
kafka의 오픈소스 라이선스는?
- 아파치 카프카(Kafka)는 아파치 소프트웨어 재단(Apache Software Foundation)에서 관리되는 오픈 소스 프로젝트이며, 아파치 2.0 라이선스(Apache License 2.0)를 따릅니다.
- 아파치 2.0 라이선스는 아파치 소프트웨어 재단에서 관리하는 많은 오픈 소스 프로젝트에 사용되는 라이선스로, 상업적인 사용, 수정, 배포, 서브 라이선싱 등을 허용하며, 라이선스 조건을 충족하면 소스 코드의 공개 의무가 없습니다. 다만, 라이선스 내용을 준수해야 하며 해당 프로젝트의 소스 코드에는 라이선스 및 저작권 정보가 포함되어야 합니다.
- 즉, 아파치 2.0 라이선스는 사용자가 Kafka를 상업적인 목적으로 사용하고 수정하며 배포할 수 있는 자유를 제공하지만, 소스 코드의 공개 의무가 없다는 특징을 갖고 있습니다. 자세한 내용은 아파치 2.0 라이선스를 직접 읽어보거나 아파치 소프트웨어 재단의 웹사이트에서 확인하실 수 있습니다.
마치며 Concluding
오늘 Kafka 에 대한 역사와 배경에 대해서 chatGPT로 알아봤는데 어떠셨나요?
Apache Kafka는 LinkedIn에서 시작된 오픈소스 프로젝트로, 대용량 실시간 데이터 피드 처리와 스트리밍 아키텍처의 요구를 충족시키기 위해 개발되었습니다.
Kafka는 다양한 분야에서 실시간 데이터 처리의 핵심 도구로 자리 잡았으며, 오픈소스 라이선스를 통해 누구나 활용하고 기여할 수 있는 환경을 제공하고 있는데요.
스트리밍의 복잡성과 규묘에 대응할 수 있는 효과적인 솔루션인만큼 IT 리더에게는 꼭 인지해야할 지식일 것 입니다.
WAS, Java Servlet(서블릿) 동작 방식 한눈에 알아보기_chapter 2
/in Cloud, OpenShift, 발표자료/by 주하 원애플리케이션의 비동기 스레드가 느릴때 OPENMARU APM을 이용한 원인분석 방법_chapter 2
/in Kubernetes, OpenShift, Red Hat, 발표자료/by 주하 원WAS, Java Servlet 동작 방식 한눈에 알아보기_chapter 1
/in JBoss, OpenShift, Red Hat, 발표자료, 오픈소스/by 주하 원