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

์ „์ฒด ๊ธ€222

[๊ธฐ๋Šฅ ๊ฐœ์„ ] “31s ๊ฑธ๋ฆฌ๋˜ ์ฟผ๋ฆฌ๋ฅผ 146ms๋กœ ์ค„์ธ ์ด์•ผ๊ธฐ” ๐Ÿš€ ์—ฐ๋ น๋Œ€๋ณ„ ์ธ๊ธฐ ํ‚ค์›Œ๋“œ, 31s์—์„œ 146ms๊นŒ์ง€! ์„ฑ๋Šฅ ๊ฐœ์„  ์—ฌ์ •   ๐Ÿ’ญ ๋ฌธ์ œ ์ธ์‹ ์„œ๋น„์Šค ๋‚ด์—์„œ ์ œ๊ณตํ•˜๋Š” "์—ฐ๋ น๋Œ€๋ณ„ ์ธ๊ธฐ ํ‚ค์›Œ๋“œ" ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž ํ†ต๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”์ฒœ ๊ธฐ๋Šฅ๊ณผ ์—ฐ๋™๋˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋งˆ๋‹ค ์‘๋‹ต ์†๋„๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋Š๋ฆฌ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์ด ๋“ค์–ด์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๐Ÿข ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ  ๋กœ์ปฌ ์กฐํšŒ ์‹œ๊ฐ„ : 31.49์ดˆ๋ฐฐํฌ ์„œ๋ฒ„ : 504 Gateway Timeout ๋ฐœ์ƒJMeter ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ : ์—๋Ÿฌ์œจ 90% ์ด์ƒ ๐Ÿ“Œ ํ†ต๊ณ„ ํŽ˜์ด์ง€์กฐ์ฐจ ์—ด๋ฆฌ์ง€ ์•Š๋Š” ์ƒํ™ฉ..์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์‚ฌ์‹ค์ƒ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์˜€๋‹ค.  ๐Ÿ” ํ˜„์žฌ ๊ตฌ์กฐ ๋ถ„์„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ธฐ์กด ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ๋‹ค๋‹จ๊ณ„ ์ง‘๊ณ„ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์—ˆ๋‹ค. ํ•ด๋‹น ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ๋ฆ„์œผ๋กœ ๋™์ž‘ํ•œ.. 2025. 4. 4.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42576 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ, ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.์ œํ•œ ์‚ฌํ•ญ๋งˆ๋ผํ†ค ๊ฒฝ๊ธฐ์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ 100,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.completion์˜ ๊ธธ์ด๋Š”.. 2025. 4. 3.
[๊ธฐ๋Šฅ ๊ฐœ์„ ] ์ž๋™ ์™„์„ฑ + ๋ถ€๋ถ„ ๊ฒ€์ƒ‰, ๊ฐ™์ด ์“ฐ๋ฉด ์•ˆ ๋˜๋Š” ์ด์œ  (feat. Nori ์ ์šฉ) ๐Ÿ” ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ๋กœ ๊ฒ€์ƒ‰ ์ •ํ™•๋„ ๊ฐœ์„ ํ•˜๊ธฐ: Nori + ์ž๋™์™„์„ฑ ๋ถ„๋ฆฌ ์ „๋žต   ๐Ÿ’ญ ๋ฌธ์ œ ์ธ์‹ ๊ธฐ์กด์—๋Š” ์ฑ„์šฉ ๊ณต๊ณ  ๊ฒ€์ƒ‰์— ๋ถ€๋ถ„ ๊ฒ€์ƒ‰(N-gram)๊ณผ ์ž๋™ ์™„์„ฑ(Edge N-gram) ๊ธฐ๋Šฅ์„ ํ•จ๊ป˜ ์ ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๊ธฐ๋ณธ์ ์ธ ๊ฒ€์ƒ‰์€ ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ์ •ํ™•ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ–ˆ๋‹ค. ๐Ÿ“Œ ์˜ˆ์‹œ์‚ฌ์šฉ์ž๊ฐ€ "์นด๋“œ"๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํฌํ•จํ•œ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ, ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด ํ•จ๊ป˜ ๋™์ž‘ํ•˜๋ฉด์„œ์นด๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ์ฑ„์šฉ ๊ณต๊ณ ๋“ค๊นŒ์ง€ ํ•จ๊ป˜ ๊ฒ€์ƒ‰๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.๊ฒฐ๊ณผ์ ์œผ๋กœ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ณด๋‹ค ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•จ๊ป˜ ๋…ธ์ถœ๋˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋Š” ์ •ํ™•ํ•œ ๊ฒ€์ƒ‰์ด ์–ด๋ ต๋‹ค๋Š” ์ธ์ƒ์„ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค.  ๐Ÿงฑ ๊ธฐ์กด ์ธ๋ฑ์Šค ๊ตฌ์กฐ์˜ ํ•œ๊ณ„ ๊ธฐ์กด ์ธ๋ฑ์Šค ์„ค์ •์—์„œ๋Š” title, requiredSkills.. 2025. 4. 3.
[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] N-gram๊ณผ Edge-Ngram์„ ํ•จ๊ป˜ ์ผ๋”๋‹ˆ? ๊ฒ€์ƒ‰ ์ •ํ™•๋„ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๊ณผ์ • ๐Ÿ’ฅ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ? N-gram + Edge-Ngram์ด ๋งŒ๋“  ๋ฌธ์ œ  ๐Ÿ” ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ฒ˜์Œ์—๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€๋ถ„ ๊ฒ€์ƒ‰(N-gram)๊ณผ ์ž๋™ ์™„์„ฑ(Edge-Ngram) ๋‘ ๊ธฐ๋Šฅ์„ ๋™์‹œ์— Elasticsearch์— ์ ์šฉํ–ˆ๋‹ค.๊ฒ€์ƒ‰์–ด๊ฐ€ ์ค‘๊ฐ„์— ํฌํ•จ๋œ ๋‹จ์–ด๋„ ์ฐพ๊ณ , ๋™์‹œ์— ์ž…๋ ฅํ•œ ๊ธ€์ž์˜ ์•ž๋ถ€๋ถ„์œผ๋กœ ์ž๋™ ์™„์„ฑ๊นŒ์ง€ ๋˜๋„๋ก ํ•œ ๊ฒƒ์ด์—ˆ๋‹ค.ํ•˜์ง€๋งŒ... ์‹ค์ œ ๊ฒ€์ƒ‰์—์„œ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๐Ÿ“Œ ์˜ˆ์‹œ 1) ๊ฒ€์ƒ‰์–ด: ๋ฏธ๋…ธ ๋ฏธ๋…ธ๊ฐ€ ํฌํ•จ๋œ ์ •ํ™•ํ•œ ๋‹จ์–ด๋ฅผ ์ฐพ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ,N-gram๊ณผ Edge-Ngram์ด ํ•จ๊ป˜ ์ ์šฉ๋œ ํ•„๋“œ๊ฐ€ ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋ƒˆ๋‹ค.๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ด€๋ จ ์—†๋Š” ํ‚ค์›Œ๋“œ๊นŒ์ง€ ํฌํ•จ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋…ธ์ถœ๋˜์—ˆ๋‹ค. ๐Ÿ“Œ ์˜ˆ์‹œ 2) ๊ฒ€์ƒ‰์–ด: ์นด๋“œ์นด๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ, ์นด๋“œ์™€ ๋ฌด๊ด€ํ•œ ์นด๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด.. 2025. 4. 3.
[๊ธฐ๋Šฅ ๊ฐœ์„ ] ์ฑ„์šฉ ๊ณต๊ณ  ๊ฒ€์ƒ‰ ์†๋„ 48ms → 14ms, ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ–ˆ์„๊นŒ? ๐Ÿš€ QueryDSL์—์„œ Elasticsearch๋กœ, ์ฑ„์šฉ ๊ณต๊ณ  ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„    ๐Ÿ’ญ ๋ฌธ์ œ ์ธ์‹ ์ฒ˜์Œ์—๋Š” MySQL + QueryDSL ๊ธฐ๋ฐ˜์œผ๋กœ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๋‹จ์ˆœ ์กฐํšŒ ์„ฑ๋Šฅ ์ž์ฒด๋Š” ๋น„๊ต์  ๋น ๋ฅธ ํŽธ์ด์—ˆ๋‹ค.ํ•˜์ง€๋งŒ ์„œ๋น„์Šค๊ฐ€ ์„ฑ์žฅํ•˜๋ฉด์„œ ๋ถ€๋ถ„ ๊ฒ€์ƒ‰์ด๋‚˜ ์ž๋™ ์™„์„ฑ ๋“ฑ ๊ฒ€์ƒ‰ ํŽธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์ด ์ปค์กŒ๊ณ , ์ด๋ฅผ QueryDSL๋งŒ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ์—” ๊ตฌ์กฐ์  ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค.ํŠนํžˆ ์ „์ฒด ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์ด๋‚˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๊ธฐ๋Šฅ์€ Elastisearch๊ฐ€ ๋” ์ ํ•ฉํ•œ ๊ธฐ์ˆ ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๐Ÿ” Elasticsearch ๋„์ž… ๋ฐฐ๊ฒฝ์ฑ„์šฉ ๊ณต๊ณ  ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๋‹จ์ˆœ ํ‚ค์›Œ๋“œ ์กฐํšŒ์— ๊ทธ์น˜์ง€ ์•Š๊ณ  ๋ถ€๋ถ„ ๊ฒ€์ƒ‰, ์ž๋™ ์™„์„ฑ ๋“ฑ ๊ฒ€์ƒ‰ ํŽธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค.ํ•˜์ง€๋งŒ MyS.. 2025. 4. 3.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] H-index ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42747 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krH-Index๋Š” ๊ณผํ•™์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์–ด๋Š ๊ณผํ•™์ž์˜ H-Index๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ h๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ์— ๋”ฐ๋ฅด๋ฉด, H-Index๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค.์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ nํŽธ ์ค‘, h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๋‹ค๋ฉด h์˜ ์ตœ๋Œ“๊ฐ’์ด ์ด ๊ณผํ•™์ž์˜ H-Index์ž…๋‹ˆ๋‹ค.์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด citations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ .. 2025. 4. 2.