Hamutaro - Hamtaro 4

Database 3

[Redis] Redis ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์Šคํ”„๋ง๋ถ€ํŠธ ์‚ฌ์šฉ ์˜ˆ์ œ

Redis๋ž€?Redis๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ Key-Value ์ €์žฅ์†Œ (์ธ๋ฉ”๋ชจ๋ฆฌ)๋น ๋ฅธ ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ Redis ์‚ฌ์šฉ ์ด์œ ์บ์‹œ (Cache)DB ๋ถ€ํ•˜ ๊ฐ์†Œ์‘๋‹ต ์†๋„ ํ–ฅ์ƒ์˜ˆ) ์ธ๊ธฐ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ์ˆ˜, ์ธ๊ธฐ ์ƒํ’ˆ ๋ชฉ๋ก, ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ •๋ณด ๋“ฑ๋ถ„์‚ฐ ๋ฝ (Distributed Lock)์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ๊ฐ™์€ ์ž์›์„ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ์ œ์–ด์˜ˆ) ์žฌ๊ณ  ์ฐจ๊ฐ, ํฌ์ธํŠธ ์ฐจ๊ฐ์„ธ์…˜ ์ €์žฅ์†Œ / ํ† ํฐ ์ €์žฅ์†Œ๋กœ๊ทธ์ธ ์„ธ์…˜, RefreshToken ์ €์žฅ Redis ๊ธฐ๋ณธ ๊ตฌ์กฐRedis๋Š” ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๋ผ Key-Value ๊ตฌ์กฐKey๋Š” ๋ฌธ์ž์—ดValue๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌธ์ž์—ดTTL(๋งŒ๋ฃŒ ์‹œ๊ฐ„) ์„ค์ • ๊ฐ€๋Šฅ -> ์ž๋™ ์‚ญ์ œkey → value"USER:1" → {name: "ํ™๊ธธ๋™", age: 25}"RT:..

Database 2026.02.12

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์ •๊ทœํ™” ๊ณผ์ •

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

Database 2024.11.03

[Oracle] PIVOT / UNPIVOT์œผ๋กœ ํ–‰,์—ด ์ „ํ™˜ํ•˜๊ธฐ

PIVOT ํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ์—ด ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜์˜ˆ์‹œ (EMPLOYEE ํ…Œ์ด๋ธ”)DEPTJOBSALARYSalesManager5000SalesClerk1500ITManager4000ITClerk2000  ์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ PIVOT์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ถ€์„œ๋ณ„๋กœ JOB์„ ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  SALARY๋ฅผ ํ‘œ์‹œํ•ด๋ณด์ž. SELECT *FROM ( SELECT DEPT, JOB, SALARY FROM employee) PIVOT ( SUM(SALARY) FOR JOB IN ('Manager' AS MANAGER, 'Clerk' AS CLERK)); ๊ฒฐ๊ณผDEPTMANAGERCLERKSales50001500IT40002000  UNPIVOT ์—ด ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜์˜ˆ์‹œ (DEPARTMENT_SALARY)DEPT..

Database 2024.07.21