-->

์ „์ฒด ๊ธ€

jwooo's log ์ž…๋‹ˆ๋‹ค.
ยทProject
๊ฐœ์š”์ฑ„ํŒ…๋ฐฉ ๋ฉ”์„ธ์ง€ ์ฝ์Œ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝ์€ ๋ฉ”์„ธ์ง€๋ฅผ ์ถ”์ ํ•˜์—ฌ, ์ฝ์ง€ ์•Š์€ ๋ฉ”์„ธ์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฐ ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•ด '์ฝ์ง€ ์•Š์€ ๊ฐœ์ˆ˜ (Unread Count)'๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.  ๊ธฐ์กด์˜ ๋ฉ”์„ธ์ง€ ์ฝ์Œ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ๋Š” ๊ฐ ๋ฉ”์„ธ์ง€๋งˆ๋‹ค ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ์€ ์œ ์ €์˜ ID ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ์ฝ์€ ์œ ์ € ID ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ํ†ตํ•ด '์ฝ์ง€ ์•Š์€ ๊ฐœ์ˆ˜ (Unread Count)'๋ฅผ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์€ ์ฑ„ํŒ…๋ฐฉ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ ์€ ์ฑ„ํŒ…๋ฐฉ์— ๋น„ํ•ด ๋” ๋งŽ์€ ๋ฉ”์„ธ์ง€๊ฐ€ ์˜ค๊ฐ€๋ฏ€๋กœ, ์ˆ˜์ •ํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์„ธ์ง€ ์ฝ์Œ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๊ฐœ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ๊ธฐ์กด์˜ ๋ฉ”์„ธ์ง€ ์ฝ์Œ ์ฒ˜๋ฆฌ ๋กœ์ง๋จผ์ €, ๊ธฐ์กด์˜ ์ฑ„ํŒ… ์‹œ์Šคํ…œ์˜ ๋ฉ”์„ธ์ง€ ์ฝ์Œ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ์•ž์„œ ์„ค..
ยทProject
๋“ค์–ด๊ฐ€๋ฉฐ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ์ผ๊ด€์„ฑ๊ณผ ํšจ์œจ์„ฑ์— ๋Œ€ํ•ด ๊ณ ๋ฏผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŒ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ, ์—ฌ๋Ÿฌ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ GitHub์—์„œ ํด๋ก ํ•œ ๋’ค, ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ์ ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.  ์ดˆ๊ธฐ์—๋Š” ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ Redis, MySQL, MongoDB์™€ ๊ฐ™์€ ์™ธ๋ถ€ ๋ฐ๋ชฌ์€ ๋ณ„๋„๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๊ณ , ๊ทธ๋กœ ์ธํ•ด ์„ค์ •์—๋งŒ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜, ํ™˜๊ฒฝ ์„ธํŒ…์„ ํ•˜์ง€ ๋ชปํ•œ ์ฑ„๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ก ํ•œ ํ›„ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ์ด๋ฅผ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ..
ยทJava
๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ๋„์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ํฌ๋กค๋งํ•˜์—ฌ HashMap์— ์ €์žฅํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” 100๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์œผ๋‚˜, HashMap์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ ์›์ธ์„ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ, ๋น„๋™๊ธฐ ์ž‘์—…์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด HashMap๋งŒ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ์–ด๋ ค์›€์ด ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HashMap, HashTable, ConcurrentHashMap์˜ ์ฐจ์ด์ ์„ ์‚ดํŽด๋ณด๊ณ , ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๋น„๊ตํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. HashMapkey์™€ value์— null ํ—ˆ์šฉ๋™๊ธฐํ™”๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์ŒHashMap์€ ์Šค๋ ˆ๋“œ ์•ˆ์ „(thread-safe)์„ ๋ณด์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ฃผ๋กœ ์‹ฑ๊ธ€ ์Šค๋ ˆ..
jwooo๐ŸŒฑ
jwooo's log