ํ‰๊ท ์ด ์‰ฌ์›Œ์ง„ ์‹œ๋Œ€์˜ ๊ธฐ์ค€
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ’ฌ ์ƒ๊ฐ ์ •๋ฆฌ
๋“ค์–ด๊ฐ€๋ฉฐ์š”์ฆ˜ AI๋ฅผ ๋ณด๋ฉด์„œ ์ž์ฃผ ๋“œ๋Š” ์ƒ๊ฐ์ด ์žˆ๋‹ค.์ด์ œ ๋งŽ์€ ์˜์—ญ์—์„œ ํ‰๊ท ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ์ผ์€ ์ ์  ์‰ฌ์›Œ์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ์ „์—๋Š” ์ผ์ • ์ˆ˜์ค€์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธด ์‹œ๊ฐ„์ด ํ•„์š”ํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” ๋„๊ตฌ์˜ ๋„์›€์œผ๋กœ ๊ฝค ๊ทธ๋Ÿด๋“ฏํ•œ ์ฒซ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ, ์ด ๋ณ€ํ™”๊ฐ€ ๊ฒฝํ—˜์˜ ๊ฐ€์น˜๋ฅผ ๋‚ฎ์ถ˜๋‹ค๊ณ  ๋А๊ปด์ง€์ง€๋Š” ์•Š๋Š”๋‹ค. ์˜คํžˆ๋ ค ๋ฐ˜๋Œ€์— ๊ฐ€๊น๋‹ค. ํ‰๊ท ์— ๋„๋‹ฌํ•˜๋Š” ์ผ์ด ์‰ฌ์›Œ์งˆ์ˆ˜๋ก, ๋ฌด์—‡์ด ์ข‹์€ ๊ฒฐ๊ณผ์ธ์ง€ ์•Œ์•„๋ณด๋Š” ๊ธฐ์ค€์€ ๋” ์ค‘์š”ํ•ด์ง„๋‹ค. Suno๋ฅผ ๋ณด๋ฉฐ ๋“  ์ƒ๊ฐ๋‚˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์ „์— ์Œ์•…์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ Suno ๊ฐ™์€ ์Œ์•… ์ƒ์„ฑ AI๋ฅผ ๋ณผ ๋•Œ ์กฐ๊ธˆ ๋ณต์žกํ•œ ๊ฐ์ •์„ ๋А๋‚€๋‹ค.์ด์ œ๋Š” ๊ฐ€์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ฉœ๋กœ๋””๋ฅผ ํฅ์–ผ๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ฝค ๊ดœ์ฐฎ์€ ์Œ์•…์ด ๋‚˜์˜จ๋‹ค. ์กฐ๊ธˆ๋งŒ ๋‹ค๋“ฌ์œผ๋ฉด ์‹ค์ œ ์Œ์›์ฒ˜๋Ÿผ ๋“ค๋ฆด ์ •๋„์˜ ๊ฒฐ๊ณผ๋ฌผ๋„ ์žˆ๋‹ค. ๋” ํฅ๋ฏธ๋กœ..
์ž‘์€ ์ปค๋จธ์Šค ์„œ๋น„์Šค์—์„œ ๊ฐœ์ธํ™” ์ถ”์ฒœ ์‹œ์Šคํ…œ ๋งŒ๋“ค๊ธฐ: ํ–‰๋™ ๋กœ๊ทธ ์ˆ˜์ง‘๋ถ€ํ„ฐ Redis ์„œ๋น™๊นŒ์ง€
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ›๏ธ Architecture
๋“ค์–ด๊ฐ€๋ฉฐ์ถ”์ฒœ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฑฐ๋Œ€ํ•œ AI ์˜ˆ์ธก ๋ชจ๋ธ์ด๋‚˜ ์™ธ๋ถ€ ์ถ”์ฒœ ์†”๋ฃจ์…˜์„ ๋ถ™์ด๋Š” ๋ฐฉํ–ฅ์€ ์šฐ๋ฆฌ ์„œ๋น„์Šค ์ƒํ™ฉ๊ณผ ์ž˜ ๋งž์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๋‹น์‹œ ์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” ์ƒํ’ˆ๊ตฐ๊ณผ ์œ ์ € ํ–‰๋™ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ฃผ ํฐ ํŽธ์€ ์•„๋‹ˆ์—ˆ๋‹ค. ์ด๋Ÿฐ ์ƒํƒœ์—์„œ ๋ณต์žกํ•œ ๋ชจ๋ธ์„ ๋จผ์ € ๋„์ž…ํ•˜๋ฉด ๋น„์šฉ์€ ์ปค์ง€์ง€๋งŒ ๊ฒฐ๊ณผ์˜ ํ•ด์ƒ๋„๋Š” ๊ธฐ๋Œ€๋งŒํผ ๋‚˜์˜ค์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ๋ดค๋‹ค. ์˜คํžˆ๋ ค ์ง€๊ธˆ ์‹ค์ œ๋กœ ์Œ“์ด๊ณ  ์žˆ๋Š” ์œ ์ € ํ–‰๋™ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ •๋ฆฌํ•ด์„œ, ๊ทธ ํ–‰๋™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”์ฒœ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“œ๋Š” ํŽธ์ด ๋” ์ง๊ด€์ ์ด๊ณ  ํ˜„์‹ค์ ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ ํ–‰๋™ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , S3์— ์ ์žฌํ•œ ๋’ค, ๋ฐฐ์น˜๋กœ ํ•™์Šตํ•˜๊ณ , Redis๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค API์—์„œ ์„œ๋น™ํ•˜๊ธฐ๊นŒ์ง€์˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค. ์ฒ˜์Œ์— ์ •ํ•œ ๋ฐฉํ–ฅ๋‚ด๊ฐ€ ์ฒ˜์Œ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ..
์œˆ๋„์šฐ์™€ ๋ฆฌ๋ˆ…์Šค์˜ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ ๋™์ž‘ ๋ฐฉ์‹ ์ฐจ์ด
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ–ฅ๏ธ ์šด์˜์ฒด์ œ
๋“ค์–ด๊ฐ€๋ฉฐ์ž‘๋…„์— ์‹ค๋ฌด์—์„œ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•ด ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.ํŠน์ • ์ž‘์—…์—์„œ SQLAlchemy(ํŒŒ์ด์ฌ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์˜ DB ์ปค๋„ฅ์…˜ ํ’€์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ INSERTํ•˜๋Š” ๋กœ์ง์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(์œˆ๋„์šฐ)์—์„œ๋Š” ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ๋‚ด ๊ฐœ๋ฐœ ์„œ๋ฒ„(๋ฆฌ๋ˆ…์Šค)์— ๋ฐฐํฌํ–ˆ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ ๋กœ๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 2024-12-21 17:57:00,471 [ERROR ] [Process-21][Thread-140372676175552]: write_module:76: Error during bulk insert: ORA-01001: invalid cursorORA-03106: fatal two-task communicatio..
ํ•ญํ•ด ํ”Œ๋Ÿฌ์Šค ์ตœ์ข… ํšŒ๊ณ  (+์ฃผ์ฐจ๋ณ„ ํ•™์Šต๋‚ด์šฉ ์ •๋ฆฌ)
ยท
๐Ÿ  ์ผ์ƒ/๐Ÿ““ ์ผ์ƒ ์ผ๊ธฐ
๋“ค์–ด๊ฐ€๋ฉฐ11์›” 30์ผ, 10์ฃผ ๊ฐ„์˜ ํ•ญํ•ด ๊ต์œก ๊ณผ์ •์ด ๋๋‚ฌ๋‹ค.์—ญ์‹œ ๋Œ์•„๋ณด๋‹ˆ ์งง๊ฒŒ ๋А๊ปด์ง€๋Š” ๊ฑด ์—ฌ๋А ๊ฒฝํ—˜๊ณผ๋„ ๋น„์Šทํ•œ ๊ฐ์ •์„ ๋А๋ผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํ•ญํ•ด ์ˆ˜๊ฐ• ์ „, ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ณด์•˜์„ ๋• ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. TDD, Kafka, Redis... ๋‹ค ์ต์ˆ™ํ•œ ํ‚ค์›Œ๋“œ์ธ๋ฐ, ํ˜ผ์ž์„œ๋„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ๊ณผ์—ฐ ํฐ ๋ˆ์„ ๋‚ด๋ฉด์„œ๊นŒ์ง€ ๋ฐฐ์šธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์„๊นŒ? ๋ฌผ๋ก  ๋งˆ์Œ๋งŒ ๋จน์œผ๋ฉด ํ˜ผ์ž์„œ๋„ ๊ฐ€๋Šฅํ–ˆ์„์ง€ ๋ชจ๋ฅธ๋‹ค. ํ•˜์ง€๋งŒ ํ˜ผ์ž์„œ๋Š” ํ•˜์ง€ ๋ชปํ•  ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค. 1. 10์ฃผ์•ˆ์— ๊ธฐ์ˆ ์„ ์ตํžˆ๊ณ , ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜2. ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์ค‘ ์‹ค๋ฌด์— ๊ผญ ํ•„์š”ํ•œ ๋ฐฉ๋ฒ•์„ ์บ์น˜3. ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์˜ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ฒฝํ—˜์œผ๋กœ ์–ป์–ด๋‚ธ ๋…ธํ•˜์šฐ ์ด ์„ธ ๊ฐ€์ง€๋Š” ํ˜ผ์ž ๊ณต๋ถ€ํ•ด์„œ ์–ป์–ด๋‚ด๊ธฐ์—” ๋„ˆ๋ฌด ์˜ค๋žœ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒƒ๋“ค์ด์—ˆ๋‹ค.๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ๋‚˜์—๊ฒŒ ์ง€๋‚œ 10์ฃผ๋Š” ํญ๋ฐœ์ ..
๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ: ์œ ์ € ํ–‰๋™ ๊ธฐ๋ฐ˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์‹œ์Šคํ…œ ํ•œ๊ณ„ ์ธก์ •๊ณผ SLA, SLO ๊ฒ€์ฆ
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐ŸŽธ ETC
๋“ค์–ด๊ฐ€๋ฉฐ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋Š” ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰(TPS), ์•ˆ์ •์„ฑ, SLA(์„œ๋น„์Šค ์ˆ˜์ค€ ๊ณ„์•ฝ) ๋ฐ SLO(์„œ๋น„์Šค ์ˆ˜์ค€ ๋ชฉํ‘œ)๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ค‘์š”ํ•œ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์—์„œ ์œ ์ € ํ–‰๋™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ค‘์‹ฌ์œผ๋กœ, Docker ํ™˜๊ฒฝ์—์„œ ์ž์›์„ ์กฐ์ ˆํ•˜๋ฉฐ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.   1. ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๊ณ„์œ ์ €์˜ ํ–‰๋™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์‹œ์Šคํ…œ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒํƒœ(์œ ์ € ๋น„ํ™œ์„ฑ/์œ ์ € ํ™œ์„ฑ)๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. - ์‹œ๋‚˜๋ฆฌ์˜ค 1 : ์œ ์ € ๋Œ€๊ธฐ์—ด ๋น„ํ™œ์„ฑ๋ชฉํ‘œ: ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ์—์„œ ํ† ํฐ ๋ฐœ๊ธ‰ ๋ฐ ์ƒํƒœ ์กฐํšŒ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ธก์ •ํ–‰๋™ ํ๋ฆ„์œ ์ €๊ฐ€ ๋Œ€๊ธฐ์—ด ํ† ํฐ ๋ฐœ๊ธ‰ ์š”์ฒญ์œ ์ €๊ฐ€ 1์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ํ† ํฐ ์ƒํƒœ ์กฐํšŒ์ค‘์ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ์˜..
์„œ๋น„์Šค ํ™•์žฅ์„ ์œ„ํ•œ ํŠธ๋žœ์žญ์…˜ ๋ถ„๋ฆฌ์™€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ€ Spring
๋“ค์–ด๊ฐ€๋ฉฐ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ํŠธ๋žœ์žญ์…˜์˜ ๋ฒ”์œ„์™€ ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋Š” ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๊ธฐ์กด ๋กœ์ง์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ„๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์„œ๋น„์Šค์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ์ค‘์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํ˜„์žฌ ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์„œ๋น„์Šค๋“ค์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ถ„๋ฆฌํ•˜๋ฉฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.   ํ˜„์žฌ ์ฝ”๋“œ์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„ ๋ถ„์„ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„ํ˜„์žฌ ์ฝ”๋“œ์—์„œ @Transactional์ด ์ ์šฉ๋œ ํ•ต์‹ฌ ๋กœ์ง ์ค‘ ์˜ˆ์•ฝ ์ƒ์„ฑ๊ณผ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋กœ์ง์— ๋Œ€ํ•ด ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๋ฅผ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๋กœ์ง์€ ์•„๋ž˜๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.   ์˜ˆ์•ฝ ์ƒ์„ฑ@Serviceclass ReservationService( ..
์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์˜ ์ธ๋ฑ์Šค ์„ค๊ณ„์™€ ์„ฑ๋Šฅ ๋น„๊ต
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ’พ Database
๋“ค์–ด๊ฐ€๋ฉฐ ์ด๋ฒˆ ๊ธ€์—์„œ ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉ๋œ ์ฟผ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์ธ๋ฑ์Šค ์ถ”๊ฐ€ ์ „ํ›„์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•ด ๋ณด๋ฉฐ ์ตœ์ ํ™” ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. MariaDB๋ฅผ ์‚ฌ์šฉํ•ด ์ธ๋ฑ์Šค ์ถ”๊ฐ€ ์ „ํ›„์˜ ์‹คํ–‰ ๊ณ„ํš(EXPLAIN) ๋ฐ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด, ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ข…์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•˜์˜€๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.   ์‹œ๋‚˜๋ฆฌ์˜ค ๋‚ด ์ฟผ๋ฆฌ๋จผ์ € ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์˜ ๋„๋ฉ”์ธ ๋ณ„ ๊ฐ JpaRepository์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ๋ณ„ ์ฟผ๋ฆฌ๋ฅผ ์•„๋ž˜ ํ‘œ๋กœ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.  ๋„๋ฉ”์ธ ๋ฉ”์„œ๋“œ ConcertfindAllByConcertId()ReservationfindByIdOrNullWithLock(), findAllByExpiresAtBeforeAndStatus()SeatfindByIdOrNu..
Redis ๊ธฐ๋ฐ˜์˜ ์บ์‹ฑ ๋ฐ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•œ ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค ์„ฑ๋Šฅ ๊ฐœ์„ 
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/๐Ÿ€ Spring
๋“ค์–ด๊ฐ€๋ฉฐ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ˜์„œํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์กฐํšŒ API ์ค‘ ์บ์‹ฑ์„ ์ ์šฉํ•  ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด ๋ณด๊ณ , ๊ธฐ์กด RDB์—์„œ ์ž‘๋™๋˜๊ณ  ์žˆ๋˜ ๋Œ€๊ธฐ์—ด ๋กœ์ง์„ Redis๋กœ ์ด๊ด€ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ ์บ์‹ฑ ์ „ํ›„ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์–ผ๋งˆ๋‚˜ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜๋Š”์ง€๋„ ์ฒดํฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.    ์บ์‹œ ์ ์šฉ ๊ธฐ์ค€์šฐ์„  ์บ์‹œ๋ฅผ ์ ์šฉํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ธฐ์ค€์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ์กฐํšŒ ๋น„์šฉ์ด ๋†’์€์ง€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋น„์šฉ์ด ํฐ ๊ฒฝ์šฐ ์บ์‹ฑ์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์กฐํšŒ๋˜๋Š”์ง€๋ฐ˜๋ณต์ ์ธ ์š”์ฒญ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์บ์‹œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์— ์ด์Šˆ๊ฐ€ ์—†๋Š”์ง€์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์™€ ์›๋ณธ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์ •ํ•ฉ..