์žฌ๊ณ ์‹œ์Šคํ…œ์œผ๋กœ ์•Œ์•„๋ณด๋Š” ๋™์‹œ์„ฑ์ด์Šˆ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋™์‹œ์„ฑ ์ด์Šˆ๋ž€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

NHN ํŽ˜์ด์ฝ”
๋„ท๋งˆ๋ธ” F&C
IBM
์นด์นด์˜ค
๋ฒˆ๊ฐœ์žฅํ„ฐ

๋ฒˆ๊ฐœ์žฅํ„ฐ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

NHN ํŽ˜์ด์ฝ”
๋„ท๋งˆ๋ธ” F&C
IBM
์นด์นด์˜ค
๋ฒˆ๊ฐœ์žฅํ„ฐ

๋ฒˆ๊ฐœ์žฅํ„ฐ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.8

5.0

seonjun Moon

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ด๊ฒŒ ํ•œ์‹œ๊ฐ„ ์งœ๋ฆฌ์ด์ง€๋งŒ ๋„์ปค๋„ ๋งŒ์ ธ๋ณด๊ณ , ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ์ „๋ถ€ ๋‹ค ์‹คํ–‰ํ•ด๋ณด๊ณ  ํ•˜๋‹ˆ ์ง„์งœ ์—„์ฒญ ์•Œ์ฐจ๋„ค์š”... ๋˜ ํ”ผ๋“œ๋ฐฑ๋„ ์ž˜ ๋˜์–ด์žˆ๊ณ ... ๋‹น์‹  ์ •์ฒด๊ฐ€ ๋ฌด์—‡์ด์ฃ ...?

5.0

hjin

28% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ „์ฒด ๊ฐ•์˜ ํ•œ์‹œ๊ฐ„ ๋‚จ์ง“ํ•œ ์‹œ๊ฐ„์ธ๋ฐ ๊ต‰์žฅํžˆ ์•Œ์ฐจ๊ฒŒ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค!! ์ฒ˜์Œ ์ ‘ํ•˜๋ฉด ์–ด๋ ต๊ณ  ๊นŒ๋‹ค๋กœ์šด ์ฃผ์ œ๋ผ์„œ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค์—ˆ๋Š”๋ฐ ์ด ๊ฐ•์˜ ๋“ฃ๊ณ  ๋งŽ์ด ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. synchronized, DB lock ๊นŒ์ง€๋งŒ ๋“ฃ๊ณ  ์•„์ง ๋ ˆ๋””์Šค ๋ถ€๋ถ„์€ ์•ˆ๋“ค์—ˆ์ง€๋งŒ ๋ ˆ๋””์Šค๋„ ๊ธฐ๋Œ€์ค‘!!ใ…Žใ…Ž ์ด ํ›„๊ธฐ ๋ณด์‹œ๋Š” ๊ฐœ๋ฐœ์ž๋ถ„๋“ค 1์‹œ๊ฐ„๋งŒ ํˆฌ์žํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ ๋“ค์–ด๋ณด์„ธ์š”!! ๋ฌผ๋ก  ์„ ์ƒ๋‹˜์ด 1์‹œ๊ฐ„ ์„ค๋ช…์ด๊ณ  ์ œ๊ฐ€ ํ•˜๋Š”๊ฑด 1์‹œ๊ฐ„์ด ์•„๋‹ˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค..ใ… ใ…  ๊ทธ๋ ‡์ง€๋งŒ ์ด ๊ฐ•์˜ ๊ฐœ์ธ์ ์œผ๋กœ ๋Œ€๋งŒ์กฑ์ž…๋‹ˆ๋‹คใ…Žใ…Ž ๊ธ€์”จ๊ฐ€ ์ž‘์•˜๋˜๊ฑฐ ๋นผ๊ณค ๋™์‹œ์„ฑ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ์ข‹์•˜์–ด์š”~ ๋‹ค์Œ ๊ฐ•์˜๋„ ์งง๊ณ  ๊ตต๊ฒŒ, ๊ธ€์”จ๋Š” ์—„์ฒญ ํฌ๊ฒŒ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค...^^

5.0

๊น€ํƒœ์˜

50% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ธ๊ฐ•๊ณ„์˜ ์ฒด๋ฆฌํ”ผ์ปค๊ฐ™์€ ๊ฐ•์˜, ๊ตฐ์‚ด์€ ์™ ๋นผ๊ณ  ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๋‹ด์€ ๋‹ค์ด์–ดํŠธ ํŒจํ‚ค์ง€ ๊ฐ™์€ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ์„ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋Š” ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์”จ๋Š” ์ข€ ์ž‘์•„์š”.. ;ใ……;

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • ๋™์‹œ์„ฑ ์ด์Šˆ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ๋™์‹œ์„ฑ ์ด์Šˆ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋™์‹œ์„ฑ ์ด์Šˆ ์ฒ˜๋ฆฌ๋„ ์ž์‹ ์žˆ๊ฒŒ! 
๊ฐ„๋‹จํ•œ ์žฌ๊ณ  ์‹œ์Šคํ…œ์œผ๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐฐ์›Œ๋ณด์„ธ์š”.

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด 
๊ผญ ์•Œ์•„์•ผ ํ•  ๋™์‹œ์„ฑ ์ด์Šˆ ๐Ÿšฉ

๋™์‹œ์„ฑ ์ด์Šˆ๋ฅผ ์•„์‹œ๋‚˜์š”? ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋™์‹œ์„ฑ์„ ๊ณ ๋ คํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐ˜๋“œ์‹œ ํ•  ์ค„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ง‰ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๋™์‹œ์„ฑ ์ด์Šˆ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ์ค‘์š”ํ•œ ์ƒํ™ฉ์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์—์„œ๋Š” ๋™์‹œ์„ฑ ์ด์Šˆ๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์žฌ๊ณ  ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ ๋™์‹œ์„ฑ ์ด์Šˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ž๋ฐ”(Java)์™€ ์Šคํ”„๋ง(Spring)์„ ๋ง‰ ๋—€ ์ดˆ๋ณด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ๋„์›€์ด ๋˜๊ณ ์ž ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ์ œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์•Œ์•„๊ฐ€๋ณผ๊นŒ์š”?

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค ๐Ÿ’ก

๊ฒŒ์‹œํŒ์€ ๋งŒ๋“ค์–ด๋ณด์•˜์ง€๋งŒ, ์‹ค๋ฌด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—๋Š” ์–ด๋–ค ๊ฑธ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„ 

์žฌ๊ณ ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•œ ๋ถ„


3-Step์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” 
์žฌ๊ณ  ์‹œ์Šคํ…œ ์ •ํ•ฉ์„ฑ ๋ฌธ์ œ!

DB๋ž‘ ์‹ค์ œ ์ƒํ’ˆ ์žฌ๊ณ  ์ˆซ์ž๊ฐ€ ์•ˆ ๋งž์•„์š”. 
์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ์š”?

๋™์‹œ์„ฑ ๋ฌธ์ œ(Concurrency Issue)

๋ฌธ์ œ ํ•ด๊ฒฐ #1
Application Level

Application ๋ ˆ๋ฒจ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Synchronized ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

๋ฌธ์ œ ํ•ด๊ฒฐ #2
Database Lock

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” Lock์„ ์ด์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ์„ ์ œ์–ดํ•ด ๋ด…๋‹ˆ๋‹ค. 

  • Pessimistic Lock (๋น„๊ด€์  ๋ฝ)
  • Optimistic Lock (๋‚™๊ด€์  ๋ฝ)
  • Name Lock (๋„ค์ž„ ๋ฝ)

Pessimistic Lock ์‚ฌ์šฉ

๋ฌธ์ œ ํ•ด๊ฒฐ #3
Redis Distributed Lock

Redis(๋ ˆ๋””์Šค)์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด ๋™์‹œ์„ฑ์„ ์ œ์–ดํ•ด ๋ด…๋‹ˆ๋‹ค.

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋น„๊ต
  • Redis Cli๋ฅผ ํ†ตํ•œ ๋ช…๋ น์–ด ์‹ค์Šต
  • Lettuce ํ™œ์šฉํ•˜๊ธฐ
  • Redisson ํ™œ์šฉํ•˜๊ธฐ

Lettuce, Redission ์‚ฌ์šฉ


Q&A๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š” ๐Ÿ’ฌ

Q. ์ด์ œ ์ž๋ฐ”(Java)๋ฅผ ๋‹ค ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ๋“ค์–ด๋„ ๋ ๊นŒ์š”?

์ด ๊ฐ•์˜๋Š” ์Šคํ”„๋ง(Spring)์„ ์ด์šฉํ•˜์—ฌ ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค์–ด๋ณด์‹  ๋ถ„๋“ค์—๊ฒŒ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง์œผ๋กœ ๊ฒŒ์‹œํŒ์„ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์‹  ํ›„์— ๋“ค์œผ์‹œ๋Š” ๊ฑธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Q. ์ด ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด ๋™์‹œ์„ฑ ์ด์Šˆ๋ฅผ ์ „๋ถ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋‚˜์š”?

์ƒํ™ฉ๋งˆ๋‹ค ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ „๋ถ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋™์‹œ์„ฑ ์ด์Šˆ๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์–ด๋–ค ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š”์ง€๋ฅผ ๋ฐฐ์šฐ๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฅด์‹ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Q. Node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋˜ ํ˜„์ง์ž์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ๋“ค์–ด๋„ ๋ ๊นŒ์š”?

์Šคํ”„๋ง์— ํŠนํ™”๋œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”๋ฅผ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋“ค์œผ์…”๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋™์‹œ์„ฑ ์ด์Šˆ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„

  • ๋™์‹œ์„ฑ ์ด์Šˆ๋Š” ๋ฌด์—‡์ธ์ง€ ์•Œ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„

  • Spring์„ ์ด์šฉํ•˜์—ฌ ๊ฒŒ์‹œํŒ์„ ํ•œ ๋ฒˆ์ด๋ผ๋„ ๋งŒ๋“ค์–ด๋ณด์‹  ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Java

  • Spring

  • Spring Data Jpa

์•ˆ๋…•ํ•˜์„ธ์š”
์ตœ์ƒ์šฉ์ž…๋‹ˆ๋‹ค.

5,863

๋ช…

์ˆ˜๊ฐ•์ƒ

478

๊ฐœ

์ˆ˜๊ฐ•ํ‰

318

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

3

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€์‹๊ณต์œ ์ž ์ตœ์ƒ์šฉ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ํ˜„์ง ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

- Spring Data Mongo Contributor
- querydsl Contributor
- grpc-kotlin Contributor
- ksp Contributor
- mybatis Contributor

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

18๊ฐœ โˆ™ (1์‹œ๊ฐ„ 8๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

343๊ฐœ

4.8

343๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • hjin๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    hjin

    ์ˆ˜๊ฐ•ํ‰ 7

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    28% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ „์ฒด ๊ฐ•์˜ ํ•œ์‹œ๊ฐ„ ๋‚จ์ง“ํ•œ ์‹œ๊ฐ„์ธ๋ฐ ๊ต‰์žฅํžˆ ์•Œ์ฐจ๊ฒŒ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค!! ์ฒ˜์Œ ์ ‘ํ•˜๋ฉด ์–ด๋ ต๊ณ  ๊นŒ๋‹ค๋กœ์šด ์ฃผ์ œ๋ผ์„œ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค์—ˆ๋Š”๋ฐ ์ด ๊ฐ•์˜ ๋“ฃ๊ณ  ๋งŽ์ด ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. synchronized, DB lock ๊นŒ์ง€๋งŒ ๋“ฃ๊ณ  ์•„์ง ๋ ˆ๋””์Šค ๋ถ€๋ถ„์€ ์•ˆ๋“ค์—ˆ์ง€๋งŒ ๋ ˆ๋””์Šค๋„ ๊ธฐ๋Œ€์ค‘!!ใ…Žใ…Ž ์ด ํ›„๊ธฐ ๋ณด์‹œ๋Š” ๊ฐœ๋ฐœ์ž๋ถ„๋“ค 1์‹œ๊ฐ„๋งŒ ํˆฌ์žํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ ๋“ค์–ด๋ณด์„ธ์š”!! ๋ฌผ๋ก  ์„ ์ƒ๋‹˜์ด 1์‹œ๊ฐ„ ์„ค๋ช…์ด๊ณ  ์ œ๊ฐ€ ํ•˜๋Š”๊ฑด 1์‹œ๊ฐ„์ด ์•„๋‹ˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค..ใ… ใ…  ๊ทธ๋ ‡์ง€๋งŒ ์ด ๊ฐ•์˜ ๊ฐœ์ธ์ ์œผ๋กœ ๋Œ€๋งŒ์กฑ์ž…๋‹ˆ๋‹คใ…Žใ…Ž ๊ธ€์”จ๊ฐ€ ์ž‘์•˜๋˜๊ฑฐ ๋นผ๊ณค ๋™์‹œ์„ฑ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ์ข‹์•˜์–ด์š”~ ๋‹ค์Œ ๊ฐ•์˜๋„ ์งง๊ณ  ๊ตต๊ฒŒ, ๊ธ€์”จ๋Š” ์—„์ฒญ ํฌ๊ฒŒ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค...^^

    • ์ตœ์ƒ์šฉ
      ์ง€์‹๊ณต์œ ์ž

      hjin ๋‹˜ ๊ต‰์žฅํžˆ ๊ธด ํ›„๊ธฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ €๋„ ์ฒ˜์Œ ์ ‘ํ• ๋•Œ ๊ต‰์žฅํžˆ ์–ด๋ ค์› ๋˜ ์ฃผ์ œ์˜€์–ด์„œ ์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ์„ค๋ช…๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ๋งŽ์ด ์ดํ•ดํ•˜์…จ๋‹ค๋‹ˆ ๊ต‰์žฅํžˆ ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์”จ๋Š”... ๋‹ค์Œ๊ฐ•์˜๋ถ€ํ„ฐ๋Š” ํ‚ค์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๊น€ํƒœ์˜๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๊น€ํƒœ์˜

    ์ˆ˜๊ฐ•ํ‰ 7

    โˆ™

    ํ‰๊ท  ํ‰์  4.7

    5

    50% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ธ๊ฐ•๊ณ„์˜ ์ฒด๋ฆฌํ”ผ์ปค๊ฐ™์€ ๊ฐ•์˜, ๊ตฐ์‚ด์€ ์™ ๋นผ๊ณ  ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๋‹ด์€ ๋‹ค์ด์–ดํŠธ ํŒจํ‚ค์ง€ ๊ฐ™์€ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ์„ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋Š” ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์”จ๋Š” ์ข€ ์ž‘์•„์š”.. ;ใ……;

    • ์ตœ์ƒ์šฉ
      ์ง€์‹๊ณต์œ ์ž

      ๊น€ํƒœ์˜๋‹˜ ๋„ˆ๋ฌด ์ข‹์€ ํ›„๊ธฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) ์ตœ๋Œ€ํ•œ ๊ฐ„๋žตํ•˜๋˜ ๋„์›€๋˜๋Š” ์ •๋ณด๋ฅผ ๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค! ๊ธ€์”จ๋Š” ์ฐจ์ฐจ ์กฐ๊ธˆ์”ฉ ํ‚ค์›Œ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

  • seonjun Moon๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    seonjun Moon

    ์ˆ˜๊ฐ•ํ‰ 28

    โˆ™

    ํ‰๊ท  ํ‰์  4.7

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ด๊ฒŒ ํ•œ์‹œ๊ฐ„ ์งœ๋ฆฌ์ด์ง€๋งŒ ๋„์ปค๋„ ๋งŒ์ ธ๋ณด๊ณ , ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ์ „๋ถ€ ๋‹ค ์‹คํ–‰ํ•ด๋ณด๊ณ  ํ•˜๋‹ˆ ์ง„์งœ ์—„์ฒญ ์•Œ์ฐจ๋„ค์š”... ๋˜ ํ”ผ๋“œ๋ฐฑ๋„ ์ž˜ ๋˜์–ด์žˆ๊ณ ... ๋‹น์‹  ์ •์ฒด๊ฐ€ ๋ฌด์—‡์ด์ฃ ...?

    • ์ตœ์ƒ์šฉ
      ์ง€์‹๊ณต์œ ์ž

      seonjun Moon ๋‹˜ ๋„ˆ๋ฌด ์ข‹์€ํ›„๊ธฐ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

  • code4109๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    code4109

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  3.7

    1

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ฃผ์ œ๋Š” ์ข‹์Šต๋‹ˆ๋‹ค. ์ฃผ์ œ์— ํ˜นํ•ด์„œ ๊ตฌ์ž…ํ–ˆ๋Š”๋ฐ... ๋‹ค ๋“ฃ๊ณ  ๋‚˜๋‹ˆ ๋‚ด์šฉ์˜ ๊นŠ์ด๋‚˜ ๊ฐ•์˜์˜ ํ’ˆ์งˆ์— ๋น„ํ•ด ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ๋„ค์š”. 2๋งŒ์› ์ •๋„๋ผ ์‚ด ๋•Œ๋„ ๋™๋ฃŒ์—๊ฒŒ ์ข€ ์ข‹์€ ์‹์‚ฌ ๋Œ€์ ‘ํ•˜๊ณ  ์–˜๊ธฐ ๋“ฃ๋Š” ๋งˆ์Œ์œผ๋กœ ๊ตฌ์ž…ํ–ˆ๋Š”๋ฐ, ์ปคํ”ผ ํ•œ ์ž” ์ •๋„์˜€์–ด๋„ ์ข‹์„ ๋“ฏ. ์ผ๋‹จ ๊ธ€์”จ๊ฐ€ ๋„ˆ๋ฌด ์ž‘์•„์š”. ์ž‘์•„๋„ ๋„ˆ๋ฌด ์ž‘์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๋ณธ์ธ ํ™”๋ฉด์ด ํฌ๊ฑฐ๋‚˜ ๊ทธ๋Ÿฐ ํ™˜๊ฒฝ์˜ ๋ถ„๋“ค๋งŒ ์ƒ๊ฐํ•˜์‹  ๊ฒƒ ๊ฐ™์€๋ฐ, ์–ด์ฉŒ๋ฉด ์ „ํ˜€ ์ƒ๊ฐ ์•ˆ ํ–ˆ์„ ์ˆ˜๋„ ์žˆ๊ณ ์š”. 15์ธ์น˜ ๋…ธํŠธ๋ถ์—์„œ ๋ณด๋Š” ๊ฑด ๋„ˆ๋ฌด ํž˜๋“œ๋„ค์š”. ๊ฐ•์˜ ์‹œ์ž‘ํ•˜๊ณ  ๋ญ ์ข€ ๋”ฐ๋ผ์„œ ๋งŒ๋“ค๋ ค๊ณ  ๋ณด๋ฉด ํ™”๋ฉด์˜ ๊ธ€์”จ๋ฅผ ์ฝ๊ธฐ ํž˜๋“ค์–ด์„œ ๊ธฐ๋ถ„์ด ์ƒํ•˜๊ณ  ๊ฐ•์˜ ๊ทธ๋งŒ ๋“ฃ๊ณ  ์‹ถ์–ด์ง‘๋‹ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  ์ค‘๊ฐ„์ค‘๊ฐ„ ๊ฐ Lock์˜ ์„ค๋ช…์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๋“ฃ๊ณ  ๋ณด๋‹ˆ ๋‹ค ์•Œ๊ณ  ์žˆ๋˜ ๊ฒƒ๋“ค์ด๋ผ ์ˆ˜๊ฐ•๋ฃŒ๊ฐ€ ๋” ๋น„์‹ธ๊ฒŒ ๋А๊ปด์กŒ๋˜ ๊ฒƒ ๊ฐ™๋„ค์š”. ๋˜ ์„œ๋น„์Šค ๋Œ€์‹  ํŒŒ์‚ฌ๋“œ๋ฅผ ๋งŒ๋“œ์‹ค ๋•Œ ์™œ ์—ฌ๊ธฐ์„œ๋Š” ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ํด๋ž˜์Šค ๋Œ€์‹  ํŒŒ์‚ฌ๋“œ๋ฅผ ์“ฐ๋Š” ์ง€ ์ •๋„๋Š” ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ๋งˆ์ง€๋ง‰์œผ๋กœ NamedLock ๋ถ€ํ„ฐ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ํ•˜๋‚˜๋„ ๋™์ž‘ ์•ˆ ํ•˜๋„ค์š”... ํ™˜๊ฒฝ ๋˜‘๊ฐ™๊ณ  ์ฝ”๋“œ๋„ ๋˜‘๊ฐ™์€๋ฐ ์™œ ์ž‘๋™์„ ์•ˆ ํ•˜๋Š”์ง€... ์‹ฌ์ง€์–ด github์—์„œ ๊ฐ•์˜ ์†Œ์Šค ๋ฐ›์•„์„œ ์‹คํ–‰ํ•ด๋„ ๋™์ž‘์„ ์•ˆ ํ•ด์„œ ๊ทธ๋ƒฅ ํ•™์Šต ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ์ตœ์ƒ์šฉ
      ์ง€์‹๊ณต์œ ์ž

      code4109 ๋‹˜ ์†”์งํ•œ ํ›„๊ธฐ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ˜น์‹œ github ์—์„œ ์–ด๋– ํ•œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ ๋‹ค๋ฉด ๋‹ค๋ฅธ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์„๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ…Œ์ŠคํŠธ์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์œผ์‹ค๊นŒ์š” ?

  • ๊น€์˜๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๊น€์˜

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  3.0

    3

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ผ๋‹จ ์ˆ˜์—… ์ž์ฒด๋Š” ๋งŽ์€ ๋„์›€์ด ๋์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ˆ˜์—… ์ž์ฒด๊ฐ€ ์„ค๋ช…์ด ์นœ์ ˆํ•˜๊ฑฐ๋‚˜ ์ˆ˜์—… ๋‚ด์šฉ์ด ๋งŽ์€ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉํ•˜์‹  ๊ธฐ์ˆ ๋“ค์ด๋‚˜ ์šฉ์–ด๋“ค์„ ์ œ๊ฐ€ ๋”ฐ๋กœ ์ฐพ์•„๋ณด๋ฉด์„œ ๊ณต๋ถ€๋ฅผ ํ•ด๊ฐ€๋ฉด์„œ ๋“ค์–ด์•ผ ํ•˜๋Š” ์ˆ˜์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค.. ๋ฌด์—‡๋ณด๋‹ค๋„ ๊ธ€์”จ๊ฐ€ ์ง„์งœ ๋ฌด์ง€ํ•˜๊ฒŒ ์ž‘์•„์„œ ์ „์ฒดํ™”๋ฉด์œผ๋กœ ๋ณด์ง€ ์•Š์œผ๋ฉด ๊ธ€์”จ๋ฅผ ๋ณผ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ๊ฐœ๋ฐœ ๊ฐ•์˜๋กœ์จ ๊ธฐ๋ณธ์ ์ธ ๋ถ€๋ถ„์ด ๋ฏธํกํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋„ค์š”.. ๊ฒฐ๋ก ์€ 2๋งŒ์› ๋‚ด๊ณ  ๋ณด๊ธฐ์—” ์ข€ ์•„๊น์ง€ ์•Š๋‚˜ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์„ 1๋งŒ์› ์ •๋„๋กœ ๋‚ฎ์ถ”์‹œ๊ฑฐ๋‚˜, ์•„๋‹ˆ๋ฉด ๋‚ด์šฉ์„ ๋” ์ƒ์„ธํ•˜๊ฒŒ ๋Š˜๋ ธ๋‹ค๋ฉด ๋งŒ์กฑํ–ˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ˆ˜์—… ์ž์ฒด๋Š” ํฐ ๋„์›€์ด ๋์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ์ตœ์ƒ์šฉ
      ์ง€์‹๊ณต์œ ์ž

      ๊น€์˜๋‹˜ ์ž์„ธํ•œ ํ›„๊ธฐ ์ •๋ง ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ๊ธ€์ž ํฌ๊ธฐ๋ฅผ ํ‚ค์šด ํ›„์— ์žฌ ์—…๋กœ๋“œ๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!