Post

๐Ÿน 12. System design & Scalability

09. ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ

[ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ• ]

  • ์†Œํ†ตํ•˜๋ผ

    : ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฌธ์ œ๋ฅผ ์ถœ์ œํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ์˜์‚ฌ์†Œํ†ต ๋Šฅ๋ ฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๋ฉด์ ‘๊ด€๊ณผ ๋Š์ž„์—†์ด ์˜์‚ฌ์†Œํ†ตํ•˜๋ผ. ๋ฉด์ ‘๊ด€์—๊ฒŒ ์งˆ๋ฌธ์„ ๋˜์ง€๊ณ , ์‹œ์Šคํ…œ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์„ ์—ด๋ฆฐ ๋งˆ์Œ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๋ผ.

  • ์ฒ˜์Œ์—๋Š” ํฌ๊ด„์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋ผ

    : ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฐ”๋กœ ๋›ฐ์–ด๋“ค์ง€ ๋ง๊ณ  ํŠน์ • ๋ถ€๋ถ„์„ ๊ณผ๋„ํ•˜๊ฒŒ ํŒŒ๊ณ ๋“ค์ง€ ๋ง๋ผ

  • ํ™”์ดํŠธ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

    : ํ™”์ดํŠธ๋ณด๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ œ์•ˆํ•˜๋Š” ์„ค๊ณ„๋ฅผ ๋ฉด์ ‘๊ด€์ด ์ดํ•ดํ•˜๊ฒŒ๋” ๋„์›€์„ ์ค€๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ฐ›์ž๋งˆ์ž ํ™”์ดํŠธ๋ณด๋“œ์— ์šฐ๋ฆฌ๊ฐ€ ์ œ์•ˆํ•˜๋Š” ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋ฉฐ ์„ค๋ช…ํ•˜๋ผ.

  • ๋ฉด์ ‘๊ด€์ด ์šฐ๋ คํ•˜๋Š” ๋ถ€๋ถ„์„ ์ธ์ •ํ•˜๋ผ

    : ๋ฉด์ ‘๊ด€์€ ์•„๋งˆ๋„ ์šฐ๋ ค๋˜๋Š” ๋ถ€๋ถ„์„ ํŒŒ๊ณ ๋“ค๋ ค ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฒƒ์„ ๋ฌด์‹œํ•˜์ง€ ๋ง๋ผ. ๋ฉด์ ‘๊ด€์˜ ์šฐ๋ ค๋ฅผ ์ธ์ •ํ•ด๋ผ. ๋ฉด์ ‘๊ด€์ด ์งš์€ ๋ฌธ์ œ์ ์„ ์ธ์ •ํ•˜๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๋ผ.

  • ๊ฐ€์ •์„ ํ•  ๋•Œ ์ฃผ์˜ํ•˜๋ผ

    : ์ž˜๋ชป๋œ ๊ฐ€์ •์€ ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ ๋ฐ”๊ฟ” ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ก€๋กœ ๋ฐ์ดํ„ฐ ํ†ต๊ณ„/๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“œ๋Š” ์‹œ์Šคํ…œ์ด ์žˆ์„ ๋•Œ, ์ด ์‹œ์Šคํ…œ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ€ ์–ธ์ œ๋‚˜ ์ตœ์‹  ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผ ํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€์— ๋”ฐ๋ผ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

  • ์—ฌ๋Ÿฌ๋ถ„์ด ์ƒ๊ฐํ•˜๋Š” ๊ฐ€์ •์„ ๋ช…ํ™•ํžˆ ์–ธ๊ธ‰ํ•˜๋ผ

    : ๊ฐ€์ •์„ ํ•  ๋•Œ ๊ทธ๊ฒƒ์„ ๋ฉด์ ‘๊ด€์—๊ฒŒ ์•Œ๋ ค ์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ์‹ค์ˆ˜ํ–ˆ์„ ๋•Œ ๋ฉด์ ‘๊ด€์ด ๋ฐ”๋กœ์žก์•„ ์ค„ ์ˆ˜ ์žˆ๊ณ , ์ ์–ด๋„ ํ˜„์žฌ ์–ด๋–ค ๊ฐ€์ •์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ฉด์ ‘๊ด€์ด ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  • ํ•„์š”ํ•˜๋‹ค๋ฉด ์–ด๋ฆผ์žก์•„ ๋ณด๋ผ

    : ๋งŽ์€ ๊ฒฝ์šฐ์— ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ํฌ๋กค๋Ÿฌ(web crawler)๋ฅผ ์„ค๊ณ„ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ๋ชจ๋“  URL์„ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ณต๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ์–ด๋ฆผ์žก์•„ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ์ด ํฌ๊ธฐ๋ฅผ ์–ด๋ฆผ์žก์•„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ๋›ฐ์–ด๋“ค๋ผ

    : ์ง€์›์ž๋กœ์„œ ๋ฌธ์ œ๋ฅผ ์ฑ…์ž„์ ธ์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์กฐ์šฉํžˆ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ ๋ฉด์ ‘๊ด€๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ์™€ ๋™์‹œ์— ๋ฌธ์ œ๋„ ํ’€์–ด๋‚ด์•ผ ํ•œ๋‹ค. ์žฅ๋‹จ์ ์„ ์—ด๋ฆฐ ๋งˆ์Œ์œผ๋กœ ๋ฐ›์•„๋“ค์—ฌ๋ผ. ๊ณ„์†ํ•ด์„œ ๊นŠ์ด ํŒŒ๊ณ ๋“ค์–ด๋ผ. ๊ณ„์†ํ•ด์„œ ํ–ฅ์ƒ์‹œ์ผœ ๋‚˜๊ฐ€๋ผ.

์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์€ ์ตœ๊ณ ์˜ ์„ค๊ณ„๋ฅผ ํ•ด๋‚ด๋Š” ๊ฒƒ๋ณด๋‹ค ๋Œ€๊ฒŒ ๊ทธ ๊ณผ์ •์„ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ๋‹ค.

[ ์‹œ์Šคํ…œ ์„ค๊ณ„: ๋‹จ๊ณ„๋ณ„ ์ ‘๊ทผ๋ฒ• ]

์‹ค์ œ ์„ค๊ณ„์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋งŽ์€ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฉด์ ‘์—์„œ๋„ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.

1๋‹จ๊ณ„: ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ํ•œ์ •ํ•˜๋ผ

๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์‹œ์Šคํ…œ๊ณผ ๋ฉด์ ‘๊ด€์ด ์›ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ™์€์ง€ ํ™•์‹คํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ํ•œ์ •ํ•˜๋Š” ์ž‘์—…์€ ์ค‘์š”ํ•˜๋‹ค.

TinyURL ์„ค๊ณ„ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ•  ๋•Œ, ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์„ ๊ฒƒ์ด๋‹ค.

  • ๊ฐœ๊ฐœ์ธ์ด ์›ํ•˜๋Š” ๋Œ€๋กœ ์ถ•์•ฝ๋œ URL์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์ถ•์•ฝ๋œ URL์ด ํ•ญ์ƒ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š”๊ฐ€?
  • ํด๋ฆญ์— ๊ด€ํ•œ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๊ฐ€?
  • ํ•œ ๋ฒˆ ์„ค์ •๋œ URL์€ ์˜์›ํžˆ ์—†์–ด์ง€์ง€ ์•Š๋Š”๊ฐ€, ์•„๋‹ˆ๋ฉด ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์‚ญ์ œ๋˜๋Š”๊ฐ€?

์ด ์งˆ๋ฌธ๋“ค์€ ์‹œ์Šคํ…œ ์„ค๊ณ„์— ์•ž์„œ ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๊ฒƒ๋“ค์ด๋‹ค.

์ฃผ์š”ํ•œ ํŠน์ง•์ด๋‚˜ ์‚ฌ์šฉ๋˜๋Š” ์‚ฌ๋ก€๋ฅผ ๋‚˜์—ดํ•ด๋ณด์ž. ์˜ˆ๋ฅผ ๋“ค์–ด TinyURL์€ ์•„๋งˆ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

  • URL์„ TinyURL๋กœ ์ถ•์•ฝ
  • URL์„ ๋ถ„์„
  • TinyURL๊ณผ ์—ฐ๊ฒฐ๋œ URL์„ ๊ฒ€์ƒ‰
  • ์‚ฌ์šฉ์ž ๊ณ„์ • ๋ฐ ๋งํฌ ๊ด€๋ฆฌ

2๋‹จ๊ณ„: ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์ •์„ ๋งŒ๋“ค๋ผ

ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ฐ€์ •์„ ์„ธ์šฐ๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์ง€๋งŒ, ํ•ฉ๋‹นํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ์Šคํ…œ์ด ํ•˜๋ฃจ์— 100๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค๊ฑฐ๋‚˜, ๋ฉ”๋ชจ๋ฆฌ์— ์ œ์•ฝ์ด ์—†๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฐ€์ •์€ ํ•ฉ๋‹นํ•˜์ง€ ์•Š๋‹ค.

ํ•˜์ง€๋งŒ ํ•˜๋ฃจ์— ์ตœ๋Œ€ ๋ฐฑ๋งŒ ๊ฐœ์˜ URL์„ ์ƒ์„ฑํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์€ ํ•ฉ๋‹นํ•˜๋‹ค. ์ด๋Ÿฐ ๊ฐ€์ •์„ ํ†ตํ•ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ณ„์‚ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์–ด๋–ค ๊ฐ€์ •์„ ์„ธ์šฐ๋ ค๋ฉด โ€˜์ œํ’ˆ์— ๋Œ€ํ•œ ๊ฐโ€™์ด ์žˆ์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค

์˜ˆ๋ฅผ ๋“ค์–ด, ์ตœ๊ทผ ๋ฐ์ดํ„ฐ์— ๋น„ํ•ด ์ตœ๋Œ€ 10๋ถ„ ์ •๋„ ์˜ค์ฐจ๊ฐ€ ์žˆ์–ด๋„ ๊ดœ์ฐฎ์€๊ฐ€? ์ด๋Ÿฐ ๊ฑด ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ๋ฐฉ๊ธˆ ์ถ”๊ฐ€ํ•œ URL์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๊ธฐ๊นŒ์ง€ 10๋ถ„์ด ๊ฑธ๋ฆฐ๋‹ค๋ฉด ๊ทธ ์ œํ’ˆ์€ ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋Œ€๋ถ€๋ถ„ URL์„ ์ถ”๊ฐ€ํ•œ ๋’ค ๊ณง๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ, ํ†ต๊ณ„์ ์œผ๋กœ ๋ดค์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ 10๋ถ„ ์ •๋„ ์˜ค๋ž˜๋œ ๊ฑด ๊ดœ์ฐฎ๋‹ค.

3๋‹จ๊ณ„: ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๋จผ์ € ๊ทธ๋ฆฌ๋ผ

์‹œ์Šคํ…œ์˜ ์ฃผ์š”ํ•œ ๋ถ€๋ถ„์„ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ทธ๋ฆฌ๋ผ. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์˜ค๋Š” ์‹œ์Šคํ…œ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ํ•œ ์„œ๋ฒ„๊ตฐ์€ ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด ์˜ค๊ณ  ๋‹ค๋ฅธ ์„œ๋ฒ„๊ตฐ์€ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š” ์‹œ์Šคํ…œ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ ์‹œ์Šคํ…œ์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ฆฌ๋ผ.

์‹œ์Šคํ…œ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ทธ ํ๋ฆ„์„ ๋ณด์—ฌ๋ผ. ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด URL์„ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด ๊ทธ ๋‹ค์Œ์—๋Š” ์–ด๋–ป๊ฒŒ ๋˜๊ฒ ๋Š”๊ฐ€?

ํ˜„์žฌ ๋‹จ๊ณ„์—์„  ๊ทœ๋ชจ ํ™•์žฅ์„ฑ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œํ•ด๋„ ๋œ๋‹ค. ๊ทธ๋ƒฅ ๋‹จ์ˆœํ•˜๊ณ  ๋ช…๋ฐฑํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค๊ณ  ์ ‘๊ทผํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

4๋‹จ๊ณ„: ํ•ต์‹ฌ ๋ฌธ์ œ์ ์„ ์ฐพ์•„๋ผ

๋งˆ์Œ์†์—์„œ ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„๋ฅผ ๋งˆ์นœ ๋’ค์—๋Š” ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ๋ฌธ์ œ์— ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค. ์–ด๋Š ๋ถ€๋ถ„์ด ๋ณ‘๋ชฉ์ง€์ ์ผ๊นŒ? ์ด ์‹œ์Šคํ…œ์ด ํ’€์–ด์•ผ ํ•  ์ฃผ๋œ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

ex) TinyURL ์„ค๊ณ„

์–ด๋–ค URL์€ ๋“œ๋ฌผ๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ˜๋ฉด ํŠน์ • URL์˜ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ‘์ž๊ธฐ ์น˜์†Ÿ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์‹œ์Šคํ…œ์ด ๋Š๊น€์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฝ์–ด์˜ค๊ธธ ์›ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค.

์ด ๋ถ€๋ถ„์—์„œ ์•„๋งˆ๋„ ๋ฉด์ ‘๊ด€์ด ์–ด๋Š ์ •๋„ ๊ฐ€์ด๋“œ๋ฅผ ํ•ด์ค„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿด ๋• ๊ทธ ์กฐ์–ธ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ์‹œ์Šคํ…œ์— ์ ์šฉํ•˜๋ผ

5๋‹จ๊ณ„: ํ•ต์‹ฌ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์‹œ ์„ค๊ณ„ํ•˜๋ผ

ํ•ต์‹ฌ ๋ฌธ์ œ์— ๋งž๋„๋ก ์„ค๊ณ„๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ๊ฐˆ์•„ ์—Ž๊ฑฐ๋‚˜, ๋ช‡ ๊ฐ€์ง€ ์ž์ž˜ํ•œ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •(์บ์‹œ ์‚ฌ์šฉ) ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณธ์ธ์ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š” ์ œ์•ฝ์‚ฌํ•ญ๋“ค์„ ๋ฉด์ ‘๊ด€๊ณผ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ์ค‘์š”ํ•˜๋‹ค.

[ ๊ทœ๋ชจ ํ™•์žฅ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋‹จ๊ณ„๋ณ„ ์ ‘๊ทผ๋ฒ• ]

๋‹จ์ˆœํžˆ ์‹œ์Šคํ…œ์˜ ํ•œ ๋ถ€๋ถ„ ํ˜น์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•ด ๋ณด๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๋ฐ˜๋“œ์‹œ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์„ ์‹ ๊ฒฝ ์จ์•ผ ํ•œ๋‹ค.

1๋‹จ๊ณ„: ์งˆ๋ฌธํ•˜๋ผ

๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธํ•ด์•ผ ํ•œ๋‹ค. ๋ฉด์ ‘๊ด€์ด ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์€ ์„ธ๋ถ€์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

2๋‹จ๊ณ„: ํ˜„์‹ค์  ์ œ์•ฝ์„ ๋ฌด์‹œํ•˜๋ผ

๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ์ด ์—†๊ณ , ์ปดํ“จํ„ฐ ํ•œ ๋Œ€์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค ๊ฐ€์ •ํ–ˆ์„ ๋•Œ ์ด์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด ์‹ค์ œ ์ •๋‹ต์— ๋Œ€ํ•œ ์œค๊ณฝ์„ ๊ทธ๋ฆฌ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

3๋‹จ๊ณ„: ํ˜„์‹ค๋กœ ๋Œ์•„์˜ค๋ผ

์›๋ž˜ ๋ฌธ์ œ๋กœ ๋Œ์•„์™€ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋Š” ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€, ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์กฐ๊ฐ์œผ๋กœ ์ชผ๊ฐฐ์„ ๋•Œ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ• ์ง€ ์ƒ๊ฐํ•ด ๋ด๋ผ.

์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํ”ํ•œ ๋ฌธ์ œ๋Š”

  • ์–ด๋–ค ๋…ผ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆŒ ๊ฒƒ์ธ๊ฐ€
  • ํŠน์ • ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋Š ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ธ๊ฐ€

๋“ฑ์ด ์žˆ๋‹ค.

4๋‹จ๊ณ„: ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ผ

๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ์ ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ง€ ์ƒ๊ฐํ•ด ๋ด์•ผ ํ•œ๋‹ค. ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฌธ์ œ์  ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๊ทธ ์ˆ˜์ค€์„ ์™„ํ™”์‹œํ‚ค๋Š” ๋ฐ ๊ทธ์น  ์ˆ˜๋„ ์žˆ๋‹ค.

์ˆœํ™˜์  ์ ‘๊ทผ๋ฒ•(iterative approach)์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ์šฉํ•œ ์ ‘๊ทผ๋ฒ•์ด๋‹ค. 3๋‹จ๊ณ„์—์„œ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๊ทธ๋Ÿฌ๋ฉด ๊ทธ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐ€๊ณ  ์ด๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์ž‘์—…์„ ๋œปํ•œ๋‹ค.

๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํ’€ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ์ž…์ฆํ•˜๋ ค๋Š” ๋ชฉ์ ์ด๋‹ค. ๋‹ต์•ˆ์—์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ œ์ ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ๊ทธ ๋Šฅ๋ ฅ์„ ์ž…์ฆํ•  ์ˆ˜ ์žˆ๋Š” ๊ต‰์žฅํžˆ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

[ ์‹œ์Šคํ…œ ์„ค๊ณ„์˜ ํ•ต์‹ฌ ๊ฐœ๋… ]

์ˆ˜ํ‰์ (horizontal) vs ์ˆ˜์ง์ (vertical) ๊ทœ๋ชจ ํ™•์žฅ

  • ์ˆ˜์ง์  ๊ทœ๋ชจ ํ™•์žฅ(vertical scaling)

    : ํŠน์ • ๋…ธ๋“œ์˜ ์ž์›(resource)์˜ ์–‘์„ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ๋ฒ•.

    ex) ์„œ๋ฒ„์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ด

  • ์ˆ˜์ง์  ๊ทœ๋ชจ ํ™•์žฅ(horizontal scaling)

    : ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

    ex) ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์„œ๋ฒ„ ํ•œ ๋Œ€๊ฐ€ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ๋ถ€ํ•˜(load)๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

์ˆ˜์ง์  ๊ทœ๋ชจ ํ™•์žฅ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ‰์  ๊ทœ๋ชจ ํ™•์žฅ๋ณด๋‹ค ์‰ฝ์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ํ˜น์€ ๋””์Šคํฌ์™€ ๊ฐ™์€ ๊ฒƒ๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ œํ•œ์ ์ด๋‹ค.

์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์žฅ์น˜(load balancer)

์ผ๋ฐ˜์ ์œผ๋กœ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์ด ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ํ”„๋ก ํŠธ์—”๋“œ ๋ถ€๋ถ„์€ ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์žฅ์น˜(load balancer)๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋œ๋‹ค.

์„œ๋ฒ„์— ๊ฑธ๋ฆฌ๋Š” ๋ถ€ํ•˜๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ๊ท ์ผํ•˜๊ฒŒ ๋ถ„์‚ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ  ์„œ๋ฒ„ ํ•œ ๋Œ€ ๋•Œ๋ฌธ์— ์ „์ฒด ์‹œ์Šคํ…œ์ด ์ฃฝ๊ฑฐ๋‚˜ ๋‹ค์šด๋˜๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์„œ๋ฒ„ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ๊ทผ๋ณธ์ ์œผ๋กœ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋†”์•ผ ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ญ์ •๊ทœํ™”(denormalization)์™€ NoSQL

์กฐ์ธ ์—ฐ์‚ฐ์€ ์‹œ์Šคํ…œ์ด ์ปค์งˆ์ˆ˜๋ก ๊ต‰์žฅํžˆ ๋Š๋ ค์ง„๋‹ค.

์—ญ์ •๊ทœํ™”(denormalization)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์—ฌ๋ถ„์˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ฝ๊ธฐ ์—ฐ์‚ฐ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ ๊ฒƒ

ex) ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ๊ณผ์ œ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์•Œ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์— ๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ธฐ๋ณด๋‹จ ์• ์ดˆ์— ๊ณผ์ œ ํ…Œ์ด๋ธ”์— ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€๋กœ ์ €์žฅํ•ด ๋†“์œผ๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

NoSQL

์กฐ์ธ ์—ฐ์‚ฐ ์ž์ฒด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฃŒ๋ฅผ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•ด ๋†“๋Š”๋ฐ, ์ด ๋ฐฉ์‹์ด ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์— ์ข‹๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

[ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„ํ• (์ƒค๋”ฉ) ]

์ƒค๋”ฉ(sharding)

๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์— ๋‚˜๋ˆ  ์ €์žฅํ•˜๋Š” ๋™์‹œ์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์ปดํ“จํ„ฐ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹

  • ์ˆ˜์ง์  ๋ถ„ํ• (vertical partitioning)

    : ์ž๋ฃŒ์˜ ํŠน์„ฑ๋ณ„๋กœ ๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ์‹

    ex) ์†Œ์…œ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค ๋•Œ, ๊ฐœ์ธ ์ •๋ณด์™€ ๊ด€๋ จ๋œ ํ˜น์€ ๋ฉ”์‹œ์ง€์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„๊ณผ ๊ฐ™์ด ๊ทธ ํŠน์„ฑ์— ๋”ฐ๋ผ ์ž๋ฃŒ ๋ถ„ํ• 

    • ๋‹จ์ 
      ํŠน์ • ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์œผ๋กœ ์ปค์ง€๋ฉด, (๋‹ค๋ฅธ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์žฌ๋ถ„ํ• ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค
  • ํ‚ค ํ˜น์€ ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๋ถ„ํ• 

    : mod(key, n)์˜ ๊ฐ’์„ ์ด์šฉํ•ด์„œ N๊ฐœ์˜ ์„œ๋ฒ„์— ๋ถ„ํ•  ์ €์žฅ

    • ๋ฌธ์ œ์ 
      ์„œ๋ฒ„์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์„œ๋ฒ„๋ฅผ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์žฌ๋ถ„๋ฐฐ ํ•ด์•ผํ•˜๋Š”๋ฐ, ๊ต‰์žฅํžˆ ๋น„์šฉ์ด ํฐ ์ž‘์—…์ด๋‹ค.
  • ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ถ„ํ• 

    ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์กฐํšŒ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•

    • ์žฅ์ 
      ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค
    • ๋‹จ์ 
      • ์กฐํšŒ ํ…Œ์ด๋ธ”์ด ๋‹จ์ผ ์žฅ์•  ์ง€์ ์ด ๋  ์ˆ˜ ์žˆ์Œ
      • ์ง€์†์ ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ฝ๋Š” ํ–‰์œ„๊ฐ€ ์ „์ฒด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Œ

์บ์‹ฑ(caching)

์ธ๋ฉ”๋ชจ๋ฆฌ(in-memory) ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ

ํ‚ค-๊ฐ’(key-value)์„ ์Œ์œผ๋กœ ๊ฐ–๋Š” ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์‚ฌ์ด์— ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์บ์‹œ ๋จผ์ € ํ™•์ธ
  2. ์บ์‹œ๊ฐ€ ํ•ด๋‹น ํ‚ค ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ทธ๋•Œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์‚ดํ•Œ

์บ์‹œํ•  ๋•Œ

  • ์ฟผ๋ฆฌ์™€ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹ฑ
  • ํŠน์ • ๊ฐ์ฒด๋ฅผ ์บ์‹œ์— ์ €์žฅ

ex) ์›น ํŽ˜์ด์ง€์˜ ์–ด๋–ค ๋ถ€๋ถ„์„ ๋ Œ๋”๋งํ•œ ๊ฒฐ๊ณผ๋‚˜ ํ˜น์€ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ผ์˜จ ์ตœ๊ทผ ํฌ์ŠคํŒ… ๋ฆฌ์ŠคํŠธ

๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ & ํ

์†๋„๊ฐ€ ๋Š๋ฆฐ ์—ฐ์‚ฐ์€ ๋น„๋™๊ธฐ์‹(asynchronous)๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ์—ฐ์‚ฐ์ด ๋๋‚˜๊ธฐ๊นŒ์ง€ ํ•˜์—ผ์—†์ด ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์ด ์—ฐ์‚ฐ์„ ๋ฏธ๋ฆฌ ํ•ด ๋†“์„ ์ˆ˜๋„ ์žˆ๋‹ค.

ex) ๊ณง ๊ฐฑ์‹ ํ•ด์•ผ ํ•  ์›น์‚ฌ์ดํŠธ์˜ ๊ฐ ๋ถ€๋ถ„๋“ค์ด ํ์— ๋“ค์–ด์žˆ๋‹ค.

์ด ์›น์‚ฌ์ดํŠธ๊ฐ€ ์–ด๋–ค ํฌ๋Ÿผ์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ํ์— ๋“ค์–ด ์žˆ๋Š” ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋Š” ์•„๋งˆ๋„ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๊ธ€๋“ค๊ณผ ๋ช‡ ๊ฐ€์ง€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์ผ์ด๋‹ค. ์ด ๊ฒฝ์šฐ ์ตœ๊ทผ ๊ธ€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•ฝ๊ฐ„ ์˜ค๋ž˜๋˜์–ด ๋œ ์ •ํ™•ํ•˜๋”๋ผ๋„ ๊ดœ์ฐฎ๋‹ค.

โ†’ ์ƒˆ๋กœ์šด ์ฝ”๋ฉ˜ํŠธ ํ•˜๋‚˜ ๋•Œ๋ฌธ์— ์บ์‹œ ๋ฏธ์Šค(cache miss)๊ฐ€ ๋‚˜๊ณ , ๊ทธ๋ž˜์„œ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š๋ผ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋œ ์ •ํ™•ํ•œ ๊ฒƒ์ด ๋‚ซ๋‹ค.

๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ์ฒ™๋„

๋„คํŠธ์›Œํฌ์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฒ™๋„(metric)์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋Œ€์—ญํญ(bandwidth)

    : ๋‹จ์œ„ ์‹œ๊ฐ„์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€์น˜

    • ๋ณดํ†ต ์ดˆ๋‹น ๋ช‡ ๋น„ํŠธ(bit)๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€๋กœ ๊ณ„์‚ฐ
    • ํ˜น์€ ์ดˆ๋‹น ๋ช‡ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ(gigabyte)๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€๋กœ ๊ณ„์‚ฐ
  • ์ฒ˜๋ฆฌ๋Ÿ‰(throughput)

    : ๋‹จ์œ„ ์‹œ๊ฐ„์— ์‹ค์ œ๋กœ ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ์–‘

  • ์ง€์—ฐ์†๋„(latency)

    : ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„

    ์ฆ‰, ๋ฐœ์†ก์ž(sender)๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ ์‹œ์ ๋ถ€ํ„ฐ ์ˆ˜์‹ ์ž(receiver)๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์‹œ์ ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„

ex) ๊ณต์žฅ์˜ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ ๋ฌผํ’ˆ ์ด๋™

โ†’ ์ง€์—ฐ์†๋„: ๋ฌผํ’ˆ ํ•˜๋‚˜๊ฐ€ ํ•œ ์ง€์ ์—์„œ ๋‹ค๋ฅธ ์ง€์ ๊นŒ์ง€ ์˜ฎ๊ฒจ์ง€๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„

โ†’ ์ฒ˜๋ฆฌ๋Ÿ‰: ๋‹จ์œ„ ์‹œ๊ฐ„์— ์˜ฎ๊ฒจ์ง„ ๋ฌผํ’ˆ์˜ ๊ฐœ์ˆ˜

  • ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ์˜ ํญ์„ ๋„“ํžŒ๋‹ค๊ณ  ์ง€์—ฐ ์†๋„๊ฐ€ ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋Œ€์—ญํญ์„ ๋ฐ”๊พผ๋‹ค๋ฉด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

    โ†’ ๋” ๋งŽ์€ ๋ฌผํ’ˆ์„ ๋ฒจํŠธ ์œ„์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ์ฃผ์–ด์ง„ ๋‹จ์œ„ ์‹œ๊ฐ„์— ๋” ๋งŽ์€ ๋ฌผํ’ˆ์„ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.

  • ๋ฒจํŠธ์˜ ๊ธธ์ด๋ฅผ ์ค„์ด๋ฉด ์ง€์—ฐ ์†๋„ ๋˜ํ•œ ์ค„์–ด๋“ค ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€์—ญํญ์ด๋‚˜ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.
  • ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ์˜ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๋ฉด ์„ธ ๊ฐ€์ง€ ์ฒ™๋„ ๋ชจ๋‘ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

    ๊ณต์žฅ์—์„œ ๋ฌผํ’ˆ ์˜ฎ๊ธฐ๋Š” ์†๋„๊ฐ€ ์ค„์–ด๋“ค ๊ฒƒ์ด๊ณ , ๋‹จ์œ„ ์‹œ๊ฐ„์— ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฌผํ’ˆ์˜ ๊ฐœ์ˆ˜ ๋˜ํ•œ ๋Š˜์–ด๋‚  ๊ฒƒ์ด๋‹ค.

  • ๋Œ€์—ญํญ = ์ตœ์ƒ์˜ ์กฐ๊ฑด์—์„œ ๋‹จ์œ„ ์‹œ๊ฐ„์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผํ’ˆ์˜ ๊ฐœ์ˆ˜

    ์ฒ˜๋ฆฌ๋Ÿ‰ = ์‹ค์ œ ์ƒํ™ฉ์—์„œ(๊ธฐ๊ณ„๊ฐ€ ์ž˜ ๋™์ž‘ ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ์—๋„) ๋‹จ์œ„ ์‹œ๊ฐ„์— ์ „์†ก๋œ ๋ฌผํ’ˆ์˜ ๊ฐœ์ˆ˜

์ง€์—ฐ์‹œ๊ฐ„์€ ๋ฌด์‹œ๋˜๊ธฐ ์‰ฝ์ง€๋งŒ ํŠน์ • ์ƒํ™ฉ์—์„  ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค

ex) ์˜จ๋ผ์ธ ๊ฒŒ์ž„

์˜จ๋ผ์ธ ์Šคํฌ์ธ  ๊ฒŒ์ž„์„ ํ•˜๊ณ  ์žˆ์„ ๋•Œ ์ƒ๋Œ€๋ฐฉ์˜ ์›€์ง์ž„์„ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ณผ ์ˆ˜ ์—†๋‹ค๋ฉด ๊ฒŒ์ž„์„ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€?

์ฒ˜๋ฆฌ๋Ÿ‰์€ ์••์ถ• ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์–ด๋–ป๊ฒŒ๋“  ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ง€ ์•Š๋‹ค.

MapReduce

โ†’ ๊ตฌ๊ธ€๊ณผ ๊ด€๋ จ ์žˆ๋Š”๋ฐ, ํ˜„์žฌ๋Š” ๊ตฌ๊ธ€์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

MapReduce ํ”„๋กœ๊ทธ๋žจ์€ ๋ณดํ†ต ๊ต‰์žฅํžˆ ์ปค๋‹ค๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๋งต(Map) ๋‹จ๊ณ„์™€ ๋ฆฌ๋“€์Šค(Reduce) ๋‹จ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ์‹œ์Šคํ…œ์ด ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.

  • Map์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ๋’ค <key, value>์Œ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • Reduce๋Š” ํ‚ค(key), ๊ทธ๋ฆฌ๊ณ  ํ‚ค์™€ ๊ด€๋ จ๋œ ๊ฐ’(value)๋“ค์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ๋’ค ๋‚˜๋ฆ„์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„ ์ƒˆ๋กœ์šด ํ‚ค์™€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ด ๊ฒฐ๊ณผ๋ฅผ ๋˜ ๋‹ค๋ฅธ Reduce ํ”„๋กœ๊ทธ๋žจ์— ๋„˜๊ธธ ์ˆ˜๋„ ์žˆ๋‹ค.

MapReduce๋Š” ๋งŽ์€ ๊ณผ์ •์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ต‰์žฅํžˆ ์ปค๋‹ค๋ž€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋„ ๊ทœ๋ชจ ํ™•์žฅ์ด ์‰ฌ์›Œ์ง„๋‹ค.

[ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ ๊ณ ๋ คํ•  ์  ]

  • ์‹คํŒจ(Failures)

    : ์‹œ์Šคํ…œ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด๋“  ์‹คํŒจ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ๋ถ€๋ถ„์ด ์‹คํŒจํ–ˆ์„ ๋•Œ๋ฅผ ๋Œ€๋น„ํ•œ ๋Œ€๋น„์ฑ…์„ ์ค€๋น„ํ•ด์•ผ ํ•œ๋‹ค.

  • ๊ฐ€์šฉ์„ฑ(availability) ๋ฐ ์‹ ๋ขฐ์„ฑ(relliability)

    : ๊ฐ€์šฉ์„ฑ - ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์˜ ์‹œ๊ฐ„์„ ๋ฐฑ๋ถ„์œจ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ ์‹ ๋ขฐ์„ฑ - ํŠน์ • ๋‹จ์œ„ ์‹œ๊ฐ„์— ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ํ™•๋ฅ 

  • ์ฝ๊ธฐ ์ค‘์‹ฌ vs ์“ฐ๊ธฐ ์ค‘์‹ฌ

    : ์ฝ๋Š” ์—ฐ์‚ฐ์ด ๋งŽ์€์ง€ ์•„๋‹ˆ๋ฉด ์“ฐ๋Š” ์—ฐ์‚ฐ์ด ๋งŽ์€์ง€์— ๋”ฐ๋ผ ์„ค๊ณ„ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. โ†’ ์“ฐ๋Š” ์—ฐ์‚ฐ์ด ๋งŽ๋‹ค๋ฉด ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ƒ๊ฐ โ†’ ์ฝ๋Š” ์—ฐ์‚ฐ์ด ๋งŽ๋‹ค๋ฉด ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ƒ๊ฐ

  • ๋ณด์•ˆ(security)

    : ๋ณด์•ˆ ์œ„ํ˜‘์€ ์‹œ์Šคํ…œ์— ์—„์ฒญ๋‚œ ํ•ด๋ฅผ ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์‹œ์Šคํ…œ์ด ์ง๋ฉดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด๊ณ  ๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ• ์ง€ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

[ โ€˜์™„๋ฒฝํ•œโ€™ ์‹œ์Šคํ…œ์€ ์—†๋‹ค ]

TinyURL, ๊ตฌ๊ธ€ ๋งต์Šค, ๋‹ค๋ฅธ ์–ด๋–ค ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด์„œ๋„ ์™„๋ฒฝํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์‹œ์Šคํ…œ ์„ค๊ณ„๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋“  ์‹œ์Šคํ…œ์— ์žฅ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐ›์•˜์„ ๋•Œ

  • ์‚ฌ๋ก€๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ 
  • ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๊ณ 
  • ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์ •์„ ์„ธ์šด ๋’ค

๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๊ณ„ํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

[ ์—ฐ์Šต ๋ฌธ์ œ ]

์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํŠน์ • ๋‹จ์–ด ๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ํ•œ๋‹ค.

๋‹จ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์ง€๋งŒ, ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜์•ผ ํ•œ๋‹ค. ์ฆ‰, โ€œbookkeeperโ€๋ผ๋Š” ๋‹จ์–ด์— โ€œbookโ€์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋˜๊ธด ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฌธ์„œ๊ฐ€ โ€œbookโ€์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๋‚˜ํƒ€๋‚˜์„œ๋Š” ์•ˆ๋œ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „ ๋ฌธ์„œ๋ฅผ ์ฐพ๋Š” ํ–‰์œ„๋ฅผ ํ•œ ๋ฒˆ๋งŒ ํ•  ๊ฒƒ์ธ์ง€ findWords๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•  ๊ฒƒ์ธ์ง€ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” findWords๋ฅผ ๊ฐ™์€ ๋ฌธ์„œ ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๋”ฐ๋ผ์„œ ์•ฝ๊ฐ„์˜ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์ด ๋“ค์–ด๊ฐ€๋„ ๊ดœ์ฐฎ๋‹ค.

1๋‹จ๊ณ„

์šฐ์„  ๋ฌธ์„œ๊ฐ€ ๊ฒจ์šฐ ์ˆ˜์‹ญ ๊ฐœ ์žˆ์„ ๋•Œ๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค.

์ด๋Ÿด ๊ฒฝ์šฐ์— findWords๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?

ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ†ตํ•ด ๋ชจ๋“  ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ•ด์‹œํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด์‹œํ…Œ์ด๋ธ”์€ ๋‹จ์–ด์™€ ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์„œ ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

1
2
"books" -> {doc2, doc3, doc6, doc8}
"many" -> {doc1, doc3, doc7, doc8, doc9}

โ€œmany booksโ€๋ฅผ ํƒ์ƒ‰ํ•˜๋ ค๋ฉด, ๋‹จ์ˆœํžˆ โ€œbooksโ€์™€ โ€œmanyโ€์˜ ๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด [doc3, doc8]์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

2๋‹จ๊ณ„

๋ฌธ์„œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ๋กœ ๋Š˜์–ด๋‚˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

๋ฌธ์„œ๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋กœ ๋‚˜๋ˆ ์„œ ๋ณด๋‚ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์š”์ธ(๋‹จ์–ด์˜ ์ˆ˜๋‚˜ ์ถœํ˜„ ๋นˆ๋„ ๋“ฑ) ๋•Œ๋ฌธ์— ํ•ด์‹œํ…Œ์ด๋ธ”์กฐ์ฐจ๋„ ํ•œ ์ปดํ“จํ„ฐ์— ์˜จ์ „ํžˆ ๋ณด๊ด€ํ•  ์ˆ˜ ์—†์„ ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ๋กœ ํ•ด์‹œํ…Œ์ด๋ธ”๋„ ๋ถ„ํ• ํ•ด์„œ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฒŒ์–ด์กŒ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ๋“ค์„ ๊ณ ๋ฏผํ•ด์•ผ ํ•œ๋‹ค.

  1. ํ•ด์‹œํ…Œ์ด๋ธ”์€ ์–ด๋–ป๊ฒŒ ๋ถ„ํ• ํ•  ๊ฒƒ์ธ๊ฐ€? ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ์–ด๋–ค ๋‹จ์–ด์— ๋Œ€ํ•œ ๋ฌธ์„œ ๋ชฉ๋ก์€ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€์— ์˜จ์ „ํžˆ ์ €์žฅ๋  ๊ฒƒ์ด๋‹ค. ํ˜น์€ ๋ฌธ์„œ์— ๋”ฐ๋ผ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ์ „์ฒด ๋ฌธ์„œ ์ง‘ํ•ฉ ๊ฐ€์šด๋ฐ ํŠน์ •ํ•œ ๋ถ€๋ถ„์ง‘ํ•ฉ์— ๋Œ€ํ•œ ํ•ด์‹œํ…Œ์ด๋ธ”๋งŒ ํ•œ ์ปดํ“จํ„ฐ์— ๋‘๋Š” ๊ฒƒ์ด๋‹ค.
  2. ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด, ์–ด๋–ค ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ณผ์ •์€ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ํ•ด์‹œํ…Œ์ด๋ธ”์„ ๋ฌธ์„œ์— ๋”ฐ๋ผ ๋‚˜๋ˆ„๊ธฐ๋กœ ํ–ˆ๋‹ค๋ฉด ์ด ๊ณผ์ •์ด ๋ถˆํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•œ๋‹ค.
  3. ์–ด๋–ค ์ปดํ“จํ„ฐ์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๊ด€๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ์กฐํšŒ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋Š”? ์กฐํšŒ ํ…Œ์ด๋ธ”์€ ์–ด๋”” ๋‘์–ด์•ผ ํ•˜๊ฒ ๋Š”๊ฐ€?

์—ฌ๊ธฐ์„œ๋Š” ์„ธ ๊ฐ€์ง€ ์‚ฌํ•ญ๋งŒ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, ์ด๋ณด๋‹ค ๋” ๋งŽ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

3๋‹จ๊ณ„

์ด์ œ ๊ฐ ๋ฌธ์ œ์ ๋“ค์— ๋Œ€ํ•œ ํ•ด๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ํ‚ค์›Œ๋“œ๋ฅผ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ•œ ์ปดํ“จํ„ฐ๊ฐ€ ํŠน์ •ํ•œ ๋ฒ”์œ„์˜ ๋‹จ์–ด๋“ค๋งŒ(๊ฐ€๋ น โ€˜afterโ€™๋ถ€ํ„ฐ โ€˜appleโ€™๊นŒ์ง€) ํ†ต์ œํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ‚ค์›Œ๋“œ๋ฅผ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋กœ ๋Œ๋ฉด์„œ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฉ๋Ÿ‰์ด ๊ฝ‰ ์ฐจ๋ฉด, ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์˜ฎ๊ฒจ ๊ฐ€์•ผ ํ•œ๋‹ค.

  • ์žฅ์ 
    • ์กฐํšŒ ํ…Œ์ด๋ธ”์„ ์ž‘๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.(๊ฐ’์˜ ๋ฒ”์œ„๋งŒ ๋ช…์‹œํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ)
    • ๊ฐ ์ปดํ“จํ„ฐ์— ์กฐํšŒ ํ…Œ์ด๋ธ”์˜ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ์ 
    • ์ƒˆ๋กœ์šด ๋ฌธ์„œ๋‚˜ ๋‹จ์–ด๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ํ‚ค์›Œ๋“œ๋ฅผ ๊ต‰์žฅํžˆ ๋งŽ์ด ์ด๋™์‹œ์ผœ์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

ํŠน์ •ํ•œ ๋ฌธ์ž์—ด ์ง‘ํ•ฉ์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์šฐ์„  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•œ ๋‹ค์Œ ๊ฐ ์ปดํ“จํ„ฐ์— ๊ทธ์ค‘ ์ผ๋ถ€์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด๋“ค์„ ์ฐพ์œผ๋ผ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค. ๊ฐ€๋ น ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๊ฐ€ โ€œafter builds boat amaze bananaโ€์™€ ๊ฐ™์ด ์ฃผ์–ด์กŒ๋‹ค๋ฉด, ์ฒซ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ์—๋Š” {โ€afterโ€, โ€œamazeโ€}์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ๋Š” โ€œafterโ€์™€ โ€œamazeโ€๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์„œ๋“ค์˜ ๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์„ธ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ๋Š” {โ€bananaโ€, โ€œboatโ€, โ€œbuildsโ€}์— ๋Œ€ํ•ด ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ดˆ๋ฐ˜์— ์ „์ฒด ์š”์ฒญ์„ ๋ณด๋ƒˆ๋˜ ์ปดํ“จํ„ฐ๋Š” ์ฒซ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฒฐ๊ณผ์˜ ๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.

์ด ์ ˆ์ฐจ๋ฅผ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ทธ๋ ค๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

This post is licensed under CC BY 4.0 by the author.