[Redis] Redis๋กœ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ๊ด€๋ฆฌํ•˜๊ธฐ

[Redis] Redis๋กœ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ๊ด€๋ฆฌํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ ์ค‘ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค. ์ฒ˜์Œ์—” SearchLog ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด mysql์— ์ €์žฅํ• ๊นŒ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒ€์ƒ‰ ์‹œ ํ•ญ์ƒ ๊ฒ€์ƒ‰ ๊ธฐ๋ก์„ ์กฐํšŒํ•ด์™€์•ผ ํ–ˆ๊ณ ๋‹ค. ํŠนํžˆ ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ๊ฐœ์ˆ˜๋ฅผ 10๊ฐœ๋กœ ์ œํ•œํ•ด๋‘์—ˆ๋Š”๋ฐ, ๋งŒ์•ฝ ๊ฒ€์ƒ‰ ๊ธฐ๋ก์ด ๊ฝ‰ ์ฐผ์„ ๋•Œ ์ƒˆ๋กœ insert ํ•˜๊ธฐ ์œ„ํ•ด์„  ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ธฐ๋ก์„ ์ œ๊ฑฐํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ ํ›„ delete ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค. ์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฉ”๋ชจ๋ฆฌ DB์ธ Redis๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ ˆ๋””์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ณ  SearchLog + memberId ๋ฅผ key๋กœ ๋‘์–ด ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค. ๋ ˆ๋””์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ๋Š” leftpush,leftpop,rightpush,rightpop ๋“ฑ์ด ์žˆ์–ด..

  • textsms
[Redis] Spring boot ์—์„œ Redis๋กœ ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ

[Redis] Spring boot ์—์„œ Redis๋กœ ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ

Cache๋ž€? ๋‚˜์ค‘์— ํ•  ์š”์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅ ํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ๋น ๋ฅด๊ฒŒ ์„œ๋น„์Šค ํ•ด ์ฃผ๋Š” ๊ฒƒ Look aside Cache(์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ๋ฐฉ์‹) DB๋ฅผ ๊ฐ€๊ธฐ ์ „์— Cache์— ๋จผ์ € ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ•ด๋ณธ๋‹ค. ๋งŒ์•ฝ Cache์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ , ์—†๋‹ค๋ฉด DB๋ฅผ ์ฝ์€ ํ›„ Cache์— ์ €์žฅ & ๊ฒฐ๊ณผ ๋ฆฌํ„ด Write Back(๋กœ๊ทธ๋ฅผ DB์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ, ์“ฐ๊ธฐ ์—ฐ์‚ฐ์ด ๋งŽ์€ ๊ฒฝ์šฐ) ์บ์‹œ์— ๋จผ์ € ์ €์žฅํ–ˆ๋‹ค๊ฐ€, ํŠน์ • ์‹œ์ ๋งˆ๋‹ค DB์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹ ex. ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(๋ฐฐ์น˜ ์ž‘์—…) - DB insert ์ฟผ๋ฆฌ๋ฅผ 1๋ฒˆ์”ฉ * 500๋ฒˆ >> insert์ฟผ๋ฆฌ 500๊ฐœ ํ•ฉ์นœ ๊ฒƒ * 1๋ฒˆ ๋‹จ์ : ์žฅ์• ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์œ„ํ—˜์ด ์žˆ๋‹ค. ์™œ๋ƒ๋ฉด ๋ฆฌ๋ถ€ํŒ… ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ ์บ์‹œ๊ฐ€ ๋˜๋Š” ๋Œ€์ƒ๋“ค - ๋‹จ์ˆœํ•œ..

  • textsms
[Spring] AOP ๊ฐœ๋… ๋ฐ ์ ์šฉํ•˜๊ธฐ

[Spring] AOP ๊ฐœ๋… ๋ฐ ์ ์šฉํ•˜๊ธฐ

1. AOP๋ž€? - ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Aspect Oriented Programming) - ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์„ ๋ฐ”๊ฟ”๋ณด์ž๋Š” ์˜๋ฏธ - ํšก๋‹จ ๊ด€์‹ฌ์‚ฌ(Cross-Cutting Concern)์˜ ๋ถ„๋ฆฌ๋ฅผ ํ—ˆ์šฉํ•จ์œผ๋กœ์จ ๋ชจ๋“ˆ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ - ์—ฌ๋Ÿฌ ๊ฐ์ฒด์— ๊ณตํ†ต์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ด๊ณ  ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ์ค„๋กœ AOP๋ฅผ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด, AOP๋Š” ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์™œ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?? ์œ„ ์‚ฌ์ง„์€ ์šฐ์•„ํ•œ ํ…Œํฌ 10๋ถ„ ํ…Œํฌํ†ก ์œ ํŠœ๋ธŒ ์˜์ƒ์—์„œ ์บก์ณํ•œ ์‚ฌ์ง„์ด๋‹ค. ๋งŒ์•ฝ 3๊ฐœ์˜ ๋ฉ”์†Œ๋“œ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๋ฉ”์†Œ๋“œ ์‹œ์ž‘ ์ง€์ ๊ณผ ๋๋‚˜๋Š” ์ง€์ ์˜ ์‹œ๊ฐ„์„ ์ธก์ •ํ•ด ์ด์˜ ์ฐจ์ด๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค...

  • textsms
๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ, ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์“ฐ์‹œ๋‚˜์š”? (feat. ์„ฑ๋Šฅ ๊ฐœ์„ )

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ, ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์“ฐ์‹œ๋‚˜์š”? (feat. ์„ฑ๋Šฅ ๊ฐœ์„ )

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์ง์—… ์ถ”์ฒœ api์—์„œ ๋ฐ˜ํ™˜๊นŒ์ง€ ํ‰๊ท  6์ดˆ ์ด์ƒ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. 100๊ฐœ๊ฐ€ ๋„˜๋Š” ์ง์—… csv์— ๊ฐ๊ฐ์˜ csv๋งˆ๋‹ค 6000๊ฐœ๊ฐ€ ๋„˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๊ฑธ ์ „๋ถ€ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”๊ฒŒ ๋‹น์—ฐํ–ˆ๋‹ค. ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์ ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ ๋งˆ๊ฐ ๊ธฐํ•œ์ด ์žˆ์—ˆ๋˜์ง€๋ผ ์‚ฌ์šฉ๋ฒ•๋งŒ ์ตํ˜€ ์ ์šฉํ–ˆ์—ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚˜๊ณ  ๋‹ค์‹œ ๋Œ์•„์™€ ๊ณต๋ถ€ํ•ด๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์›Œ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ž์„ธํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๋น„๋™๊ธฐ์™€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋Š” ๊ฐ™์€ ๋œป์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ์™€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋Š” ๋น„์Šทํ•˜๋‹ค ์ฐฉ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ™์€ ๋œป์ด ์•„๋‹ˆ๋‹ค. ์˜๋ฏธ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋™๊ธฐ= ์ˆœ์„œ ์Šค๋ ˆ๋“œ= ๊ณต๊ฐ„ or ์ผ๊พผ ๊ทธ๋Ÿผ ์ด์ œ, ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž ๋™๊ธฐ & ๋น„๋™๊ธฐ ๋™๊ธฐ: ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ ๋น„๋™๊ธฐ: ์š”์ฒญ์„ ๋ฐ›์€ ๋’ค ๋จผ์ € ..

  • textsms
[HttpSession] session์˜ ๋™์ž‘ ์›๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ

[HttpSession] session์˜ ๋™์ž‘ ์›๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ

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

  • textsms
AWS S3 ์ด๋ฏธ์ง€ ๊ด€๋ จ ๋กœ์ง๊ณผ DB๋กœ์ง ํŠธ๋žœ์žญ์…˜ ๋ถ„๋ฆฌ (DB ์ปค๋„ฅ์…˜ ๋ฌธ์ œ)

AWS S3 ์ด๋ฏธ์ง€ ๊ด€๋ จ ๋กœ์ง๊ณผ DB๋กœ์ง ํŠธ๋žœ์žญ์…˜ ๋ถ„๋ฆฌ (DB ์ปค๋„ฅ์…˜ ๋ฌธ์ œ)

์ฝ”๋“œ๋ฅผ ์งœ๋‹ค๋ณด๋ฉด ๊ฒŒ์‹œ๊ธ€๊ณผ ๊ฐ™์€ ์—”ํ„ฐํ‹ฐ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ ํŒŒ์ผ์„ ์ถ”๊ฐ€๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งค์šฐ ๋งŽ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๊ณต์—ฐ ํฌ์ŠคํŠธ๋ฅผ DB์— ์ €์žฅํ•˜๋ฉด์„œ ์ธ๋„ค์ผ ์ด๋ฏธ์ง€์™€ ๋‚ด์šฉ์— ๋“ค์–ด๊ฐˆ ์ด๋ฏธ์ง€ ๋“ฑ์ด AWS S3์— ํ•จ๊ป˜ ์ €์žฅ๋˜์—ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กฐํšŒํ•  ๋•Œ๋„ AWS S3์—์„œ ์กฐํšŒํ•˜๋Š” ๋กœ์ง๊ณผ DB์—์„œ ํฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋กœ์ง์ด ํ•จ๊ป˜ ์ˆ˜ํ–‰๋œ๋‹ค. ์ด๋•Œ ์™ธ๋ถ€์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒํ•ด์˜ค๋Š” ๋กœ์ง๊ณผ DB์—์„œ ์กฐํšŒํ•ด์˜ค๋Š” ๋กœ์ง์„ ํ•œ ํŠธ๋žœ์žญ์…˜์— ๋ฌถ์œผ๋ฉด ์•ˆ ์ข‹์ง€ ์•Š์„๊นŒ?? ๋ฌธ๋“ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ  ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ ์—ญ์‹œ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ์ด๋ฏธ ๊ณ ๋ฏผํ–ˆ๋˜ ํ”์ ๋“ค์ด ๋ณด์˜€๋‹ค. ์™œ ํ•œ ํŠธ๋žœ์žญ์…˜์— ๋ฌถ์œผ๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ?? ํŠธ๋žœ์žญ์…˜์˜ ํŠน์ง•์— ์ฃผ๋ชฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ•œ ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋˜๋ฉด DB์™€์˜ ์ปค๋„ฅ์…˜์„ ๋งบ๊ณ  ํŠธ๋žœ์žญ์…˜์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ์ปค๋„ฅ์…˜์„ ๋Š์ง€ ์•Š๋Š”๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—..

  • textsms