๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ107

Kafka Connect๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ: ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ Apache Kafka Connect ๋Š” Kafka๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์‹ฑํฌ๋ฅผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋“ฑ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์ด๋™ ์‹œํ‚ค๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka Connect ์˜ ๊ฐœ์š”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์„ ์œ„ํ•œ ์ปค๋„ฅํ„ฐ ์‚ฌ์šฉ , ์‚ฌ์šฉ์ž ์ •์˜ ์ปค๋„ฅํ„ฐ ๊ตฌํ˜„ , ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต ์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.   1. Kafka Connect ๊ฐœ์š” Kafka Connect ๋Š” Kafka ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Source ์ปค๋„ฅํ„ฐ ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ Kafk.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜: Kafka๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„ํ•˜๊ธฐ ์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•œ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ฉฐ, ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka ๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„, ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ CQRS ํŒจํ„ด ์ ์šฉ, ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์ฒ˜๋ฆฌ , ๊ทธ๋ฆฌ๊ณ  Kafka๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.   1. Kafka๋ฅผ ํ™œ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„Kafka๋Š” ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๋กœ์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฐ„ ๋น„๋™๊ธฐ ํ†ต์‹  ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒํ‹ฐ์…˜ ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.Kafka ๊ธฐ๋ฐ˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์˜ˆ์‹œ.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Kafka Streams์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ†ตํ•ฉ: ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ Apache Kafka Streams ๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ•๋ ฅํ•œ API๋กœ, Kafka์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka Streams API ์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒํƒœ ์ €์žฅ ๋ณ€ํ™˜ ๊ณผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ฟผ๋ฆฌ ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒํƒœ ์ €์žฅ์†Œ ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€๋„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.   1. Kafka Streams API ์†Œ๊ฐœ Kafka Streams ๋Š” Apache Kafka ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™˜, ํ•„ํ„ฐ๋ง, ์ง‘๊ณ„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ถ„์‚ฐ ํ™˜๊ฒฝ ์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์–ด ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ .. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธํ•˜๊ธฐ: ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊นŒ์ง€ Apache Kafka ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ…Œ์ŠคํŠธ ๋Š” ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ , Embedded Kafka๋ฅผ ํ™œ์šฉํ•œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ , Kafka ๋ชจ์˜ ๊ฐ์ฒด(Mock) ๋ฅผ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๋น„๋™๊ธฐ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.   1. ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธKafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ”„๋กœ๋“€์„œ ์™€ ์ปจ์Šˆ๋จธ ์˜ ๋™์ž‘์„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Mockito ์™€ ๊ฐ™์€ ๋ชจ์˜ ๊ฐ์ฒด(Mock)๋ฅผ ํ™œ์šฉํ•˜์—ฌ Kafka ๋ธŒ๋กœ์ปค์™€์˜ ์‹ค์ œ ์—ฐ๊ฒฐ ์—†์ด๋„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํ”„๋กœ๋“€์„œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์˜ˆ์‹œ@RunWith(Spr.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์Šค์ผ€์ผ๋ง: ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ ํ™•์žฅ ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ ์ „๋žต Apache Kafka ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ฑ๊ณต์ ์œผ๋กœ ์Šค์ผ€์ผ๋งํ•˜๋ ค๋ฉด ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ ์ˆ˜ํ‰ ํ™•์žฅ , ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…”๋‹ ์ „๋žต , ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๊ด€๋ฆฌ , ๊ทธ๋ฆฌ๊ณ  ๊ณ ๊ฐ€์šฉ์„ฑ ์„ ์œ„ํ•œ ์žฅ์•  ๋Œ€์‘ ์ „๋žต ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์š”์†Œ๋“ค์„ ์‚ดํŽด๋ณด๊ณ , ํšจ๊ณผ์ ์ธ Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์Šค์ผ€์ผ๋ง ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.   1. ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ ์ˆ˜ํ‰ ํ™•์žฅKafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜ํ‰ ํ™•์žฅ (Horizontal Scaling)ํ•˜๋ ค๋ฉด ํ”„๋กœ๋“€์„œ ์™€ ์ปจ์Šˆ๋จธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ˆ˜ํ‰ ํ™•์žฅ์€ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ™•์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.ํ”„๋กœ๋“€์„œ ํ™•์žฅ ํ”„๋กœ๋“€์„œ ๋Š”.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.