์ „์ฒด ๊ธ€ 74

DB ์ผ์ผ ์ ๊ฒ€ ์ž๋™ํ™” POC — 3๋Œ€์—์„œ 190๋Œ€๋กœ ํ™•์žฅํ•˜๊ธฐ

DB ์ผ์ผ ์ ๊ฒ€ ์ž๋™ํ™” ์‹œ์Šคํ…œ์˜ POC๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ์ฒ˜์Œ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 3๋Œ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ ์•„์นจ ์ •ํ•ด์ง„ ์‹œ๊ฐ์— ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ์ด์ƒ์„ ํƒ์ง€ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ HTML ๋ฆฌํฌํŠธ๋กœ ๋งŒ๋“ค์–ด ๋ฉ”์ผ๋กœ ๋ณด๋‚ด๋Š” ํ๋ฆ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. 3๋Œ€๊ฐ€ ์ž˜ ๋Œ์•„๊ฐ€๊ณ  ๋‚˜๋‹ˆ, ๋‹ค์Œ ๋ชฉํ‘œ๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ "๊ทธ๋Ÿผ ๋‚˜๋จธ์ง€ ์ „์ฒด ์ธ์Šคํ„ด์Šค์—๋„ ๋˜‘๊ฐ™์ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€"๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ทœ๋ชจ๋Š” ์•ฝ 190๋Œ€์˜€๊ณ , ๊ทธ 190๋Œ€๋ฅผ 10๋ช…์˜ ๋‹ด๋‹น์ž์—๊ฒŒ ๊ฐ์ž ๋งก์€ ๊ฒƒ๋งŒ ๊ณจ๋ผ ๋ณด๋‚ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์€ ๊ทธ ํ™•์žฅ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  ๋ฐฐ์„ ํ–ˆ๋Š”์ง€๋ฅผ ์ •๋ฆฌํ•œ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ "์ˆซ์ž๋ฅผ 3์—์„œ 190์œผ๋กœ ๋Š˜๋ ธ๋‹ค"๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ธฐ์กด 3๋Œ€ ํ๋ฆ„์„ ํ•˜๋‚˜๋„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ 190๋Œ€๋ฅผ ์–น์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ..

์ˆ˜๋ฐฑ ๋Œ€ DB ์ ๊ฒ€ ๋ฆฌํฌํŠธ๋ฅผ ๋‹ด๋‹น์ž๋ณ„๋กœ ๋‚˜๋ˆ  ๋ณด๋‚ด๊ธฐ

ํ•ต์‹ฌ ์š”์•ฝDB ์ผ์ผ ์ ๊ฒ€ ๋ฆฌํฌํŠธ๋ฅผ ์ฒ˜์Œ์—๋Š” ๋ช‡ ๋Œ€๋งŒ ๋Œ€์ƒ์œผ๋กœ, ํ•œ ํ†ต์˜ ๋ฉ”์ผ์— ์ „๋ถ€ ๋‹ด์•„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ ๊ฒ€ ๋Œ€์ƒ์ด ์ˆ˜๋ฐฑ ๋Œ€๋กœ ๋Š˜๋ฉด์„œ ํ•œ ํ†ต์— ๋‹ค ๋‹ด์„ ์ˆ˜ ์—†๊ฒŒ ๋์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ด๋‹น์ž๊ฐ€ ๋‹ค๋ฅด๊ณ , ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ํšŒ์‚ฌ ๋‹ด๋‹น์ž์™€ ํ˜‘๋ ฅ์‚ฌ ๋‹ด๋‹น์ž๊ฐ€ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์˜€์Šต๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ "๋‹ด๋‹น์ž(์ˆ˜์‹ ์ž) ๋‹จ์œ„๋กœ ๋ฆฌํฌํŠธ๋ฅผ ๋‚˜๋ˆ , ๊ฐ์ž ์ž๊ธฐ ๋‹ด๋‹น๋ถ„๋งŒ ๋ฐ›์•„๋ณด๊ฒŒ" ํ•˜๋Š” ๋ผ์šฐํŒ… ๊ณ„์ธต์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ๊ทธ ๊ณผ์ •์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€, ์‹ค์ œ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํฐ ์ค„๊ธฐ๋Š” ๋‹ค์„ฏ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.์ง€์ €๋ถ„ํ•œ ๋‹ด๋‹น์ž ๋งคํ•‘ ์—‘์…€์„ ํ‘œ์ค€ ํ•œ ์‹œํŠธ๋กœ ์ •์ œํ•œ๋‹ค.ํ‘œ์ค€ ์‹œํŠธ๋ฅผ ์ฝ์–ด ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ๋งŒ๋“ ๋‹ค(์ œ์™ธ·๋ฌดํšจ ์ด๋ฉ”์ผ·์ง๊ธ‰ ์ •๋ฆฌ ํฌํ•จ).์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ๋‹ด๋‹น์ž ๊ธฐ์ค€์œผ๋กœ ๋’ค์ง‘์–ด ์ˆ˜์‹ ์ž๋ณ„๋กœ ๋ฌถ๋Š”๋‹ค.๋‹ด๋‹น์ž ํ•œ ๋ช…๋ถ„ ๋ฆฌํฌํŠธ๋ฅผ ์กฐ..

PCA๋กœ ์žก์€ DB ์ด์ƒ์„ LLM์œผ๋กœ ์›์ธ·์กฐ์น˜๊นŒ์ง€ ํ•ด์„ํ•˜๊ธฐ

ํ•ต์‹ฌ ์š”์•ฝ์š”์ฆ˜ DB ์ผ์ผ ์ ๊ฒ€์„ ์ž๋™ํ™”ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ ์•„์นจ DB ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•ด์„œ ์ด์ƒํ•œ ๊ฒŒ ์žˆ์œผ๋ฉด ๋ฆฌํฌํŠธ๋กœ ๋ฝ‘์•„ ์ฃผ๋Š” ์‹œ์Šคํ…œ์ธ๋ฐ์š”. ์ด์ƒ์„ ํƒ์ง€ํ•˜๋Š” ๊ฑด ๋ฃฐ๋ฒ ์ด์Šค(์ž„๊ณ„๊ฐ’)์™€ PCA(๋น„์ง€๋„ ์ด์ƒํƒ์ง€) ๋กœ ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.ํƒ์ง€๊นŒ์ง€๋Š” ์ž˜ ๋˜๋Š”๋ฐ, ๊ทธ ์˜†์— ๋ถ™๋Š” "์›์ธ ์ถ”์ • / ๊ถŒ์žฅ ์กฐ์น˜" ๋ฌธ๊ตฌ๊ฐ€ ๊ทธ๋™์•ˆ ํ…œํ”Œ๋ฆฟ(์ •ํ•ด์ง„ ๋ฌธ๊ตฌ ๋งคํ•‘) ์ด๋ผ ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ๊ทธ ์ง„๋‹จ ๋ฌธ๊ตฌ๋ฅผ LLM(ํด๋กœ๋“œ)์ด ์ƒ์„ฑํ•˜๋„๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ฆ์€ ๋ฌด๋ฃŒ LLM์œผ๋กœ ํ•˜๊ณ , ์šด์˜์€ AWS Bedrock์˜ ํด๋กœ๋“œ๋กœ ๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.์ œ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ๋ถ™์ด๋ฉด์„œ ์ œ์ผ ์‹ ๊ฒฝ ์“ด ์›์น™์€ ์ด ์„ธ ๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.ํŒ๋‹จ(๋ฌด์—‡์ด ์ด์ƒ์ธ๊ฐ€) ์€ ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ(๋ฃฐ + PCA)๊ฐ€ ํ•œ๋‹ค.ํ•ด์„(์›์ธ·์กฐ์น˜) ๋งŒ LLM์ด ๊ทธ ํƒ์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ ์ž..

Kafka ์˜คํ”„์…‹ ์žฌ์„ค์ •์ด ๋ถ€๋ฅธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๋””์Šคํฌ ์žฅ์• 

ํ•ต์‹ฌ ์š”์•ฝ์˜ค๋žœ๋งŒ์— ๊ฐœ๋ฐœ ํด๋Ÿฌ์Šคํ„ฐ์˜ ML ์žก ์—์ด์ „ํŠธ(Kafka ์ปจ์Šˆ๋จธ)๋ฅผ ๋‹ค์‹œ ์ผฐ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ „๋ถ€์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์•ฝ 4๋ถ„ ๋’ค ๋…ธ๋“œ๊ฐ€ DiskPressure=True ๋กœ ๋–จ์–ด์ง€๋ฉด์„œ Jenkins·ArgoCD·MLflow·์„œ๋น™๊นŒ์ง€ ๊ฑฐ์˜ ๋ชจ๋“  ํŒŒ๋“œ๊ฐ€ ์ถ•์ถœ๋˜๊ฑฐ๋‚˜ Pending ์œผ๋กœ ๋ฌด๋„ˆ์กŒ์Šต๋‹ˆ๋‹ค.์›์ธ์€ ํ•œ ์ค„๋กœ ๋งํ•˜๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ์ปจ์Šˆ๋จธ๊ฐ€ ์ปค๋ฐ‹ํ•ด ๋‘” ์˜คํ”„์…‹์ด ๋งŒ๋ฃŒ๋ผ ์—†์—ˆ๊ณ , ์„ค์ •์ด earliest ์˜€๋˜ ํƒ“์—, ํ† ํ”ฝ์— ๋ณด์กด๋ผ ์žˆ๋˜ ๊ณผ๊ฑฐ ํ•™์Šต ์‹คํ–‰ ์ปค๋งจ๋“œ 22๊ฑด์„ ํ•œ๊บผ๋ฒˆ์— ๋‹ค์‹œ ์†Œ๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๊ทธ ์ปค๋งจ๋“œ๋“ค์„ ์ถฉ์‹คํžˆ ์ฒ˜๋ฆฌํ–ˆ๊ณ , ๊ทธ๋ž˜์„œ ํ•™์Šต ์žก 22๊ฐœ๊ฐ€ ๊ฑฐ์˜ ๋™์‹œ์— ์‚ด์•„๋‚˜ ๊ฐ์ž ์•ฝ 650MB์งœ๋ฆฌ ์ด๋ฏธ์ง€๋ฅผ ๋™์‹œ์— ๋‚ด๋ ค๋ฐ›๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœ ํ•ฉ์‚ฐ์œผ๋กœ ์•ฝ 14GB. ํ‰์†Œ ์—ฌ์œ ๊ฐ€ 20GB๋„ ์•ˆ ๋˜๋˜ ๋‹จ์ผ ๋…ธ๋“œ์˜ ..

ํ์‡„๋ง RHEL 6.5์— ํŒŒ์ด์ฌ ๋ฐฐํฌํ•˜๊ธฐ (2) ๋„์ปค๋กœ ์ž์ฒด์™„๊ฒฐ ๋ฒˆ๋“ค ๋งŒ๋“ค๊ธฐ

ํ•ต์‹ฌ ์š”์•ฝ1ํŽธ์—์„œ "์™œ ๊ทธ๋ƒฅ ์•ˆ ๋˜๋Š”๊ฐ€"(RHEL 6.5 = GLIBC 2.12 = ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฑฐ๋ถ€)๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํŽธ์€ ์‹ค์ œ๋กœ ์ž์ฒด์™„๊ฒฐ ๋ฒˆ๋“ค์„ ๋งŒ๋“  ๊ณผ์ •์ž…๋‹ˆ๋‹ค.ํ•ต์‹ฌ์€ RHEL 6.5์™€ ๊ฐ™์€ GLIBC 2.12 ํ™˜๊ฒฝ(manylinux2010 ๋„์ปค ์ด๋ฏธ์ง€)์—์„œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œˆ๋„์šฐ๋‚˜ ์ตœ์‹  ์šฐ๋ถ„ํˆฌ์—์„œ ๋งŒ๋“ค๋ฉด GLIBC๊ฐ€ ๋†’์•„ RHEL 6.5์—์„œ ์•ˆ ๋•๋‹ˆ๋‹ค.๋งŒ๋“œ๋Š” ๋™์•ˆ ํ•จ์ •์ด ์—ฌ๋Ÿฟ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. โ‘  ๋„์ปค์˜ Python์ด ์‹ค์ œ ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์˜€๋˜ ๊ฒƒ(๋ฒˆ๋“ค์ด 196KB๋กœ ๋‚˜์˜ด) โ‘ก RHEL 6.5์— ์—†๋Š” ๋น„ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 2๊ฐœ๋ฅผ ๊ฐ™์ด ๋‹ด์•„์•ผ ํ–ˆ๋˜ ๊ฒƒ โ‘ข ๊ฒ€์ฆ ํ™˜๊ฒฝ(CentOS 6 ์ปจํ…Œ์ด๋„ˆ)์ด ์„ธ๊ทธํดํŠธ๋กœ ์ฃฝ์€ ๊ฒƒ ๋“ฑ์ž…๋‹ˆ๋‹ค.๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋กœ๋“œ๋ฟ ์•„๋‹ˆ๋ผ ์•ฑ์ด ๋๊นŒ์ง€ ๋„๋Š”์ง€(์ˆ˜์ง‘→ํƒ์ง€→๋ฆฌํฌํŠธ), ..

ํ์‡„๋ง RHEL 6.5์— ํŒŒ์ด์ฌ ๋ฐฐํฌํ•˜๊ธฐ (1) GLIBC·wheel·manylinux

ํ•ต์‹ฌ ์š”์•ฝํŒŒ์ด์ฌ์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๋‚ฉํ’ˆํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์„ค์น˜ํ•  ์„œ๋ฒ„๊ฐ€ โ‘  RHEL 6.5(2013๋…„ ์ถœ์‹œ, ๋งค์šฐ ์˜ค๋ž˜๋œ ๋ฆฌ๋ˆ…์Šค) โ‘ก ํ์‡„๋ง(์ธํ„ฐ๋„ท ์ฐจ๋‹จ) โ‘ข Python ๋ฏธ์„ค์น˜ ๋ผ๋Š” ์„ธ ์กฐ๊ฑด์ด ๊ฒน์นœ ํ™˜๊ฒฝ์ด์—ˆ์Šต๋‹ˆ๋‹ค.์ด ์กฐํ•ฉ์—์„œ๋Š” ํ‰์†Œ์ฒ˜๋Ÿผ ์„œ๋ฒ„์—์„œ pip install ํ•œ ๋ฐฉ์ด ํ†ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์ด ์—†๊ณ , OS๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋ผ์„œ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„์˜ˆ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.๊ฐ€์žฅ ๊นŠ์€ ์›์ธ์€ GLIBC(๋ฆฌ๋ˆ…์Šค์˜ ์ตœํ•˜๋‹จ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. RHEL 6.5๋Š” GLIBC 2.12(2010๋…„๋Œ€ ์ดˆ)์ธ๋ฐ, ์š”์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋” ๋†’์€ GLIBC๋ฅผ ์š”๊ตฌํ•ด์„œ ๊ฑฐ๋ถ€๋‹นํ•ฉ๋‹ˆ๋‹ค. "JDK 17๋กœ ๋นŒ๋“œํ•œ jar๋ฅผ JDK 8์—์„œ ๋ชป ๋Œ๋ฆฌ๋Š” ๊ฒƒ"๊ณผ ๊ฐ™์€ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.ํ•ด๊ฒฐ ๋ฐฉํ–ฅ์€ Python ์‹คํ–‰๊ธฐ + ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ + ..

์นดํ”„์นด ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ณด์žฅ๊ณผ exactly-once

ํ•ต์‹ฌ ์š”์•ฝ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง•์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ๋‹จ์ ˆ·์žฌ์‹œ๋„·์žฅ์•  ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€ ์œ ์‹ค๊ณผ ์ค‘๋ณต์ด ์ƒ๊น๋‹ˆ๋‹ค.์ „๋‹ฌ ๋ณด์žฅ์€ 3์ข…์ž…๋‹ˆ๋‹ค. at-most-once(์œ ์‹ค ๊ฐ€๋Šฅ·์ค‘๋ณต ์—†์Œ), at-least-once(์œ ์‹ค ์—†์Œ·์ค‘๋ณต ๊ฐ€๋Šฅ, ์‹ค๋ฌด ๊ธฐ๋ณธ), exactly-once(๋‘˜ ๋‹ค ์—†์Œ, ๋น„์Œˆ).์ปจ์Šˆ๋จธ์˜ ์ฒ˜๋ฆฌ์™€ ์˜คํ”„์…‹ ์ปค๋ฐ‹ ์ˆœ์„œ๊ฐ€ ์œ ์‹ค/์ค‘๋ณต์„ ๊ฐ€๋ฆ…๋‹ˆ๋‹ค. (์ปค๋ฐ‹ ๋จผ์ €=์œ ์‹ค, ์ฒ˜๋ฆฌ ๋จผ์ €=์ค‘๋ณต)exactly-once๋Š” ๋ฉฑ๋“ฑ ํ”„๋กœ๋“€์„œ + ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์นดํ”„์นด ๋‚ด๋ถ€์—์„œ ๋‹ฌ์„ฑํ•˜์ง€๋งŒ, ์™ธ๋ถ€ ๋ถ€์ˆ˜ํšจ๊ณผ๊นŒ์ง€๋Š” ๋ณด์žฅ ๋ชป ํ•ด ์ปจ์Šˆ๋จธ ๋ฉฑ๋“ฑ์„ฑ์ด ๊ฒฐ๊ตญ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.๋ชฉ์ฐจ๋“ค์–ด๊ฐ€๊ธฐ ์ „ — ์นดํ”„์นด ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ถ€ํ„ฐ ์งš๊ณ  ๊ฐ€๊ธฐ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์€ ์™œ ์–ด๋ ค์šด๊ฐ€ — ์œ ์‹ค๊ณผ ์ค‘๋ณต์ „๋‹ฌ ๋ณด์žฅ 3์ข… — at-most-once / at-least-once / exactly-once์˜คํ”„์…‹๊ณผ ..

DB ๋ชจ๋‹ˆํ„ฐ๋ง ์ด์ƒ ํƒ์ง€์™€ ์ง„๋‹จ ๋ฆฌํฌํŠธ ๋กœ์ง ๊ตฌ์„ฑ

ํ•ต์‹ฌ ์š”์•ฝ์‚ฌ๋‚ด DB ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๋ฉด์„œ, ๋งค์ผ ์•„์นจ ์‚ฌ๋žŒ์ด ๋ˆˆ์œผ๋กœ ํ›‘๋˜ DB ์ ๊ฒ€์„ ์ž๋™ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ๋‘ ๊ฐ€์ง€ ์ด์ƒ ํƒ์ง€๋ฅผ ํ•œ ํ™”๋ฉด์— ๋…น์—ฌ ๋„ฃ๋Š” ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.๋ฃฐ๋ฒ ์ด์Šค 3์ข… — ์ ˆ๋Œ€ ์ž„๊ณ„ ์ดˆ๊ณผ(๊ทธ๋‚  ์ตœ๊ณ ๊ฐ’์ด ๊ฒฝ๊ณ /์œ„ํ—˜ ์„ ์„ ๋„˜๋Š”๊ฐ€), ์ „์ผ ๋Œ€๋น„ ๊ธ‰์ฆ(์ผํ‰๊ท ์ด 2๋ฐฐ ์ด์ƒ ๋›ฐ์—ˆ๋Š”๊ฐ€), ํŒจํ„ด ๋ณ€ํ™”(% ์ง€ํ‘œ๊ฐ€ ์ „์ผ ๋Œ€๋น„ 20%p ์ด์ƒ ์˜ฌ๋ž๋Š”๊ฐ€)๋ฅผ ๋ถ„ ๋‹จ์œ„๋กœ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. DB๋งˆ๋‹ค ์ž„๊ณ„๊ฐ’์ด ๋‹ฌ๋ผ ์„ค์ • ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.๋น„์ง€๋„ ํ•™์Šต(PCA ๋ณต์›์˜ค์ฐจ) — ํ•œ ๋‹ฌ์น˜ ์ •์ƒ ํŒจํ„ด์„ ์ฃผ์„ฑ๋ถ„์œผ๋กœ ์••์ถ•ํ–ˆ๋‹ค๊ฐ€ ๋ณต์›ํ•ด, ํ‰์†Œ์™€ ๋‹ค๋ฅธ ์กฐํ•ฉ์ด ๋“ค์–ด์˜ค๋ฉด ๋ณต์›์ด ์ž˜ ์•ˆ ๋˜๋Š” ์„ฑ์งˆ(๋ณต์›์˜ค์ฐจ ์ฆ๊ฐ€)๋กœ "์ž„๊ณ„๋Š” ์•ˆ ๋„˜์—ˆ์ง€๋งŒ ํ‰์†Œ์™€ ๋‹ค๋ฅธ ๋‚ "์„ ์žก์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์ง€ํ‘œ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์ง€ํ‘œ๊ฐ€ ๋™์‹œ์— ํ‰์†Œ ์กฐํ•ฉ์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ์กฐํ•ฉ ์ด์ƒ์„ ์žก๋Š”..

MySQL ์ธ๋ฑ์Šค ๋™์ž‘ ์›๋ฆฌ์™€ ์กฐ์ธ ์ตœ์ ํ™”

๋ชฉ์ฐจ์ธ๋ฑ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€ — ํ’€ ์Šค์บ”์˜ ๊ณ ํ†ตํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค vs ๋ณด์กฐ ์ธ๋ฑ์Šค (InnoDB์˜ ํ•ต์‹ฌ ๊ตฌ์กฐ)์กฐ์ธ์„ ๋งŒ๋‚˜๋ฉด DB๋Š” ์–ด๋–ป๊ฒŒ ์›€์ง์ด๋Š”๊ฐ€์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ๋ฌด์—‡์„ ๋ณด๊ณ  ํŒ๋‹จํ•˜๋Š”๊ฐ€์กฐ์ธ ๋ง๊ณ ๋„ — ์ธ๋ฑ์Šค๊ฐ€ ํ™œ์•ฝํ•˜๋Š” ์ˆœ๊ฐ„๋“ค์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์–ด๋„ ์•ˆ ํƒ€๋Š” ๊ฒฝ์šฐ๋“ค (์•ˆํ‹ฐํŒจํ„ด)์ •๋ฆฌ — ์ธ๋ฑ์Šค ์„ค๊ณ„ ์›์น™1. ์ธ๋ฑ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€ — ํ’€ ์Šค์บ”์˜ ๊ณ ํ†ต์ธ๋ฑ์Šค๊ฐ€ ์—†์œผ๋ฉด ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋Š”๊ฐ€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํšŒ์› 100๋งŒ ๋ช…์ด ๋“ค์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด๋ฉ”์ผ์ด kim@example.com์ธ ์‚ฌ๋žŒ ํ•œ ๋ช…์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.SELECT * FROM users WHERE email = 'kim@example.com';์ธ๋ฑ์Šค๊ฐ€ ์—†๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด ํ•œ ๋ช…์„ ์ฐพ๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์˜ ์ฒซ ํ–‰๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ํ–‰๊นŒ์ง€ ์ „๋ถ€ ๋‹ค ์ฝ์–ด ๋ด…..

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ ์ •๋ฆฌ (3) PostgreSQL

ํ•ต์‹ฌ ์š”์•ฝ์ตœ๊ทผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ผ์ผ ์ ๊ฒ€์„ ์ž๋™ํ™”ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋งก๊ฒŒ ๋˜๋ฉด์„œ, DBA๊ฐ€ ๋งค์ผ ๋“ค์—ฌ๋‹ค๋ณด๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๋“ค์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๊ธ€์—์„œ MySQL, ๋‘ ๋ฒˆ์งธ ๊ธ€์—์„œ Oracle์„ ๋‹ค๋ค˜๋Š”๋ฐ, ์ด๋ฒˆ PostgreSQL์ด ์‹œ๋ฆฌ์ฆˆ์˜ ๋งˆ์ง€๋ง‰์ž…๋‹ˆ๋‹ค. PostgreSQL์€ ๊ฐ™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉด์„œ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ์•ž์˜ ๋‘˜๊ณผ ๋˜ ๋‹ฌ๋ผ์„œ, ์ง€ํ‘œ ์ด๋ฆ„์—๋„ ๋‹ค๋ฅธ DB์—๋Š” ์—†๋Š” ๋‹จ์–ด๋“ค์ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค. Dead Tuple, VACUUM, Age, autovacuum ๊ฐ™์€ ๋ง์ด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋„ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด ๋‘๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” PostgreSQL(๋ฐ PostgreSQL on RDS)์—์„œ ์ž์ฃผ ๋ณด๋Š” ์ง€ํ‘œ๋“ค์„ โ‘  ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ โ‘ก ํ‰์†Œ ์–ด๋А ์ •๋„ ๊ฐ’์ด ์ •์ƒ์ธ์ง€(์‹ค์ œ ๊ด€์ธก ..