์ ์ฒด ๊ธ (74) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [๋น ๋ฐ์ดํฐ] ๋น ๋ฐ์ดํฐ ์์ํ๊ธฐ ๋น ๋ฐ์ดํฐ ์ผ๋จ ๋ฐ์ดํฐ๊ฐ ์๊ณ , ๋์ค์ ํ ์ด๋ธ์ ์ค๊ณํ๋ ๊ฒ์ด ๋น ๋ฐ์ดํฐ๋ค. ์ค๋ผํด ๊ณต์ ํํ์ด์ง์์๋ 3V๋ฅผ ๋งํ์ง๋ง ์ฑ ์์ ๋งํ๋ ๋น ๋ฐ์ดํฐ๋ ์์ ๊ฐ๋ค. ์ฑ ์ ์ด๋ฆ์ด ๋น ๋ฐ์ดํฐ๋ฅผ ์งํฑํ๋ ๊ธฐ์ ์ด๋ค. ๋น์ฐํ ๋น ๋ฐ์ดํฐ๋ฅผ ์ทจ๊ธํ๋๋ฐ ์ฌ๊ธฐ์๋ ๋๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋๋ฐ ์ด ์ฑ ์์๋ 2๋ฒ์ ์ง์คํ๋ค. 1. ๋ฐ์ดํฐ์ ๋ถ์ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅธ๋ค. 2. ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์๊ณ ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ์ฉ์ด ์ ๋ฆฌ ํ ์ด๋ธ์ ์นผ๋ผ ๋ช ๊ณผ ๋ฐ์ดํฐํ, ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ ๋ฑ์ ์คํค๋ง(schema)๋ผ๊ณ ํ๋ฉฐ, ์คํค๋ง๊ฐ ๋ช ํํ๊ฒ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ ๋ฐ์ดํฐ(structured data)๋ผ๊ณ ํ๋ค. ํ์ง๋ง ๋น ๋ฐ์ดํฐ๋ ํญ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ง ์๋ ๊ฒ์ด ์๋๋ผ, ์์ฐ์ด๋ก ์์ฑ๋ ํ ์คํธ ๋ฐ์ดํฐ์ ์ด๋ฏธ์ง, ๋์์ ๋ฑ์ ๋ฐ์ดํฐ๋ ํฌํจํ๋ค. ์ด๋ฅผ ๋น๊ตฌ์กฐํ๋ฐ์ดํฐ(unst.. [MQ] ์นดํ์นด ์ปค๋ฅํธ (Kafka Connect) ์นดํ์นด๋ ํ๋ก๋์์ ์ปจ์๋จธ ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ๋ฉ์์ง ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ์ ์ํด ๋งค๋ฒ ํ๋ก๋์์ ์ปจ์๋จธ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ ์ฝ์ง ์์ต๋๋ค. ์ด๋ฒ ๊ธ์ ์นดํ์นด์ ์ธ๋ถ ์์คํ ๊ฐ์ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ์ ๋์ฑ ์ฝ๊ณ ๊ฐํธํ๊ฒ ํด์ฃผ๋ ์นดํ์นด ์ปค๋ฅํธ(Kafka Connect)์ ๋ํด ์ดํด๋ด ๋๋ค. Kafka Connect ์นดํ์นด๋ ์ํคํ ์ฒ ์ค์ฌ์์ ๋ค์ํ ์ธ๋ถ ์์คํ ๊ณผ ๋ฉ์์ง ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ์ก์์ ํ๊ธฐ ์ํด ์ธ๋ถ ์์คํ ์๋ ํ๋ก๋์, ์ปจ์๋จธ๊ฐ ๊ตฌํ๋ฉ๋๋ค. ์ด๋, ์ธ๋ถ ์์คํ ์ ์๊ฐ ๋ง์์ง๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ํด๋ผ์ด์ธํธ๋ ๊ทธ ์ธ๋ถ ์์คํ ์ ๋ง์ถฐ ๊ตฌํ๋๊ณ ๊ด๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ์ฆ, ๊ฐ๋ฐ ๋น์ฉ์ด ํ์ํฉ๋๋ค. ์นดํ์นด ์ปค๋ฅํธ๋ ์ด๋ฌํ ๊ฐ๋ฐ ๋น์ฉ์ ์์ ๊ณ , ์ฝ๊ณ ๊ฐ๋จ.. [MQ] ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ (Schema Registry) ์นดํ์นด๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ํ๋ก๋์์ ๋ฉ์์ง๋ฅผ ๋ณต์ฌํด์ค๋ ์ปจ์๋จธ, ๊ทธ๋ฆฌ๊ณ ํ๋ก๋์์ ์ปจ์๋จธ ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ค๊ณํ๋ ๋ธ๋ก์ปค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฌํ ์นดํ์นด์ ๊ตฌ์กฐ๋ ๋ฉ์์ง์ ์ก์ ์์ ์์ ์ ์ฌ์ด์ ์ง์ ์ ์ธ ๊ด๊ณ๋ฅผ ๋์์ผ๋ก์จ ๊ตฌ์กฐ์ ์ธ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ์ฅ์ ์ด ์์ต๋๋ค. ํ์ง๋ง, ๋ฐ๋๋ก ์ง์ ์ ์ธ ๊ด๊ณ๊ฐ ๋์ด์ง์ ๋ฐ๋ผ ๋ฐ์ํ๋ ์ด์๋ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์ ์นดํ์นด์์ ๋ฐ์ํ ์ ์๋ ์ด์ ์ด์์ ๊ทธ ์ด์๋ฅผ ํด๊ฒฐํ ์ ์๋ ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ(Schema Registry)์ ๊ดํ์ฌ ์ ๋ฆฌํฉ๋๋ค. ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ (Schema Registry) ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ๋ ์นดํ์นด ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ๋ฉ์์ง์ ์คํค๋ง๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์คํค๋ง ๋ ์ง์คํธ๋ฆฌ๋ ๋ง์ ์นดํ์นด ๊ฐ๋ฐ์์ ์ด์์๋ค์ด ์นดํ์นด ์ด์์ ํ.. [์ธํ๋ผ] ๋ฏธ๋ค์จ์ด, ๊ฐ๋ ์์๋ณด๊ธฐ ๋ฏธ๋ค์จ์ด๋? IT๊ธฐ์ ์ ์ ์ฌ๋ฅผ ํ๊ณ ์ฒ์์ ๋ฏธ๋ค์จ์ด๋ผ๋ ์ฉ์ด ์์ฒด๊ฐ ์์ํ์ต๋๋ค. ๋๊ตฐ๋ค๋ ๊ตฌ๊ธ๋ง์ ํตํด ์ด๋ก ์ ์ผ๋ก๋ง ๋ดค๋ ๋ฏธ๋ค์จ์ด๋ ๋์ ํ ์ดํดํ ์ ์์์ต๋๋ค. OS,DBMS๋ ๊ฐ๊ฐ์ ์ญํ ์ด ์์์ ๋ถ๋ช ํ ๋๊ผ์ง๋ง ๋ฏธ๋ค์จ์ด๋ผ๋ ์ฉ์ด๋ ๋๋ฌด๋ ๊ด๋ฒ์ํ ๋ถ์ผ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋จผ์ ์ฐ์ ์ ์ ์๋ฅผ ์ ๊น ์ดํด๋ณด์๋ฉด, ๋ฏธ๋ค์จ์ด๋ ์ ์ชฝ์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ค๊ฐ์์ ๋งค๊ฐ ์ญํ ์ ํ๋ ์ํํธ์จ์ด, ๋คํธ์ํฌ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ์ ์๋ ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ์ด๋ค ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค. 3๊ณ์ธต ํด๋ผ์ด์ธํธ/ ์๋ฒ ๊ตฌ์กฐ์์ ๋ฏธ๋ค์จ์ด๊ฐ ์กด์ฌํ๋ค. ์น ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ฝ์ด์ฌ ์ ์๊ฒ ์ค๊ฐ์ ๋ฏธ๋ค์จ์ด๊ฐ ์กด์ฌํ๊ฒ ๋๋ค. ๊ด๋ฒ์.. [MQ] ์นดํ์นด ์ปจ์๋จธ (Kafka Consumer) ์นดํ์นด์ ๋ฉ์์ง ํ์ดํ๋ผ์ธ์ ํ๋ก๋์์์ ์์ํด์ ๋ธ๋ก์ปค๋ฅผ ํตํด ์ปจ์๋จธ๋ก ๋๋๊ฒ ๋ฉ๋๋ค. ์ด๋ฒ ๊ธ์ ์นดํ์นด ๋ฉ์์ง ํ์ดํ๋ผ์ธ์ ๋ง์ง๋ง ๋ถ๋ถ์ธ ์ปจ์๋จธ์ ๊ดํด ์ ๋ฐ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ์นดํ์นด ์ปจ์๋จธ ์ปจ์๋จธ๋ ์ปจ์๋จธ API์ ๊ทธ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ปจ์๋จธ๊ฐ ํ ํฝ์ ๊ตฌ๋ (Subscribe) ํน์ ์ฝ๋๋ค(Read)๊ณ ํ๋๋ฐ, ์ด๋ ์ปจ์๋จธ๊ฐ ํ ํฝ ํํฐ์ ์ ์ ์ฅ๋ ๋ฉ์์ง๋ค์ ๊ฐ์ ธ์ค๋๊ฒ์ ๋งํฉ๋๋ค. ์นดํ์นด ์ปจ์๋จธ์ ๋ค์ 3๊ฐ์ง ํน์ง์ ํตํด ๋์ฑ ํจ์จ์ ์ด๊ณ ์ ์ฐํ ๋ฉ์์ง ๊ตฌ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Polling ๊ตฌ์กฐ ๋จ์ผ ํ ํฝ์ ๋ฉํฐ ์ปจ์๋ฐ ์ปจ์๋จธ ๊ทธ๋ฃน polling ๊ตฌ์กฐ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ๋ฉ์์ง ํ๋ ๋ฉ์์ง ํ์์ ๋ฉ์์ง๋ฅผ Push ํฉ๋๋ค. ์นดํ์นด ๊ตฌ์ฑ ์์๋ก ์๋ฅผ ๋ค๋ฉด ๋ธ๋ก์ปค๊ฐ ์ปจ์๋จธ๋ก ๋ฉ์์ง.. [MQ] Kafka ๊ฐ๋ฐ : ํฐ ์ฌ์ด์ฆ์ ๋ฉ์์ง๋ฅผ ๋ฐํ-์๋นํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ (How to Pub-Sub the large size message like a image) ์นดํ์นด๋ ๋ฉ์์ง ๋ฐํ-์๋น์ ์์ด ํ๋ฒ์ ์์ฒญํ๋ ์น๋์ ์ ํ ์ ์์ต๋๋ค. ํ๋ก๋์์ ๊ฒฝ์ฐ 'max.request.size'๋ก ๋จ์ผ send ์์ฒญ์ ํฌ๊ธฐ๋ฅผ ์ ํ๊ณ , ์ปจ์๋จธ์ ๊ฒฝ์ฐ 'fetch.max.bytes'๋ก ๋จ์ผ fetch ์์ฒญ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ ํ ์ ์์ต๋๋ค. ๋ง์ฝ ๋จ์ผ ๋ฉ์์ง์ ํฌ๊ธฐ๊ฐ ์ด ์ค์ ๋ค๋ณด๋ค ํด ๊ฒฝ์ฐ ๋ฉ์์ง๋ฅผ Pub-Sub ํ ์ ์์ต๋๋ค. ๋ํ, ์ค์ ๊ฐ์ ์ฆ๊ฐ์์ผ ๋ฐํ-์๋น๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋๋ผ๋, ๋ฉ์์ง ํฌ๊ธฐ๊ฐ ์ด๋ ์ ๋์ ์ด๋ฅด๋ฉด ์ฑ๋ฅ์ด ํ๋ฝํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๋ ๋ฉ์์ง๋ฅผ ์ชผ๊ฐ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์ ๋จ์ผ ์์ฒญ์ ๋ํ ์ค์ ๋ณด๋ค ๋ฉ์์ง ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ, ๋ฉ์์ง ๋ด์ฉ์ ์ชผ๊ฐ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๊ดํ์ฌ ์์ฑ๋ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํฉ๋๋ค. ์์ ์๋๋ฆฌ์ค ์์ ์ฝ๋๋ ๊ธฐ.. [MQ] ์นดํ์นด ๋ธ๋ก์ปค (Kafka Broker) ์นดํ์นด๋ ๋ฉ์์ง๋ฅผ ์์ฐํ๋ ํ๋ก๋์์ ์๋นํ๋ ์ปจ์๋จธ, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ ์ฅ, ์ ๋ฌํ๋ ๋ธ๋ก์ปค(Broker)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฒ ๊ธ์ ์นดํ์นด์ ์ค์ถ์ธ ๋ธ๋ก์ปค์ ๋ํด ์ ๋ฐ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ์นดํ์นด ๋ธ๋ก์ปค ์นดํ์นด ๋ธ๋ก์ปค๋ ์ผ๋ฐ์ ์ผ๋ก '์นดํ์นด'๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์คํ ์ ๋งํฉ๋๋ค. ํ๋ก๋์์ ์ปจ์๋จธ๋ ๋ณ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋๋ ๋ฐ๋ฉด, ๋ธ๋ก์ปค๋ ์นดํ์นด ์์ฒด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ '์นดํ์นด๋ฅผ ๊ตฌ์ฑํ๋ค' ํน์ '์นดํ์นด๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ค'์์ ์นดํ์นด๋ ๋ธ๋ก์ปค๋ฅผ ์๋ฏธํฉ๋๋ค. ์นดํ์นด (๋ธ๋ก์ปค) ํด๋ฌ์คํฐ ๊ตฌ์ฑ ๋ธ๋ก์ปค๋ ํ ๋ ์ด์์ ๋ ธ๋๋ก ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง ํ์ฌ (2020.03.28 v2.4.1)๋ ๋ธ๋ก์ปค๋ค๋ก๋ง ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ธ๋ก์ปค์ ์ฌ๋ฌ ๊ฐ์ง ๋ฉํ ์ ๋ณด๋ฅผ ์ ์ฅ ๊ด.. [MQ] ์นดํ์นด ํ๋ก๋์ (Kafka Producer) ์นดํ์นด๋ ๋ฉ์์ง๋ฅผ ์์ฐ, ๋ฐ์กํ๋ ํ๋ก๋์(Producer)์ ๋ฉ์์ง๋ฅผ ์๋น, ์์ ํ๋ ์ปจ์๋จธ(Consumer), ๊ทธ๋ฆฌ๊ณ ํ๋ก๋์์ ์ปจ์๋จธ ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ค๊ฐํ๋ ๋ธ๋ก์ปค(Broker)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฒ ๊ธ์ ๋ฉ์์ง ํ๋ฆ์ ์์์ธ ํ๋ก๋์์ ๋ํด ์ ๋ฐ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ์นดํ์นด ํ๋ก๋์ ํ๋ก๋์๋ ๋ณดํต ์นดํ์นด ํ๋ก๋์ API์ ๊ทธ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก๋์๋ ๋ธ๋ก์ปค์ ํน์ ํ ํฝ(ํน์ ํํฐ์ ์์ญ๊น์ง)์ ์ง์ ํ์ฌ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ํ๋ก๋์๋ฅผ ํตํด ์ ๋ฌ๋๋ ๋ฉ์์ง์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ ํฝ (Topic) ํ ํฝ ์ค ํน์ ํํฐ์ ์์น (Partiotion) ๋ฉ์์ง ์์ฑ ์๊ฐ (Timestamp) ๋ฉ์์ง ํค (Key) ๋ฉ์์ง ๊ฐ (Value) ํ๋ก๋์ ๊ตฌ์กฐ์ .. ์ด์ 1 2 3 4 5 6 7 8 ยทยทยท 10 ๋ค์