๐Ÿ’ป 152

[Pinot] Apache Pinot ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Apache Pinot ์šด์˜์ด ์•„๋‹Œ, ๊ฐœ๋ฐœ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ธฐ์—ฌ๋ฅผ ๋ชฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•œ๋‹ค. WSL ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค. Running Pinot locally - Apache Pinot Docs Note that some installations of the JDK do not contain the JNI bindings that are necessary to run all tests, if you see any java.lang.UnsatisfiedLinkError while running tests, you may need to change your JDK. If using Homebrew, you may install AdoptOpenJDK docs.pinot.apache.org 1. Java..

๐Ÿ’ป/MLOps 2023.03.05

[Pinot] Apache Pinot?

Apache Pinot์˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์š”์•ฝํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. https://docs.pinot.apache.org/ "Apache Pinot์€ ๋น ๋ฅธ ์‘๋‹ต์†๋„๋กœ ๋งŽ์€ ๋ถ„์„์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š”, ์‹ค์‹œ๊ฐ„ ๋ถ„์‚ฐ OLAP ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ" Kafka, Kinesis ๊ฐ™์€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋“ค์—์„œ ๋‹ค์ด๋ ‰ํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ์ฆ‰์‹œ ์ฟผ๋ฆฌ ์‹คํ–‰์„ ์œ„ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฟ ์•„๋‹ˆ๋ผ Hadoop, S3, ADLS, GCS์™€ ๊ฐ™์€ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์˜ ์ค‘์‹ฌ ๋ถ€์—๋Š”, ๋น ๋ฅธ ์‘๋‹ต ์†๋„๋ฅผ ์œ„ํ•œ ์Šค๋งˆํŠธ ์ธ๋ฑ์‹ฑ, ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ์ง‘๊ณ„ ๊ธฐ๋Šฅ์„ '๊ณ๋“ค์ธ' ์ปฌ๋Ÿผ ์ง€ํ–ฅ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋‹ค. ์ด ์ ์ด Pinot์„ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์ œ๊ณต์— ์™„๋ฒฝํ•œ ๋„๊ตฌ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Pinot์€ ๋‚ด๋ถ€ ๋Œ€์‹œ๋ณด๋“œ,..

๐Ÿ’ป/MLOps 2022.11.05

[๋ธ”๋ก์ฒด์ธ] quorum-dev-quickstart ์—ฐ๋™ ํ…Œ์ŠคํŠธ

Windows WSL2 ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ 1. Node.js ์„ค์น˜ # 1. cURL ์„ค์น˜ sudo apt-get install curl # 2. nvm ์„ค์น˜(Node.js Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh # 3. node.js ์„ค์น˜ nvm install --lts 2. docker desktop ์‹คํ–‰ docker --version 3. truffle ์„ค์น˜ npm install truffle -g 4. quorum-dev-quickstart ๋‹ค์šด๋กœ๋“œ npx quorum-dev-quickstart 5. web3js-quorum ์„ค์น˜ ์—ฐ๋™ํ•  ํ”„๋กœ์ ํŠธ์— web3js-quorum์„ ์„ค์น˜ํ•ด์ฃผ์ž..

[๋ธ”๋ก์ฒด์ธ] Windows ํ™˜๊ฒฝ์—์„œ Ganache ๋„คํŠธ์›Œํฌ ํ…Œ์ŠคํŠธ

Ganache? Ganache๋Š” ๊ฐ„์ด ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ์ด๋‹ค. Ganache๋ฅผ ์„ค์น˜ํ•˜๋ฉด, ๋กœ์ปฌ์—์„œ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ตฌ์„ฑ๋˜๊ณ , 100ETH๋ฅผ ๊ฐ€์ง„ 10๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๊ณ„์ •์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ ์‹œ์— ๋น ๋ฅด๊ฒŒ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ธ”๋ก์ฒด์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ ํ…Œ์ŠคํŠธ ์‹œ ์‹ค์ œ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ณด๋‹ค ์‹œ๊ฐ„์„ ํ›จ์”ฌ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. Ganache - Truffle Suite Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances. trufflesuite.com ๊ฐœ๋ฐœ..

[Backend] AJAX์˜ ์ดํ•ด

AJAX (Asynchronous Javascript And XML) JavaScript๋ฅผ ์ด์šฉํ•ด ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€ ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด, ํ™”๋ฉด์˜ ์ผ๋ถ€๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฒฐ๊ตญ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๋„์šฐ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์€ HTML/CSS์ด๋‹ค. Javascript๋กœ ํ™”๋ฉด์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ๋„ ๊ฒฐ๊ตญ DOM ๊ฐ์ฒด์— ์ ‘๊ทผํ•ด์„œ HTML ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Javascript๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ™”๋ฉด์˜ ํŠน์ • ๋ถ€๋ถ„๋งŒ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ์ด ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค๋ฉด, ์‘๋‹ต์ด ์˜ฌ ๋•Œ ๊นŒ์ง€ ํ™”๋ฉด์„ ์ œ๋Œ€๋กœ ๋ณผ ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋‹น์—ฐํ•˜๊ฒŒ๋„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์š”์ฒญํ•ด์•ผ ํ•œ๋‹ค. ๋น„๋™๊ธฐ์ ์ด๋ž€ ์ผ์„ ์ฐจ๋ก€์ฐจ๋ก€ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํŠน์ • ์—…๋ฌด๋ฅผ ๋‹ค๋ฅธ ๊ณณ์— ์˜๋ขฐํ•˜๊ณ , ๋๋‚œ ์ผ์„ ํƒ๋ฐฐํ•จ์— ๋†“๊ณ  ..

๐Ÿ’ป/์›น 2022.07.11

[Javascript] ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ, ๋„Œ-๋ธ”๋กœํ‚น)

Javascript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(Single Thread)์™€ ๋„Œ-๋ธ”๋กœํ‚น(Non-Blocking)์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์–ผํ• ๋ณด๋ฉด ์ด ๋‘๊ฐ€์ง€ ํŠน์„ฑ์€ ์–‘๋ฆฝ ๋ถˆ๊ฐ€๋Šฅํ•ด๋ณด์ธ๋‹ค. "์–ด๋–ป๊ฒŒ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ผ์„ ํ•  ์ˆ˜ ์—†์œผ๋ฉด์„œ, ํ•˜๋‚˜์˜ ์ผ์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€?" ๋‹ต์€ JS ์—”์ง„๊ณผ ๋ธŒ๋ผ์šฐ์ €์˜ ๋™์ž‘ ๊ตฌ์กฐ์— ์žˆ๋‹ค. JS ์—”์ง„ ์ž์ฒด๋Š” ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ๋กœ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋‹ค. ๊ณ ๋ง™๊ฒŒ๋„ ์ด ๋‹จ์ˆœํ•œ ์นœ๊ตฌ๋ฅผ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ Web API๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. JS ์—”์ง„์€ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ์ผ์„ Web API์— ์š”์ฒญํ•ด ๋†“๊ณ , ๋ณธ์ธ์ด ๋Š˜ ํ•˜๋˜๋Œ€๋กœ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ๋งŒ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Web API๋Š” ๋ณธ์ธ์ด ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ Callback Qu..

๐Ÿ’ป/์›น 2022.07.11

[CI/CD] Vue ํ”„๋กœ์ ํŠธ๋ฅผ Jenkins (docker-in-docker) ๋ฐฐํฌํ•˜๊ธฐ

๐Ÿ“ƒ๊ฐœ์š” ๋„์ปค๋กœ Jenkins ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. Jenkins ์ปจํ…Œ์ด๋„ˆ์— docker-in-docker ๊ด€๋ จ ์„ธํŒ…์„ ํ•œ๋‹ค. GitLab ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹์ด ๋ฐœ์ƒํ•˜๋ฉด, ์„ค์ •ํ•œ Dockerfile์„ ์‹คํ–‰ํ•˜๋„๋ก Jenkins๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์†Œ์Šค๋ฅผ ๋นŒ๋“œํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ nginx ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด ์ ์žฌํ•˜๋„๋ก Dockerfile์„ ์ž‘์„ฑํ•œ๋‹ค. ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๋ฉด, Jenkins๊ฐ€ ์ž๋™์œผ๋กœ ๋นŒ๋“œ/๋ฐฐํฌํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŽฏ ์ž‘์—…ํ™˜๊ฒฝ ๊ตฌ์„ฑ 1. WSL2 ์„ค์น˜ ๋งˆ์นจ, ์–ผ๋งˆ์ „ ์ปดํ“จํ„ฐ๋ฅผ ํฌ๋งทํ•ด์„œ WSL์ด ์ง€์›Œ์ง„ ์ƒํƒœ์˜€๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ์นœ์ ˆํ•œ ๊ฐ€์ด๋“œ๋ฅผ ๋ณด๊ณ  WSL2๋ฅผ์„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋‹ค(1). ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์„ ๋” ์พŒ์ ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ„ฐ๋ฏธ๋„์„ ์„ค์น˜ํ•˜๊ณ (2), ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ๋ฅผ ๋ฐ”ํƒ•ํ™”๋ฉด์—..

[BackEnd] CI/CD, Jenkins๋ž€?

? ๊ฐœ๋ฐœ์ž๋Š” ๊ฐœ๋ฐœ๋งŒ ์ž˜ํ•˜๋ฉด ๋˜๋Š” ๊ฑฐ ์•„๋‹ˆ์˜€๋‚˜? ๊ฐœ๋ฐœ์ž๋ฅผ ๋ฐฉํ•ดํ•˜๋Š” ๊ฐœ๋ฐœ ์™ธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์žˆ๊ฒ ์ง€๋งŒ, ์—ฌ๊ธฐ์„  2๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž. ๋ฌธ์ œ 1. ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์ด ๋„ˆ๋ฌด ์ŠคํŠธ๋ ˆ์Šค์•ผ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ 10๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŒŒํŠธ๋ฅผ ๋‚˜๋ˆ  ๊ฐœ๋ฐœํ•˜๋Š” ๋ชจ์Šต์„ ์ƒ์ƒํ•ด๋ณด์ž. ๊ฐ์ž ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด, ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ ๋งˆ๋‹ค ๊ฐœ๋ฐœ์ž๋“ค์€ ์ฝ”๋“œ ๋ฒ ์ด์Šค์— ์ปค๋ฐ‹์„ ๋„ฃ์„ ๊ฒƒ์ด๋‹ค. ์ฐฉํ•˜๊ฒŒ ํ•ฉ์ณ์ง€๋ฉด ์ฐธ ์ข‹๊ฒ ์ง€๋งŒ ์ปค๋ฐ‹๋“ค์„ ๋จธ์ง€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด "๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ๋ˆ„๊ตฌ์•ผ, ๋‚ด ๊บผ ์•ˆ ๋˜์ž–์•„! "์™€ ๊ฐ™์€ ์•„์šฐ์„ฑ์ด ํ„ฐ์ ธ๋‚˜์˜ค๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ์ด๋ฅผ 'Merge hell'์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์‚ฌํƒœ๋ฅผ ๋ง‰์„ ๋ฐฉ๋ฒ•์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ์ปค๋ฐ‹์„ ํ•  ๋•Œ ๋งˆ๋‹ค ์ฝ”๋“œ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ์™€ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ๋‹น์—ฐํžˆ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ๊ท€..