๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„91

[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 10 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ ์˜ค๋Š˜์€ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ์— ์ธ๋ฑ์Šค๋„ ์ ์šฉํ•ด ๋ณด๊ณ  ๋ ˆ๋””์Šค๋„ ์ ์šฉํ•ด ๋ณด๋ฉฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ™•์ธํ•ด ๋ดค๋‹ค.๋จผ์ € ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•ด์„œ (userId, createdAt DESC)๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ๊ณ , ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์•˜๋‹ค. ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•œ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ userId๋ฅผ ํ†ตํ•ด ์ฐพ์•„์˜ค๊ณ  ์ตœ๊ทผ ์ €์žฅ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 10๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— createdAt DESC๋ฅผ ํ•จ๊ป˜ ์„ค์ •ํ•˜๋ฉด ์ •๋ ฌ ํ•„์š” ์—†์ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.์„ฑ๋Šฅ์„ ํ™•์ธํ•œ ๊ฒฐ๊ณผ type์ด ALL์—์„œ ref๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๊ณ , Using where; Using filesort์—์„œ Using index๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. ์‹ค์ œ ์‹คํ–‰ ์‹œ๊ฐ„๋„ ์•ฝ 23% ๊ฐ์†Œํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ.. 2025. 2. 19.
[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 9 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง ์ „์ฒด ํŽ˜์ด์ง€ ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ๋‹จ์ผ ์ธ๋ฑ์Šค์™€ ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•˜๋ฉฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ–ˆ๋‹ค. ์ฒ˜์Œ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฑฐ๋ผ์„œ ๋งŽ์ด ํ—ค๋งธ๋‹ค.์ธ๋ฑ์Šค๋ฅผ ๋ฌด์กฐ๊ฑด ํ•œ๋‹ค๊ณ  ์ข‹์•„์ง€๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ์—ˆ๊ณ , ํ•„์š”ํ•œ ๊ณณ์— ์ ์ ˆํ•˜๊ฒŒ ์ ์šฉํ•ด์•ผ ํ–ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€์žฅ ๋งŽ์ด ์ฐพ์•„๋ณผ ๊ฒƒ ๊ฐ™์€ ์ž๊ฒฉ ์š”๊ฑด์— ๋‹จ์ผ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•˜๊ณ , ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋กœ (์ง€์—ญ, ๊ณ ์šฉ ํ˜•ํƒœ, ํ•™๋ ฅ)์„ ์ ์šฉํ–ˆ๋‹ค. ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋„ ๊ฐ€์žฅ ๋งŽ์ด ์„ ํƒ๋˜๋Š” ์ปฌ๋Ÿผ, ๊ฐ€์žฅ ์„ ํƒ๋„๊ฐ€ ๋†’์€ ์ปฌ๋Ÿผ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋˜์–ด ์™ผ์ชฝ์— ์œ„์น˜ํ•˜๊ณ  ๊ทธ ๋’ค๋กœ๋„ ์ˆœ์„œ๋Œ€๋กœ ์ƒ๊ฐํ•ด์„œ ์ ์šฉํ•ด์•ผ ์ตœ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. EXPLAIN๊ณผ EXPLAIN ANALYZE๋ฅผ ํ™œ์šฉํ•ด์„œ ์„ฑ๋Šฅ์„ ํ™•์ธํ–ˆ๊ณ , JMeter๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํ•œ๋ฒˆ ๋” ํ…Œ์ŠคํŠธํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ธ๋ฑ์Šค ์ ์šฉ ํ›„ ์บ์‹œ์— ๋Œ€ํ•ด์„œ๋„ ๊ณ .. 2025. 2. 18.
[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 5 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง findById( ) ๋ฉ”์„œ๋“œ ๊ฐ ๋„๋ฉ”์ธ ๋ณ„๋กœ ๋‚˜๋ˆ ์„œ Service ํด๋ž˜์Šค ์ƒ์„ฑ์ค‘๋ณต๋˜๋Š” ๋ฉ”์„œ๋“œ์ธ findById ๋ฉ”์„œ๋“œ๋ฅผ ๋„๋ฉ”์ธ ๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ํด๋ž˜์Šค์— ๋”ฐ๋กœ ์ €์žฅํ•œ ํ›„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค.๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์˜ ๋ฉ”์„œ๋“œ, API์— ์ฃผ์„ ์ถ”๊ฐ€๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ดค์„ ๋•Œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฃผ์„์œผ๋กœ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.V2 ๋ฒ„์ „ ๊ณ„ํš ์ƒ๊ฐ์ „์ฒด ํŽ˜์ด์ง€ ์กฐํšŒ - ์ธ๋ฑ์Šค ์ ์šฉ, ์บ์‹œ ์ ์šฉ, ๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ ์ ์šฉ, keyset ํŽ˜์ด์ง€๋„ค์ด์…˜, cursor ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋“ฑ๋“ฑ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์ฐพ์•„๋ณด๋ฉด์„œ ์ง€๊ธˆ ์ฝ”๋“œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•๋“ค์„ ๊ณ ๋ฏผํ–ˆ๋‹ค.์ตœ๊ทผ ๊ฒ€์ƒ‰ ์กฐํšŒ - ์ธ๋ฑ์Šค ์ ์šฉ, ์บ์‹œ(Redis) ์ ์šฉ ๋“ฑ๋“ฑ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ–ˆ๋‹ค.์ธ๋ฑ์Šค ๊ณต๋ถ€์ธ๋ฑ์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š”.. 2025. 2. 15.
[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 4 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง ํŽ˜์ด์ง€ ์กฐํšŒ ํ•„ํ„ฐ๋ง ๋กœ์ง ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„QueryDSL์„ ํ™œ์šฉํ•˜์—ฌ ์˜ต์…˜๋“ค์„ ํ•„ํ„ฐ๋งํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ˜ํ™˜๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋กœ์ง์„ ์™„์„ฑํ–ˆ๋‹ค.์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ Dto๋กœ ๋ฐ˜ํ™˜๋ฐ›๋Š” ๊ฑด ํž˜๋“ค ๊ฒƒ ๊ฐ™์•„์„œ ๋กœ์ง์„ ๋‚˜๋ˆ ์„œ dataId๋ฅผ ๋ฐ˜ํ™˜๋ฐ›๊ณ  keyword๋ฅผ ๋”ฐ๋กœ ๋ฐ˜ํ™˜๋ฐ›์•„์„œ List ํ˜•ํƒœ๋กœ Dto์™€ ํ•ฉ์ณ์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.์ „๋ถ€ ๊ตฌํ˜„ํ•œ ํ›„ Postman์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ดค๋Š”๋ฐ ์–ด๋–ค ํ•„ํ„ฐ๋ง์„ ๋„ฃ์–ด๋„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์™”๋‹ค.. @ModelAttribute๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž…๋ ฅ์„ ๋ฐ›๊ฒŒ๋” ์„ค์ •ํ–ˆ๋Š”๋ฐ ์ด ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•˜๋ ค๋ฉด Dto์— @Setter ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค........ ๊ทธ๋Ÿฐ ์ค„๋„ ๋ชจ๋ฅด๊ณ  ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋ž‘ Postman์—์„œ ์ž…๋ ฅ์„ ์ž˜๋ชปํ•œ ์ค„ .. 2025. 2. 13.
[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 2 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง ํŒ€ ์ปจ๋ฒค์…˜ ์ •ํ•˜๊ธฐํŒ€์˜ ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์„ธ์„ธํ•˜๊ฒŒ ์ •ํ–ˆ๋‹ค.์ค‘๊ฐ„์— ์˜๊ฒฌ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค์„ ๋ชจ๋‘ ์ •ํ–ˆ๋‹ค.ํŽ˜์ด์ง€ ์กฐํšŒ ๊ธฐ๋Šฅ(๊ฒ€์ƒ‰ ํฌํ•จ) ๊ฐœ๋ฐœ ์‹œ์ž‘์‚ฌ์‹ค ์‹œ์ž‘์€ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ์˜€๋‹ค. ํ•˜์ง€๋งŒ ํŽ˜์ด์ง€ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฒ€์ƒ‰์–ด๋“ค์„ History์— ์ €์žฅํ•ด์•ผ ์ตœ๊ทผ ๊ธฐ๋ก ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด์—ˆ๋‹ค.๊ทธ๋ž˜์„œ History์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์„ ๋ฉˆ์ถ”๊ณ  ํŽ˜์ด์ง€ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.ํ•„ํ„ฐ๋ง์„ ํ•ด์•ผํ•  ์กฐ๊ฑด๋“ค์ด ๋งค์šฐ ๋งŽ์•„์„œ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ฒŒ ๋จผ์ € ์ •๋ฆฌํ•œ ํ›„ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.์•„์ง ์ž๊ฒฉ ์š”๊ฑด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ด์„œ ์ด์–ด์„œ ๊ฐœ๋ฐœํ•  ์˜ˆ์ •์ด๋‹ค.ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ณ ๋ฏผํ–ˆ๋˜ ์‚ฌํ•ญ๋“คQueryDSL์—์„œ between๊ณผ geo, leo ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?์ฑ„์šฉ ๊ธฐ๊ฐ„.. 2025. 2. 11.
[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 1 ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง ์ตœ์ข… ํ”„๋กœ์ ํŠธ ๋ฐœ์ œ ๋“ฃ๊ธฐ๊ธฐ๋ก์ด ์งฑ์งฑ ์ค‘์š”ํ•˜๋‹ค!!!ํ™”๋ฉด ์บก์ฒ˜์™€ ์˜์ƒ ์ดฌ์˜์ด ํ•„์ˆ˜์ ์ด๋‹ค.๊ธฐ๋Šฅ์„ ํ•˜๋‚˜ ๊ตฌํ˜„ํ•  ๋•Œ๋งˆ๋‹ค ํ˜น์€ ๋ง‰ํ˜”์„ ๋•Œ ๊ณ ๋ฏผ ์‚ฌํ•ญ์„ ์ž˜ ๊ธฐ๋กํ•ด ๋‘์ž!5๋ถ„ ๊ธฐ๋ก ๋ณด๋“œ ์ค‘์š”ํ•˜๋‹ค.๋ฏธ๋ž˜๋ฅผ ์œ„ํ•ด ๋ฌด์กฐ๊ฑด ๊ธฐ๋กํ•ด๋†”์•ผ ํ•œ๋‹ค!๋„๋ฉ”์ธ ์ •ํ•˜๊ธฐ์ฒซ ๋ฒˆ์งธ ํ›„๋ณด: ๊ณ ๊ฐ์„ผํ„ฐ ๊ด€๋ จ๋‘ ๋ฒˆ์งธ ํ›„๋ณด: ์ทจ์—… ์‚ฌ์ดํŠธ ๊ด€๋ จ(์ฑ„ํƒ)S.A ์ž‘์„ฑํ•˜๊ธฐ์™€์ด์–ดํ”„๋ ˆ์ž„ERD ๋‹ค์ด์–ด๊ทธ๋žจAPI ๋ช…์„ธ์„œ๊ธฐ์ˆ  ๋ช…์„ธ์„œ์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€์žฅ ๋ฐ–์— ์žˆ๋Š” ํŒจํ‚ค์ง€: common, domaindomain ์•ˆ์— ๋“ค์–ด๊ฐ„ ํŒจํ‚ค์ง€: auth, keyword, data, bookmark, user, history๊ธฐ๋ณธ Entity๋งŒ ์ž‘์„ฑํ•œ ์ƒํƒœ์ด๋‹ค!์ˆ™์ œ: ๋กœ๊ทธ๋ฅผ ์–ด๋””์— ๋‚จ๊ฒจ์•ผ ํ• ๊นŒ?์ˆ™์ œ: ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ๊ธฐ๋Šฅ์—์„œ ExceptionHandler์—์„œ ์ฒ˜๋ฆฌํ•  ์˜ˆ.. 2025. 2. 10.