CodeGym/์ž๋ฐ” ์ฝ”์Šค/์ž๋ฐ” ์ฝ”์–ด/์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์‚ฌ์šฉ ๊ฐ€๋Šฅ

"์•ˆ๋…•ํ•˜์„ธ์š”, ์•„๋ฏธ๊ณ ! ์–ด์ œ ๋‹น์‹ ์€ ์ถ”์ƒ ์ˆ˜์—… ๋ฐฉ์‹์œผ๋กœ ๊ต์œก์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ์˜ ์ง€์‹์„ ์‹ฌํ™”์‹œํ‚ฌ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์ถ”์ƒ ์ˆ˜์—…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์น˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค."

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

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

"์ถฉ๋ถ„ํžˆ ์‰ฝ์Šต๋‹ˆ๋‹ค."

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

์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ” ์ฝ”๋“œ ์„ค๋ช…
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
BodyGuard ํด๋ž˜์Šค๋Š” ๊ณต๊ฒฉ์— ๋Œ€์ฒ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•(๋ฌด์ˆ ์„ ์˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ)์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ๋ฌด์ˆ ์€ ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ๊ธฐ์ˆ ์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” (์ด ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•จ์œผ๋กœ์จ) ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ๊ฒฝํ˜ธ์›์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ๋ชจ๋‘๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ๊ณต๊ฒฉ์ž๋ฅผ ์  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋„ค ๋ง์ด ๋งž์•„. ๊ตฌํ˜„๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋งค์šฐ ํก์‚ฌํ•ด."

"์˜ˆ, ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ํ‘œ์ค€ Java SE ํด๋ž˜์Šค์—์„œ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค."

3
๊ณผ์ œ
์ž๋ฐ” ์ฝ”์–ด,  ๋ ˆ๋ฒจ 3๋ ˆ์Šจ 3
์ž ๊ธˆ
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. Turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).
์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค