Skip to content

Latest commit

ย 

History

History
145 lines (104 loc) ยท 16.1 KB

File metadata and controls

145 lines (104 loc) ยท 16.1 KB

1์žฅ. ๋””์ž์ธ ํŒจํ„ด ์†Œ๊ฐœ์™€ ์ „๋žต ํŒจํ„ด

์ƒ๊ฐ๋ณด๋‹ค ๋” ์‰ฝ๊ฒŒ ์ž˜ ์“ฐ์—ฌ์ง„ ์ฑ…์ด๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค.
์˜ค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์„ ๋ชจ๋‘๊ฐ€ ํ•œ๋ฒˆ์ฏค์€ ๊ฒฝํ—˜/์ƒ์ƒํ•ด๋ณด์ง€ ์•Š์•˜์„๊นŒ?
๋‚ด์šฉ ์ค‘, ๋‚˜๋„ Joe ์ฒ˜๋Ÿผ fly ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹น์—ฐํžˆ ํ•ด๊ฒฐ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜๋ฉฐ ๊ธ€์„ ์ฝ์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ์น˜๋„ ๋ชปํ•œ '๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ๋‚ ์•„๋‹ค๋‹ˆ๋Š” ์‚ฌ๊ฑด'์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
๋‚ด๊ฐ€ ์ด ์ฑ… ์†์˜ ์ฃผ์ธ๊ณต์ด๋ผ๋ฉด ๊ณผ์—ฐ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ• ์ง€, ๋‹ค๋ฅธ ๋ฐฉ์•ˆ์€ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•˜๋ฉด์„œ ์ฝ์œผ๋‹ˆ๊นŒ ๋”์šฑ ๋ชฐ์ž…์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

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

์‚ฌ์‹ค, ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ด ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ์ผ์ด๋‹ค.
๊ทธ๋ž˜์„œ ์ด ์ฑ…์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๊ทผ์˜ ๋‚ด์šฉ ์ค‘, ํŒจํ„ด์„ ์•Œ๋ฉด ๋‹ค๋ฅธ ๋™๋ฃŒ๋“ค๊ณผ ์˜์‚ฌ์†Œํ†ตํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
์•ผ๊ตฌ์„ ์ˆ˜๋“ค์ด ์„œ๋กœ ์‚ฌ์ธ์„ ๋งž์ถ”๋“ฏ, ๊ฐœ๋ฐœ์ž๋“ค๋„ ์‚ฌ์ธ์„ ๋งž์ถ”๋Š” ๊ฒƒ ๊ฐ™๋‹ค. '์ „๋žตํŒจํ„ด'์„ ์‚ฌ์šฉํ•˜์ž!๋ผ๊ณ  ํ•˜๋“ฏ์ด!

2์žฅ. ์˜ต์ €๋ฒ„ ํŒจํ„ด

์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์„ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ ์ฃผ์‹œํ•˜๊ฑฐ๋‚˜ ํ•„์š”๋กœ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์˜ค๋Š˜ ๋‚ด์šฉ์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. ์ฑ…์ด ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ค˜์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค. ์‹ ๋ฌธ์‚ฌ์™€ ๊ตฌ๋…์ž๋กœ ์ƒ๊ฐํ•˜๊ณ  ์ฝ์œผ๋‹ˆ, ํ’€/ํ‘ธ์‰ฌ์— ๋Œ€ํ•œ ๊ฒƒ๋„ ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋๋‹ค. ๋‚ด๊ฐ€ ๋ฐ›๊ณ ์‹ถ์„ ๋•Œ๋งŒ ๋ฐ›๋Š” ๊ฒƒ์€ ํ’€, ๋‚ด ์˜์ง€์™€๋Š” ์ƒ๊ด€์—†์ด ์•Œ๋žŒ์ด ์˜ค๋Š” ๊ฒƒ์ด ํ‘ธ์‰ฌ! ํ‘ธ์‰ฌ ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์—๋Š” ์˜ต์ €๋ฒ„๊ฐ€ ๋งŽ์•„์งˆ ๋•Œ, ์ฃผ์ œ(subject)์˜ ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋Š”๋ฐ, ๋งˆ์นจ 2์žฅ ๋’ท ๋ถ€๋ถ„์— ์†์‰ฝ๊ฒŒ ํ’€๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‚˜์™”๋‹ค. update๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฃผ์ฒด๊ฐ€ ๋ˆ„๊ตฌ๋ƒ์— ๋”ฐ๋ผ ํ’€/ํ‘ธ์‰ฌ๊ฐ€ ๋˜๋Š” ๊ฑธ๊นŒ? ๋ญ”๊ฐ€ ์ด์ƒํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์ง€๋งŒ, ํ•œ๋ฒˆ ๋” ์ฝ์–ด๋ด์•ผ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค.

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

๋Œ€ํ•™๊ต ๋•Œ, ์ž๋ฐ” ์Šค์œ™์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ ์ ์ด ์žˆ๋‹ค. ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋‹จ์ˆœํžˆ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์•ก์…˜๋ฆฌ์Šค๋„ˆ๋ฅผ ํ†ตํ•ด์„œ ๊ทธ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜จ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ ์•Œ๊ณ ์„œ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ์งค ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ ‡๋“ฏ, ๊ทธ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋„ ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค์–ด๋†“์œผ๋ฉด, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋„ ์œ ์šฉํ•˜๊ฒŒ ์ด๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ด ์ฑ…์„ ์ฝ์œผ๋ฉฐ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ƒ๊ธฐํ–ˆ๊ณ , ๋‚˜๋„ ์ด๋ ‡๊ฒŒ '์ž˜ ์งœ์—ฌ์ง„' ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์„œ ๋ฐฐํฌํ•ด๋ณด๊ณ  ์‹ถ์–ด์กŒ๋‹ค.

3์žฅ. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์€ ์ƒ์†์„ ์‚ฌ์šฉํ•˜์—ฌ, ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ๋ถˆ๋Ÿฌ๋‚ด๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์€ ๋‚ด๊ฐ€ ๋“ค์–ด๋ณธ ํŒจํ„ด ์ค‘์— ํ•˜๋‚˜๋ผ์„œ, ์—„์ฒญ๋‚˜๊ฒŒ ํŠน๋ณ„ํ•œ ํŒจํ„ด์ผ ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์›Œ์„œ "๋‚ด๊ฐ€ ์ดํ•ดํ•œ๊ฒŒ ๋งž๋‚˜?"ํ•˜๋ฉฐ ๋‹ค์‹œ ์ฝ์–ด๋ดค๋‹ค. ์„ค๋ช…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•œ ๊ฒƒ์ธ์ง€๋Š” ์˜๋ฌธ์Šค๋Ÿฝ์ง€๋งŒ, ์ดํ•ดํ•œ ๋ฐ”์— ์˜ํ•˜๋ฉด, "์žฌ๊ท€ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋‹ค์‹œ ์ž์‹ ์„ ๋ถˆ๋Ÿฌ๋‚ด๋ฉด์„œ๋„ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค."๋กœ ํ•ด์„ํ–ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฑ…์„ ์ฝ๊ณ  ์ƒ๊ฐํ•ด๋ณธ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์˜ ์žฅ์ ์„ ์ ์–ด๋ณด์ž๋ฉด,

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

"๋””์ž์ธ ์›์น™: ํด๋ž˜์Šค๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค."๋ผ๋Š” ์›์น™์„ ๋ฐฐ์› ๋‹ค. ์ด ๋””์ž์ธ ์›์น™์„ ์ƒ๊ฐํ•˜๋ฉด์„œ ๋ณด๋‹ˆ๊นŒ, ํ™•์‹คํžˆ ์‰ฌ์šฐ๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ํŒจํ„ด์ธ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

4์žฅ. ํŒฉํ† ๋ฆฌ ํŒจํ„ด

5์žฅ. ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด

์ธ์Šคํ„ด์Šค๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์—ฌ๋Ÿฟ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ณธ ์ ์€ ์žˆ์œผ๋‚˜, ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค๋ฅผ ์งœ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๊ฒƒ์€ ์ฒ˜์Œ์ด๋‹ค.
ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ๋ฐฉ๋ฒ•์— ๋‚˜์™€์žˆ์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ๊นŒ์ง€ ์ฝ์—ˆ๋˜ ๋‚ด์šฉ ์ค‘์— ๊ฐ€์žฅ ํฅ๋ฏธ๋กญ๊ฒŒ ์ฝ์—ˆ๋‹ค.
์ƒ์„ฑ์ž๋ฅผ private๋กœ ๋งŒ๋“ค๊ณ , ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‘๋Š” ๋ฐฉ๋ฒ•์ด ์ธ์ƒ๊นŠ์—ˆ๋‹ค.
๋˜ํ•œ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€๋„ ๋ฐฐ์› ๋‹ค.
๋™๊ธฐํ™” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ ์ž์ฒด๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ธ์Šคํ„ด์Šค๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒ์„ฑํ•ด๋‘๋Š” ๋ฐฉ๋ฒ•, DCL์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.
ํŠนํžˆ, ์—ฌ๊ธฐ์„œ๋Š” ๋‘๋ฒˆ์ด๋‚˜ lock์„ checkํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‚˜์™€์žˆ์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋Š” ๋‘ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•œ ๊ฒฝ์šฐ์— ํ•œํ•ด์„œ ๋จผ์ € ๋“ค์–ด์˜จ ์Šค๋ ˆ๋“œ๋Š” ๋‘๋ฒˆ์งธ ์กฐ๊ฑด๋ฌธ์— ๊ฑธ๋ ค์„œ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๊ณ , ๋‹ค์Œ ์Šค๋ ˆ๋“œ๋Š” ๋‘๋ฒˆ์งธ ์กฐ๊ฑด๋ฌธ์„ ํ™•์ธํ•˜๊ณ  ์‹คํ–‰ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•จ์ด๋‹ค...(?)

6์žฅ. ์ปค๋งจ๋“œ ํŒจํ„ด

7์žฅ. ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด๊ณผ ํผ์‚ฌ๋“œ ํŒจํ„ด

  • ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด: ํŠน์ • ํด๋ž˜์Šค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”๊ตฌํ•˜๋Š” ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ˜ธํ™˜๋˜์ง€ ์•Š์•„ ๊ฐ™์ด ์“ธ ์ˆ˜ ์—†์—ˆ๋˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š”๋‹ค.
    • Turkey๋ฅผ Duck ์‚ฌ์ด์— ๋ผ์›Œ๋„ฃ๊ณ  ์‹ถ๋‹ค๋ฉด, Duck ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด, Turkey ํด๋ž˜์Šค๋ฅผ ๋ผ์›Œ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. Turkey ๊ฐ์ฒด๋ฅผ ์–ด๋Œ‘ํ„ฐ๋กœ ๊ฐ์‹ธ์„œ, Duck ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€, ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋‘ ์ฝ”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ˜‘๋ ฅ์‚ฌ์™€ ํ˜‘์—…ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ํŒจํ„ด์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—, ํŠนํžˆ ๊ธฐ์กด ์ฝ”๋“œ์™€ ์ƒˆ ์ฝ”๋“œ๊ฐ€ ์„ž์—ฌ, ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋‘ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋ฅผ ์ง€์›ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ธฐ์กด์˜ ์ฝ”๋“œ์™€ ์ƒˆ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ์œ ์šฉํ•œ ํŒจํ„ด์ธ ๊ฒƒ ๊ฐ™๋‹ค.
    • ๊ฐ์ฒด ์–ด๋Œ‘ํ„ฐ์™€ ํด๋ž˜์Šค ์–ด๋Œ‘ํ„ฐ: ํด๋ž˜์Šค ์–ด๋Œ‘ํ„ฐ๋Š” ํƒ€๊นƒ๊ณผ ์–ด๋Œ‘ํ‹ฐ ๋ชจ๋‘ ์„œ๋ธŒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ์ฒด ์–ด๋Œ‘ํ„ฐ๋Š” ๊ตฌ์„ฑ์œผ๋กœ ์–ด๋Œ‘ํ‹ฐ์— ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค๋Š” ์ ๋งŒ ๋‹ค๋ฅด๋‹ค. ๊ฐ์ฒด ์–ด๋Œ‘ํ„ฐ๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ•œ๋ฒˆ ๊ฐ์‹ธ์„œ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ , ํด๋ž˜์Šค ์–ด๋Œ‘ํ„ฐ๋Š” ํƒ€๊นƒ๊ณผ ์–ด๋Œ‘ํ‹ฐ ๋ชจ๋‘๋ฅผ ์„œ๋ธŒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ดํ•ดํ•œ ๋ฐ”๊ฐ€ ๋งž์„๊นŒ?
  • ํผ์‚ฌ๋“œ ํŒจํ„ด: ์„œ๋ธŒ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ์ผ๋ จ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฌถ์–ด์ค€๋‹ค. ๊ณ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋„ ์ •์˜ํ•˜๋ฏ€๋กœ, ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํผ์‚ฌ๋“œ ํŒจํ„ด์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฐ”๊พธ๋ ค๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฉ”์†Œ๋“œ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•  ๋ฟ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์žฅ์ ์€, ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ, ์–ธ์ œ๋“ ์ง€ ์„œ๋ธŒ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ?
  • ์ตœ์†Œ ์ง€์‹ ์›์น™: ๋‹ค๋ฅธ ๊ฐ์ฒด์™€์œผ์ด ์ƒํ˜ธ์ž‘์šฉ ์ˆ˜๋ฅผ ์ค„์—ฌ์•ผํ•œ๋‹ค. ๊ฐ์ฒด ์‚ฌ์ด์˜ ์˜์กด์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ฆฌ๊ฐ€ ๋” ํŽธํ•ด์ง„๋‹ค.
    • ๊ฑฐ์ณ๊ฐ€๋Š” ํด๋ž˜์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์—ฌ์•ผํ•œ๋‹ค. ํŒŒ๋„ํƒ€๊ธฐ ์ฒ˜๋Ÿผ ํ˜ธ์ถœํ•˜์ง€ ๋ง๊ณ , ์„œ๋ธŒ ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒƒ! a.callB().callC() ๊ฐ€ ์•„๋‹Œ, a.Call(C) ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ฒŒ!

8์žฅ. ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด

์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ํŒจํ„ด ์ค‘, ๊ฐ€์žฅ ์‰ฌ์šด ํŒจํ„ด์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ถ”์ƒํ™” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ๊ฒƒ์„ ์–ด๋–ค ๋‹จ์œ„๋กœ ๊ฐ์‹ธ์„œ ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“œ๋Š๋ƒ๊ฐ€ ๊ด€๊ฑด์ธ ๊ฒƒ ๊ฐ™๋‹ค. Tea/Coffee > Beverage > (ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ) ๋กœ ๊ฐ„๋žตํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ๋Š” ๋ง๊ทธ๋Œ€๋กœ ๊ณตํ†ต์ ์ธ ์ ˆ์ฐจ๋ฅผ ์ถ”์ƒํ™”ํ•œ ํด๋ž˜์Šค์ด๊ณ , Beverage๋Š” Tea, Coffee ๋“ฑ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต๋ถ€๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , tea/coffee ํด๋ž˜์Šค๋Š” Beverage๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ž์‹ ๋งŒ์˜ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค. ๋‹ค๋ฅธ ํŒจํ„ด๋“ค์—์„œ๋Š” ์ด๋Ÿฌํ•œ Tea, Coffee ํด๋ž˜์Šค์— ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค๊ฑฐ๋‚˜, ๋‘ ์ข…๋ฅ˜์˜ Beverage๋ฅผ ์„ž๋Š”๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฝค ๋ณต์žกํ•œ ํŒจํ„ด์ธ ๊ฒƒ์— ๋น„ํ•ด ์ด ํŒจํ„ด์ด ๊ฐ„๋žตํ•œ ๊ฒƒ์„ ๋ณด์•„, ์ด ํŒจํ„ด์ด ๊ฐ•๋ ฅํ•˜๋ฉด์„œ๋„ ํ•œ์ •์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

9์žฅ. ๋ฐ˜๋ณต์ž ํŒจํ„ด๊ณผ ์ปดํฌ์ง€ํŠธ ํŒจํ„ด

์ผ๋‹จ ๋ฐ˜๋ณต์ž ํŒจํ„ด์€ ๋Œ€๋ถ€๋ถ„์˜ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ iterator๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™œ์šฉํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ต์ผํ•˜๋Š” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. iterator๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค ํ•˜๋”๋ผ๋„, iterator๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ์— ์ƒ๊ด€์—†์ด ๊ฐ์ฒด ์ ‘๊ทผ๋ฐฉ์‹์„ ํ†ต์ผ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.(๋‹คํ˜•์„ฑ) ์ด๋ ‡๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ต์ผํ•˜๋ฉด ์•„๋žซ๋‹จ์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ ํ•„์š”๋ฅผ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.(์บก์Šํ™”) ์ง‘ํ•ฉ์ฒด ์•ˆ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•  ๋•Œ ํŽธ๋ฆฌํ•œ ๋ฐฉ์‹์ด๋‹ค. printMenu์— iterator๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹์ด๋ฏ€๋กœ, ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ํ•ญ๋ชฉ์ด ์•„๋‹Œ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์—๋งŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๋ฐ˜๋ณต์ž ํŒจํ„ด๋งŒ ์‚ฌ์šฉํ•˜๋ฉด, A๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ B๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์†์— ๋„ฃ์„ ์ˆ˜ ์—†์–ด์„œ ์ถ”๊ฐ€์ ์ธ ์ˆ˜์ •์ด ์–ด๋ ต๋‹ค. ๊ธฐ์กด ๋ฐฉ์‹์„ ํ†ตํ•ด ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์†์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„์„œ ์ผ์ผํžˆ addItem ํ•ด์ค˜์•ผํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌํŒฉํ„ฐ๋ง์„ ์‹ค์‹œํ•œ๋‹ค.
์ปดํฌ์ง€ํŠธ ํŒจํ„ด์€ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด์„œ ๋ถ€๋ถ„-์ „์ฒด ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ€๋ถ„-์ „์ฒด ๊ณ„์ธต๊ตฌ์กฐ๋Š” ๋ถ€๋ถ„๋“ค์ด ๊ณ„์ธต์„ ์ด๋ฃจ๊ณ  ์žˆ์ง€๋งŒ ๋ชจ๋“  ๋ถ€๋ถ„์„ ๋ฌถ์–ด์„œ ์ „์ฒด๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๋œปํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๊ฒฐ๊ตญ์— ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์œผ๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€ํ•˜๋Š” A๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊บผ๋‚ด์„œ ํŠธ๋ฆฌ์— ์ถ”๊ฐ€ํ•ด์•ผํ•˜์ง€์•Š๋‚˜..๋ผ๋ฉฐ... ์ด๊ฑด ๋ฐ˜๋ณต์ž ํŒจํ„ด์„ ์ฒ˜์Œ์— ์‚ฌ์šฉํ•˜๋ ค ํ–ˆ๋˜ ์ทจ์ง€์™€ ๋งž์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๋‹ค.

10์žฅ. ์ƒํƒœ ํŒจํ„ด

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

  • ํŒจํ„ด
    • ์ƒํƒœํŒจํ„ด: ์ƒํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ–‰๋™์„ ์บก์Šํ™”ํ•˜๊ณ  ํ–‰๋™์„ ํ˜„์žฌ ์ƒํƒœ์—๊ฒŒ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ „๋žตํŒจํ„ด: ๋ฐ”๊ฟ” ์“ธ ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์„ ์บก์Šํ™”ํ•œ ๋‹ค์Œ, ์‹ค์ œ ํ–‰๋™์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.
    • ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ ๋‹จ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„œ๋ธŒํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ฑ…์—์„œ ๊ฐ ํŒจํ„ด์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์œ„์™€ ๊ฐ™์ด ๊ธฐ์žฌํ•ด๋‘์—ˆ๋‹ค. ์‚ฌ์‹ค ์ด๋ ‡๊ฒŒ ์ ์–ด๋‘๋‹ˆ๊นŒ ๋ฌด์Šจ ๋ง์ธ์ง€ ์ดํ•ด๊ฐ€ ๋” ์•ˆ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„, ์›น์‚ฌ์ดํŠธ๋ฅผ ๋’ค์ ธ๋ณด์•˜๋‹ค.
๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋‹ˆ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

  • ์ „๋žต ํŒจํ„ด์€ ํ•œ ๋ฒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด, ์ƒํƒœ๊ฐ€ ๊ฑฐ์˜ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ƒํƒœ ํŒจํ„ด์€ ํ•œ ๋ฒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚œ ๋’ค, ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

์ƒ๊ฐํ•ด๋ณด๋ฉด ์ „๋žตํŒจํ„ด์„ ๋งํ• ๋•Œ, ์—ฌ๋Ÿฌ ์˜ค๋ฆฌ์˜ ์ข…๋ฅ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ํŽธํ•˜๊ณ  ์‰ฝ๊ฒŒ ๊ตฌํ˜„/ํ™•์žฅ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์ „๋žตํŒจํ„ด์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค.
์˜ค๋ฆฌ์˜ ์ƒํƒœ๋Š” ํ•œ๋ฒˆ ์ •ํ•ด์ง€๋ฉด ๋ณ€ํ•˜์ง€ ์•Š์ง€๋งŒ, ๋ฝ‘๊ธฐ ๊ธฐ๊ณ„๋Š” ๋™์ž‘์— ๋”ฐ๋ฅธ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

11์žฅ. ํ”„๋ก์‹œ ํŒจํ„ด

ํ”„๋ก์‹œ ํŒจํ„ด์€ {ํด๋ผ์ด์–ธํŠธ ํž™}(ํด๋ผ์ด์–ธํŠธ ๊ฐ์ฒด)-(ํด๋ผ์ด์–ธํŠธ ๋ณด์กฐ๊ฐ์ฒด) <--> (์„œ๋น„์Šค ๋ณด์กฐ ๊ฐ์ฒด)-(์„œ๋น„์Šค ๊ฐ์ฒด){์„œ๋ฒ„ ํž™} ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–์ถ˜๋‹ค.
ํด๋ผ์ด์–ธํŠธ ๊ฐ์ฒด๋Š” ์ง„์งœ ์„œ๋น„์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ํด๋ผ์ด์–ธํŠธ ๋ณด์กฐ ๊ฐ์ฒด(ํ”„๋ก์‹œ)๊ฐ€ ์ž‘์—…์„ ๋งก๊ฒŒ๋œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ ๋ณด์กฐ ๊ฐ์ฒด๋Š” ์„œ๋ฒ„์— ์—ฐ๋ฝ์„ ์ทจํ•˜๊ณ , ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฆฌํ„ด๋˜๋Š” ์ •๋ณด๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

์„œ๋น„์Šค ๋ณด์กฐ ๊ฐ์ฒด(์›๊ฒฉ ํ”„๋ก์‹œ)๋Š” ์„œ๋น„์Šค ๊ฐ์ฒด(์›๊ฒฉ ๊ฐ์ฒด)์˜ ๋กœ์ปฌ ๋Œ€๋ณ€์ž ์—ญํ• ์„ ํ•œ๋‹ค.
์„œ๋น„์Šค ๊ฐ์ฒด(์›๊ฒฉ ๊ฐ์ฒด)๋Š” ๋‹ค๋ฅธ JVM์˜ ํž™์—์„œ ์‚ด๊ณ ์žˆ๋Š” ๊ฐ์ฒด(๋‹ค๋ฅธ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด)์ด๋‹ค.
๋กœ์ปฌ ๋Œ€๋ณ€์ž๋Š”, ๋กœ์ปฌ ๋Œ€๋ณ€์ž์˜ ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ๋‹ค๋ฅธ ์›๊ฒฉ ๊ฐ์ฒด์—๊ฒŒ ๊ทธ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฐ์ฒด์ด๋‹ค.
์„œ๋ฒ„ ๋‹จ์˜ ๋ณด์กฐ ๊ฐ์ฒด๊ฐ€ ์ด ์—ฐ๋ฝ์„ ๋ฐ›์œผ๋ฉด, ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ํ•ด์„ํ•ด์„œ ์ง„์งœ ์„œ๋น„์Šค ๊ฐ์ฒด์— ์žˆ๋Š” ์ง„์งœ ์„œ๋น„์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

์ž๋ฐ” RMI(Remote Remote Method Invocation)?

  • ๊ฐœ๋ฐœ์ž ๋Œ€์‹  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋น„์Šค ๋ณด์กฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  • ๋„คํŠธ์›Œํ‚น ๋ฐ ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค.(state ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ )
  • RMI์—์„œ ํด๋ผ์ด์–ธํŠธ ๋ณด์กฐ ๊ฐ์ฒด๋Š” stub, ์„œ๋น„์Šค ๋ณด์กฐ๊ฐ์ฒด๋Š” skeleton์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

12์žฅ. ๋ณตํ•ฉ ํŒจํ„ด

๋ณตํ•ฉ ํŒจํ„ด์€ 2๊ฐœ ์ด์ƒ์˜ ํŒจํ„ด์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์˜ค๋ฆฌ ์˜ˆ์ œ์—์„œ ํด๋ž˜์Šค๋ฅผ ๊ณ„์† ๊ฐ์‹ธ๊ณ  ๊ฐ์‹ธ๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•œ๋ฐ, ๊ทธ๋ฆผ์„ ๊ทธ๋ ค ๋”ฐ๋ผ๊ฐ€๋ฉด ํ˜ธ์ถœ ๊ณผ์ •์ด ์ดํ•ด๊ฐ€ ๋ ๋ฝ๋ง๋ฝ...
MVC(๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ)๋Š” ์˜ต์ €๋ฒ„, ์ „๋žต, ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณตํ•ฉ ํŒจํ„ด์ด๋‹ค.

  • ์˜ต์ €๋ฒ„ ํŒจํ„ด(๋ชจ๋ธ): ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, ๊ทธ ๋ชจ๋ธ๊ณผ ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์—ฐ๋ฝํ•œ๋‹ค. ์˜ต์ €๋ฒ„ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ๋ทฐ/์ปจํŠธ๋กค๋Ÿฌ๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋…๋ฆฝ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์•Œ์•„๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • ์ปดํฌ์ง€ํŠธ ํŒจํ„ด(๋ทฐ): ํ™”๋ฉด๋งŒ ๊ฐฑ์‹ ํ•˜๋Š” ์—ญํ• . ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ธ๊ณผ ์–ด๋–ค ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅธ๋‹ค.
  • ์ „๋žต ํŒจํ„ด(์ปจํŠธ๋กค๋Ÿฌ): ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ–‰๋™์„ ๊ฒฐ์ •ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ๋‚ด์—ญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ชจ๋ธ์— ์ ์ ˆํ•œ ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.

์˜ค๋žœ๋งŒ์— ์—ฌ๋Ÿฌ ํŒจํ„ด์„ ๋ฆฌ๋ทฐํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„๋‹ค!

13์žฅ. ์‹ค์ „ ๋””์ž์ธ ํŒจํ„ด

14์žฅ. ๊ธฐํƒ€ ํŒจํ„ด