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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ294

[๊ธฐ๋Šฅ ๊ฐœ์„ ] ๊ฒ€์ƒ‰์–ด ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค DB์— ์ธ๋ฑ์Šค ๊ฐฑ์‹ … ๊ดœ์ฐฎ์„๊นŒ? ๐Ÿš€ Redis๋ฅผ ํ™œ์šฉํ•œ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ ๊ธฐ   ๐Ÿ’ญ ๋ฌธ์ œ ์ธ์‹ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๊ฒ€์ƒ‰์–ด๊ฐ€ ์ฆ‰์‹œ DB์˜ history ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๊ณ  ์žˆ์—ˆ๊ณ ,์กฐํšŒ ์š”์ฒญ๋„ ๋งค๋ฒˆ DB์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.์ฒ˜์Œ์—๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ,์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด์„œ ๊ฒ€์ƒ‰ ์š”์ฒญ๊ณผ ์ €์žฅ ์š”์ฒญ์ด ๋งค์šฐ ๋นˆ๋ฒˆํ•ด์กŒ๊ณ , ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณ ๋ฏผ์ด ์ƒ๊ฒผ๋‹ค. โœ… ๋งค ์š”์ฒญ๋งˆ๋‹ค ์ €์žฅ์ด ์ผ์–ด๋‚˜๋ฉด ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์† ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ ๋น„์šฉ์€ ๊ดœ์ฐฎ์„๊นŒ?โœ… ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์—๋Š” DB ๋Œ€์‹  ๋” ๊ฐ€๋ฒผ์šด ์ €์žฅ์†Œ๊ฐ€ ๋‚ซ์ง€ ์•Š์„๊นŒ? ๐Ÿ” ๋„์ž… ๋ฐฐ๊ฒฝ: ๊ณ ๋ฏผ ๋์—, ์™œ Redis์˜€์„๊นŒ?์กฐํšŒ์™€ ์ €์žฅ ์š”์ฒญ์ด ๋งค์šฐ ๋นˆ๋ฒˆํ•ด์ง€๋ฉด์„œ, ๊ธฐ์กด์ฒ˜๋Ÿผ ๋งค๋ฒˆ DB์— ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์กฐ๋Š”์ธ๋ฑ์Šค ์žฌ์ž‘์„ฑ ๋น„์šฉ๊ณผ ์‘๋‹ต ์ง€์—ฐ์ด๋ผ๋Š” ์ธก๋ฉด์—์„œ ํšจ์œจ์ ์ด์ง€ ์•Š์•˜๋‹ค.์ฒ˜์Œ์—” DB ํŠœ.. 2025. 4. 2.
[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] @Setting์„ ์ผ๋Š”๋ฐ ์™œ ์ธ๋ฑ์Šค๊ฐ€ ์•ˆ ๋ ๊นŒ? ๐Ÿงจ Elasticsearch ์ธ๋ฑ์Šค ์„ค์ •์ด ์•ˆ ๋œ๋‹ค?! @Setting ์‹คํŒจ ๊ธฐ๋ก  ๐Ÿ’ฅ๋ฌธ์ œ ์ƒํ™ฉSpring Boot + Spring Data Elasticsearch ํ™˜๊ฒฝ์—์„œElasticsearch์—์„œ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด n-gram, edge-ngram ๊ธฐ๋ฐ˜ ์ธ๋ฑ์Šค ์„ค์ •์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.์•„๋ž˜์™€ ๊ฐ™์ด job-opening-settings.json์„ ์ž‘์„ฑํ•˜๊ณ ,Spring Data Elasticsearch์˜ @Setting ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.๋”๋ณด๊ธฐ  job-opening-settings.json { "settings": { "analysis": { "filter": { "ngram_filter": { "type": "ng.. 2025. 4. 2.
[ Java ] compareTo()๋ฅผ ๋ชจ๋ฅด๊ณ  ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ณด๊ฒ ๋‹ค๊ณ ? ๐Ÿ’ก ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ ค๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋ฒˆ์—๋Š” ์ •๋ ฌ ๋ฌธ์ œ๋ฅผ ๋งˆ์ฃผ์น˜๊ฒŒ ๋˜์—ˆ๊ณ , ๋‚˜๋ฆ„๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ ค๊ณ  ์ƒ๊ฐ์„ ํ•ด๋ดค์ง€๋งŒ ์ „ํ˜€ ์—‰๋šฑํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ •๋ ฌ ๋ฌธ์ œ๋ฅผ ์ž˜ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด€๋ จ ๊ฐœ๋…๋“ค์„ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ๋ฌธ์ œ์—์„œ ์ ์šฉ๋˜์—ˆ๋˜ compareTo() ๋ฉ”์„œ๋“œ๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค!    ๐Ÿค” compareTo(), ์–ด๋–ค ์นœ๊ตฌ์ธ๊ฐ€?!compareTo()๋Š” ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ int ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค!์ˆซ์ž๋“  ๋ฌธ์ž๋“  ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒ๋Šฅ ๋น„๊ต ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”ข ์ˆซ์ž๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋‹จ์ˆœํ•˜๊ฒŒ ํฌ๋‹ค / ๊ฐ™๋‹ค / ์ž‘๋‹ค์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.๊ฒฐ๊ณผ๊ฐ€ ์–‘์ˆ˜ → ์•ž์˜ ๊ฐ’์ด ๋” ํผ๊ฒฐ๊ณผ๊ฐ€ 0 → ๋‘ ๊ฐ’.. 2025. 4. 1.
[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java ] ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42746 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”.์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” 6210์ž…๋‹ˆ๋‹ค.0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ.. 2025. 4. 1.
[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java ] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42586 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ๋ณด๋‹ค ๋จผ์ € ๊ฐœ๋ฐœ๋  ์ˆ˜ ์žˆ๊ณ , ์ด๋•Œ ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋  ๋•Œ ํ•จ๊ป˜ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.๋จผ์ € ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์˜ ์ง„๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด progresses์™€ ๊ฐ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด speeds๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๊ฐ.. 2025. 3. 29.
[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java ] ์˜ˆ์‚ฐ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/12982 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krS์‚ฌ์—์„œ๋Š” ๊ฐ ๋ถ€์„œ์— ํ•„์š”ํ•œ ๋ฌผํ’ˆ์„ ์ง€์›ํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ๋ถ€์„œ๋ณ„๋กœ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธˆ์•ก์„ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ „์ฒด ์˜ˆ์‚ฐ์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ๋•Œ๋Š” ๊ฐ ๋ถ€์„œ๊ฐ€ ์‹ ์ฒญํ•œ ๊ธˆ์•ก๋งŒํผ์„ ๋ชจ๋‘ ์ง€์›ํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1,000์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์—๋Š” ์ •ํ™•ํžˆ 1,000์›์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฉฐ, 1,000์›๋ณด๋‹ค .. 2025. 3. 28.