CCDAK μν νκΈ° π
25λ
μ μ λ°μ΄ μ§λ μ§κΈ. μ μκ²λ λ§μ νκ²½λ€μ΄ λ°λμμ΅λλ€! λνμ λ§μ§λ§ νκΈ°λ₯Ό 무μ¬ν(?) λ§λ¬΄λ¦¬ νκ³ , μΈν΄λΆν° λ³νΉ κ·Έλ¦¬κ³ μ λμ 리λκΉμ§ λͺ¨λ κ²½ν νλ λ² μ΄κΈμ½λλ₯Ό λ λ ν μ€ νλ μ΄μ€λΌλ κ΅°ν¨μμμ΄μ μ νκ² λμμ΅λλ€.
μ΄μ 1κ°μ μ°¨μ λ°λλ°λν μμ μΈλ°μ γ γ γ νμ¬ μ 무μ μ λ§ μ μ μ΄ μμ΅λλ€β¦;; 첫 2μ£Ό μ λμ μ¨λ³΄λ©μ΄ μ§λλ νμ¬ μ λ¬΄κ° λ§κ΅¬λ§κ΅¬ μμμ§κ³ β¦ γ γ γ λ°©νμ λ μμ΄μ§κ³ μ μκΈΈμ μ κ° μ±κ²¨μΌ κ² λ€λ μκ°μ΄ λλ μμ μ λλ€.
μνΌ μν νκΈ°λ₯Ό μμνκΈ° μ μ κ°λ¨νκ² κ·Όν©μ μκΈ°ν΄λ΄€κ΅¬μ! λΉ λ₯΄κ² CCDAK μ격μ¦μ΄ μ κ² μ΄λ€ μλ―Έμκ³ , μ΄λ»κ² μ€λΉ νλμ§ κ°λ΅ν μ μ΄λ³΄κ² μ΄λ€.
μ CCDAK μνμ λ΄μΌ κ² λ€κ³ μκ° νλκ°?
λ΄κ° λ§‘μκ±°μ μ λ¬Έμ±μ΄ μμ΄μΌμ§! (νλ κΉμ μ΄μ§λ μ€λΉνκ³ ?)
λΌλ μκ°μΌλ‘ μμ νλ κ² κ°μ΅λλ€. μ΄μ μ λ΄€λ μνλ€λ κ·Έλ κ³ μ γ γ
μ§κΈ νμ λ€μ λ¨κ³κ° μλ€λ©΄, 그건 βμ€νΈλ¦¬λ°βμ΄λΌκ³ μκ° νκ³ , κ·Έλ¬κΈ° μν΄μ Kafka μκ±Έ μ λλ‘ μμμΌ νλ€κ³ μκ° νμ΄μ. κ·Έλ¦¬κ³ μ§κΈμ μ κ° ConfluentλΌλ SaaSλ‘ Kafkaλ₯Ό μ΄μνκ³ μ¬μ© νκ³ μμ§λ§, μ κ° λ ν° νμ¬λ‘ κ°λ€λ©΄ κ·Έκ³³μ Confluent μμ΄ μ΄μν κ²μ΄λΌκ³ μκ°νκ³ κ·Έλλ₯Ό λ°λΌλ³΄κ³ μ€λΉλ₯Ό μμ νμ΅λλ€. κ²°κ΅ ν μ€μμ Confluent μμ΄ Kafkaλ₯Ό μ΄μνκ² λμμΌλ λ°λΌλ λλ‘ λμλ€μ γ γ
κ·Έλ¦¬κ³ Kafkaλ μ μΌ κΆν©μ΄ μ λ§λ Javaλ₯Ό νλ² μ λλ‘ ν΄λ³΄κ³ μΆμμ΄μ. λνμ λ FE/BEλ₯Ό κ²½ννκ³ , λ² μ΄κΈμ½λμμ λ°μ΄ν° μμ§λμ΄λ‘μ Python κ²½νμ μ λ§ λ§μ΄ μμλλ°μ. Pythonμ΄ μ§±μ§±μ΄λΌκ³ ν΄λ μ¬μ ν νμ¬ λ°κΉ₯κ³Ό μ€λ¬΄μμλ βJavaβλΌλ κ±Έ κΉ¨λ¬μκ±°λ μ. νΉν Sparkλ₯Ό κΉκ² ν보면μ Java μ€λ ₯μ λν νμλ₯Ό 체κ°νκ² λμμ΅λλ€. κ·Έλμ μ΄λ²μ Kafkaλ₯Ό μ 볡νλ©΄μ κ²Έμ¬κ²Έμ¬~ Javaμ λν κ²½νμΉκΉμ§ μμμΌ κ² λ€κ³ κ²°μ¬ νμ΅λλ€~! (κΏ© λ¨Ήκ³ μ λ¨Ήκ³ )
μ€λΉ νλ©΄μ μ΄λ €μ λ μ μ?
μ νκ³Ό μ§μ€!
25λ μλ°κΈ°λ μ κ² μ λ§ μ½μ§ μμβ¦ μμ¦ μ΄μμ΅λλ€. 25λ μ 첫 μκ²©μ¦ λͺ©νλ‘ CCDAKλ₯Ό μ‘κ³ μμμ νμ§λ§β¦ νμ¬ μ 무λ μμμ§μ§β¦ (κ·Έλ Databricks Summitμ μΈμ μ ν¬κ³ νλ€κ³ μ§μ§ κ²°λ§μΌκΉμ§ κ±Έλ¦°β¦), κ·Έλ¦¬κ³ λ§μ§λ§ νκΈ°μ κ΄ν μμ μ λ§μ΄ μ μ² + μ‘Έμ μ°κ΅¬ + μ‘Έμ μνβ¦ μ§μ§ λμ ν λ§νκΈ°λΌκ³ λ μκ°λμ§ μλ λ‘λλ₯Ό κ²½ν νμ΅λλ€β¦ γ γ
μ΄λ° κ²λ€μ΄ μμ² κ²Ήμ³μ μ¬μ€μ Kafkaλ₯Ό μ λλ‘ νλ³Ό μκ°μ΄ λΆμ‘± νμ΅λλ€. νλμ λꡬλ₯Ό μ΅νμ!λΌκ³ λ§μ λ¨ΉμΌλ©΄ κΈ°μ μμ²΄κ° μλλΌ μνκ³μ λ²μ κ³Ό ν¨λ¬λ€μμ΄ μ΄λ»κ² λ°λμ΄κ°λμ§ μ’ ν©μ μΌλ‘ λ§λκ² λλλ°, λ€λ₯Έ κ²λ€μ μκ°μ λΊκ²¨ κ°λ©΄μ Kafkaμ μ§μ€νκΈ° μ½μ§ μλλΌκ΅¬μβ¦
κ²°κ΅ CCDAK μνμ λ―Έλ£¨κ³ λ―Έλ£¨λ€κ° μλΉκ΅° νλ ¨ 4μΌμ΄ μ‘νλ©΄μ λ³Έκ°μ λ΄λ €κ°κ² λμλλ°, κ·Έλ μλΉκ΅° νλ ¨ λ€μ΄λ©΄μ μ΄μ¬ν λ©λͺ¨ ν΄λλ κ²λ€μ λ ν νλ©΄μ μνμ μ€λΉ νμ΅λλ€β¦ γ γ κ·Έλ λꡬμ νμΌκ²½λ³΄κ° λ΄λ €μ Έμ λμ ν μΌμΈνλ ¨μ΄ λΆκ°λ₯ νκ±°λ μ. μμ μ μ½λ‘λ λ νλ ¨μμμ 격리 νλ μμ μ΄ μ κΉ λ μ€λ₯΄κΈ°λβ¦ γ γ
κ·Έλ¦¬κ³ μμ μΈλ‘ Javaκ° λ²μκ° μμ² λμμ΅λλ€. Kafkaλ₯Ό μ λλ‘ νλ €λ©΄, JavaκΉμ§ 보λ μ λ°μ μλλ°, Kafkaλ μ΄λ―Έ Java μ΄κ³ μμΈ μ¬λλ€μ΄ ꡬμΆνκ³ , κ·Έ λ¬Έλ²μ κΈ°λ°μΌλ‘ νκ³ μμ΄μ Kafkaλ₯Ό μ λλ‘ νλ €λ©΄, μ ν¬ Java μμ€λ μ΄λ μ λλ λ°μ³μ€μΌ νμ΅λλ€.
λ°±μ€μ λ€μ΄κ°μ κΈ°μ΄ 100μ ? κ°μ κ±Έ Javaλ‘ νμ΄λ³΄κ³ , (μμ λΆν° ν΄λ³΄κ³ μΆμλ) Java Springλ μΈνλ°μμ κ°μ’λ₯Ό νλ κ²°μ ν΄μ 곡λΆν΄λ³΄μμ΅λλ€.
μ΄λ κ² Javaλ₯Ό 곡λΆνκ³ λλ Java λ§μ€ν°κ° λμμκΉμ? κ·Έλ΄λ¦¬κ°μ γ γ γ μ€νλ € Javaμ μΈμμ΄ λλ€λ κ²λ§ κΉ¨λ«κ³ μΈμ κ°μ λ°±λ‘κ·Έλ‘ λκ²Όμ΅λλ€. μ§κΈμ Tomcatμ΄λ Spring Bootλ λλ μ΄λ° κ²λ€μ΄ λμμ 무μμ§ μκ² λμλ€? μ λμ μμ€μΈ κ² κ°μμ γ γ κ·Έλμ Javaμ λν μ΄μν¨μ λ§μ΄ μ€μ΄λ κ² κ°μ΅λλ€. μλ§ Sparkμ λν΄ κΉκ² μ΄ν΄λ³΄κ² λλ λ μ΄ μ€λ©΄, κ·Έλ λ Javaμ λμ ν κ² κ°μ΅λλ€.
μνμ μ΄λ λκ°?
μ£Όμ 리주λ¬λ¦¬ μλ‘ μ΄ κΈΈμ£ ? γ γ μ΄μ CCDAK μνμ λ°λλ°λν νκΈ°λ₯Ό μ μ΄λ³΄κ² μ΅λλ€.
μΌλ¨ μ λ μνμ 2λ² κ²°μ νμ΅λλ€ π 3μμ μν μ€λΉκ° λμλ€κ³ μκ°νκ³ μν μΌμ μ μ‘μλλ°μ. μ΄λ΄μκ° μ¬κΆμ μ κ°μ§κ³ μμμ΅λλ€β¦ π€¦ λΆλ΄λΆλ΄ μ¬κΆ μ¬μ§μ μΆλ ₯ν΄μ κ°μ Έκ°λλ°, μμ§€ μλλΌκ΅¬μβ¦ κ²°κ΅ μνμ No-show μ²λ¦¬ λμκ³ , 7μμ λ€μ κ²°μ ν΄μ μνμ μμνκ² λ©λλ€. (λ΄ λ γ γ γ γ )
μν λμ΄λλ μ΄λ€κ² λ΅μ΄μ§? μΆμ λ¬Έμ λ€μ΄ μ’ μμμ΄μ. κΈ°μ΅μ μ’ λ μ¬λ €λ³΄λ©΄,
μ΄λ€ λͺ©μ μ λ¬μ±νκΈ° μν΄ Kafkaμμ μ 곡νλ μ μ€ν¬λ¦½νΈλ₯Ό λλ €μΌ νλλ°, μ΄λ€ κ±Έ μ΄λ»κ² μ€ννλ©΄ λλκ°? μ΄λ° κ²λ€μ΄ λμμ΅λλ€. μ΄κ² λ΅μ΄ λͺ
νν 보μ΄λ κ²λ€λ μλλ°, μ λ§ κ΅λͺ¨νκ³ ν·κ°λ¦¬κ² ν΄λμ κ²λ€λ μμμ΄μ. μλ₯Ό λ€μ΄, kafka-topics.sh
λ₯Ό μ¨μΌ νλ κ±΄μ§ kafka-configs.sh
λ₯Ό ν΄μΌ νλ κ±΄μ§ ν·κ°λ¦¬κ² νλ€κ±°λ, μ νμ§μ Argumentκ° --alter
μΈμ§ --change
μΈμ§ ν·κ°λ¦¬κ² λμμ΅λλ€.
μΉ΄νμΉ΄λ₯Ό ꡬμ±νλ λΈλ‘컀, 컨μλ¨Έ, νλ‘λμ λ±μ configμ λν μ΄ν΄λ νμ νμ΅λλ€. μ΄λ ΄νμ΄ κΈ°μ΅λλ건 ννΈλΉνΈ μͺ½ κ΄λ ¨ν΄μ λμλ κ² κ°λ€μ.
κ·ΈμΈμλ μμμ λ§κ² λ¨κ³λ₯Ό λ°°μΉνλ λ¬Έμ λΌλκ°, λΆλ₯λ₯Ό νλ€κ±°λ μ ν μμνμ§ λͺ» νλ μ νμ λ¬Έμ λ€λ λμμ΅λλ€.
μ€λΉλ μ΄λ»κ² νλκ°?
β‘οΈ [λ°λΈμμ] μνμΉ μΉ΄νμΉ΄ for beginners
μΈνλ°μμ λ°λΈμμλμ κ°μλΆν° μμ νμ΅λλ€. μΉ΄νμΉ΄μ λν μ λ°μ μΈ κ°κ°μ μ΅νκΈ°μλ μ΄κ² μ μΌ μ’μ κ² κ°μμ! (μ’ μ’ μ₯μμμ΄λ ν·κ°λ €μ ν μΉ«β¦)
β‘οΈ Practice Exams: Confluent Certified Apache Kafka Developer
κ·Έλ¦¬κ³ μ λ°λ―Έμμ λͺ¨μμν μΈνΈλ₯Ό κ΅¬λ§€ν΄ μνμ μ€λΉ νμ΅λλ€. μ€λ¬΄μμ μ°λ κ²κ³Ό μνμ 보λ건 μ§ν₯μ μ΄ λ€λ₯΄λ μκ²©μ¦ μνμ μ€λΉν λλ μ΄λ° λͺ¨μμνμ΄ μ κ²λ ν° λμμ΄ λμμ΄μ.
μ²μμλ λͺ¨μμνλ ν΅κ³ΌνκΈ° μ½μ§ μλλΌκ΅¬μ γ γ κ·Έλλ μνμ λ¨μ΄μ§λ κ²λ³΄λ€λ μ§κΈ λͺ¨λ₯΄λ κ±Έ μκ³ λ³΄μνλκ² λ μ’μΌλ!! νλ€λλΌλ νλ¦° λ¬Έμ λ€, ν·κ°λ Έλ κ²λ€ μμ£Όλ‘ μ κ²νκ³ λ³΄μΆ© νμ΅λλ€.
μΉ΄νμΉ΄λ₯Ό μ λλ‘ λ€λ£¨λ €λ©΄ Kafkaμμ μ 곡νλ λͺ¨λ μ μ€ν¬λ¦½νΈλ₯Ό μμμΌμ§!
λΌκ³ μ²μμ μκ°νμ΄μ γ γ κ·Έλμ λ‘컬 k8sμ μ§μ μΉ΄νμΉ΄ ν΄λ¬μ€ν°μ 컀λ₯ν°λ₯Ό λμμ λ§μ΄ μ€ν ν΄λ³΄μμ΅λλ€.
κ·Έ νμ μ΄ β¦. Kafka Shell Script λλ¬λ³΄κΈ° μ ν¬μ€νΈμΈλ°μ γ γ 42κ° μ μ€ν¬λ¦½νΈλ₯Ό μ λΆ λ³΄λκ² λͺ©ν μμ§λ§, κ²°κ΅ λ€ μ°μ΅νμ§λ λͺ» νκ³ μ΄λ°μ λ° κΈ°λ₯μ΄ μλ€λ κ±Έ νμ νλλ°λ λμμ΄ λμμ΅λλ€ γ γ
μΉ΄νμΉ΄ 곡μ λ¬Έμλ€λ λ§μ΄ λμμ΄ λμμ΄μ!! Kafka Internals μ μ리μ¦κ° μ λ§ λ§μ λμμ΄ λμμ΅λλ€. Page Cache, Zero-copy λ±λ±, μ μΉ΄νμΉ΄κ° λ¨μν MQ μ΄μμ κ°μΉμ μ±λ₯μ μ£Όλμ§ κ·Έ μ΄μ λ₯Ό λλΆμ μκ² λμμ΅λλ€.
β‘οΈ Kafka Internals
μ΄κ² λ΄ μ 무μ λμμ΄ λ κΉ?
μΌλ¨ μλ‘μ΄ νμ¬μμ Kafka κ΄λ ¨λ κ²λ€μ ν λ, μ¬μλμ λ§μ μ‘°κΈμ΄λΌλ λ μμλ€μ μ μκ² λμμ΅λλ€ γ γ μ μ΄κ±΄ λ΄κ° μλκ±°, μ΄κ±΄ λ΄κ° μ λͺ¨λ₯΄λκ±°. μ΄λ°κ² λͺ νν΄μ Έμ μμΌλ‘ μ΄λ€ λΆλΆμ 보μν μ§ λ λμ ν΄λ³Όμ§ λͺ νν΄μ‘μ΄μ!
μ΄μ μλ Advertised HostλΌλκ° μ΄λ° κ²λ μ λͺ°λλλ°μ γ γ μνμ μ€λΉνλ©΄μ Kafka λΏλ§ μλλΌ λΆμ° μμ€ν μ λν μ΄ν΄λ λ κΉμ΄μ§ κ² κ°μ΅λλ€.
μκ°λ³΄λ€ λ€λ₯Έ λΆμ° μμ€ν μμκ³ μ£Όν€νΌλ₯Ό λκ±°λ, μλλ©΄ Raft κΈ°λ°μ μ μΆ μκ³ λ¦¬μ¦μΌλ‘ 리λλ₯Ό μ νλ κ²½μ°κ° λ§λλΌκ΅¬μ! κ·Έμ μλ μ΄λ° μ»΄ν¬λνΈλ€μ΄ λ§λ₯ μ΄λ ΅κ² λκ»΄μ‘κ±°λ μ. λ§μ μκ³ λλ κ·Έλ κ² μ΄λ €μ΄ 건 μλλλΌκ΅¬μ..?! λ¬Όλ‘ μμ§ μ£Όν€νΌ, rafkμ λν΄μ μ μλ 건 μλμμ γ γ κ·Έλ₯ μ΄μνμ§ μμ μ¬μ΄?
νμ¬μμ λ°μλ μ 무 μ€ κΈ°μ΅μ λλ 건 Kafka ν΄λ¬μ€ν°μ SASL SSLμ ꡬμΆνλ μ 무λ₯Ό λ°μμ΅λλ€. λ¬Όλ‘ μ΄κ² λμ§λ μκ³ μμμ§λ§.. ν΄λ³Έ μ μ μμμ΄μ! γ γ κ²°κ΅ μ¬μλμ΄ λ©μΈ μμ μ ν΄μ£Όμ ¨μ§λ§ λͺ¨λ₯΄λ μνμμ μμ μ νλ€λ©΄ λ¬Έμ κ° μκ²Όμ λ μ΄λ»κ² λμν μ§ μ‘°μ°¨ λ§λ§νμ κ² κ°μμ.
κΏνμ΄ μλκ°?
λ§μ½ μνμ λͺ©νλ‘ νλ€λ©΄ λͺ¨μκ³ μ¬λ₯Ό λ°λ³΅ν΄μ νλ©΄μ μ€λΉνμΈμ! λ§μ½ κ·Έκ² μλλΌ μνμ λμ λκΈ°λΆμ¬κ° λλλ‘λ§ νκ³ , μΉ΄νμΉ΄μ λν κ²½νμ CCDAKλ₯Ό ν΅ν΄ μκ³ μΆλ€λ©΄, λ©λ¦¬ κ·Έλ¦¬κ³ λκ² λ³΄κ³ μνμ μ€λΉνμΈμ.
μ κ² μμ΄ μνμ μΈμ λ μ μ¦κ³Ό κ°μ μ‘΄μ¬μΈ κ² κ°μμ. μμΌλ©΄ μ΄λ κ² κ°μ λ‘ λ§λ€κ² λκ³ , μνμ΄ μ‘νλ©΄ λ μ€νΈλ μ€ λ°μν΄μβ¦ γ γ κ·Έλλ νκ°μ§ λ―Ώμμ μ΄ κ³Όμ μ ν΅ν΄ μ κ° λ μ±μ₯νκ³ λ¨λ¨ν΄μ§λ¦¬λΌλ κ² μ λλ€. λμ νμ§ μμΌλ©΄ μ μ리 κ±Έμ λΏμ΄λκΉμ. μ΄κ² μλ₯λ μλκ³ (μ¬μ§μ΄ μλ₯λ) λ§νλ€κ³ λ΄ μΈμ λ§νκ±° μλκ±°λ μ γ γ γ λͺ©νλ₯Ό μΈμ°κ³ λμ νλ κ·Έ κ³Όμ μμ²΄κ° μλ―Έμκ³ κ°μΉμλ€κ³ μκ°ν΄μ. λ¬Όλ‘ λ΄ λμ΄ μκΉμ°λ γ γ μ΄μ¬ν μ€λΉνκΈ΄ ν΄μΌμ£
λ€μ λͺ©νλ?
ν μ€β¦ κ°μ€λ νμ§λ§ μ λ§ λΉ λ₯΄κ³ λ°μ μ‘°μ§ μ λλ€ γ γ μ΄μ μ λ² μ΄κΈμ½λ μ²λΌ μΌλ μ 2λ²μ© μ격μ¦μ λμ ν μ μμμ§ μ λͺ¨λ₯΄κ² λ€μβ¦ γ γ
κ·Έλλ μκ°μ΄ λμ΄μ λμ ν΄λ³Έλ€λ©΄, CNCFμμ Linux μμ€ν μ λν΄ ν μ€νΈ νλ Linux Foundation Certified System Administrator (LFCS) μνμ λμ ν΄λ³΄κ³ μΆμ΄μ. λ§€λ² μκ²©μ¦ μνμ λμ νλ©΄μ Linux μ체μ λν΄ μ’λ μμμΌ κ² λ€κ³ λλΌλλ°, μ΄ μνμΌλ‘ κ·Έ κ°μ¦μ μ±μΈ μ μκΈ°λ₯Ό λ°λλλ€ γ γ
κ·ΈμΈμλ νμ¬μμ μ°λ dbtμ μ€λ Έμ°νλ μ΄ν¬μ λν μ λ¬Έμ±μ κ°μΆκ³ μΆμ΄μ. νμ¬μμ Udemy κ°μλ κ²°μ¬ ν΄μ€¬λλ°, μ΄κ²λΆν° μΌλ₯Έ λ€μ΄μΌ ν κ² κ°μμ γ γ
λ§μ§λ§μΌλ‘ μ’λ 건κ°μ μ±κΈ°κ³ μΆμ΄μ. μ§λ νκΈ° μ‘Έμ νκΈ° + νμ¬ + μ΄μ§κΉμ§β¦ νΈλ¦¬ν κ²ΉμΉ¨ λλ¬Έμ 체λ ₯μ΄ λ§μ΄ λ¨μ΄μ‘κ±°λ μβ¦ μΌμ£ΌμΌμ ν λλ²μ κ°μ΄νκ² λ ν리λκ² λͺ©ν μ λλ€β¦ γ γ
무λμ΄ μ¬λ¦β¦ λλ μ€μ€λκ³ κΈ°μ΄λ μΆμΆ μ³μ§λλ°, μ μ΄κ²¨λ΄κΈΈ!! μμ’μ£!! π