๐ŸŽ„ ์„ฑ์žฅ์ผ์ง€ 3.1

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒณ ํ‚ค์›Œ๋“œ (1.0)
์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌ, ์ถ”ํ›„์— ๋ณด๋ฉด์„œ ์Šค์Šค๋กœ ์„ค๋ช…
๐Ÿ‰ ๊ฒฝํ—˜ ์œ„์ฃผ๋กœ (2.0)
๋‹จ์ˆœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ๋ณด๋‹ค ๋ฌด์—‡์„ ๋ฐฐ์› ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์งง๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ
โ„๏ธ ์ •ํ•ด์ง„ ํ…œํ”Œ๋ฆฟ์— ๋งž์ถฐ์„œ (3.0)
ํ‚ค์›Œ๋“œ, ๊ฒฝํ—˜ ๋ชจ๋‘ ์ข‹๋‹ค. ๋‹ค๋งŒ ๋งค์ผ ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์€๋งŒํผ ํ•ต์‹ฌ๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑ (3.1) 230102๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” ํ•™์Šต์— ๊ด€ํ•œ ๋‚ด์šฉ ์ถ”๊ฐ€

๐Ÿ”‘ ์˜ค๋Š˜์˜ ํ‚ค์›Œ๋“œ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming; OOP)

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”์‹œ์ผœ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ  ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ทธ๋ฆผ

ํด๋ž˜์Šค

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

๊ฐ์ฒด ์ธ์Šคํ„ด์Šค

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

์ธ์Šคํ„ด์Šค๋Š” ์–ด๋–ค ์›๋ณธ(์ถ”์ƒ์ ์ธ ๊ฐœ๋…)์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ ๋œ ๋ณต์‚ฌ๋ณธ์„ ์˜๋ฏธํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•œ๋‹ค. ex) ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•

์žฅ์ 

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

๋‹จ์ 

  • ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค. => โ“
  • ๊ฐ์ฒด์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง์— ๋”ฐ๋ผ ์šฉ๋Ÿ‰์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ์„ค๊ณ„์‹œ ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ์ ˆ์ฐจ ์ง€ํ–ฅ์€ ๋ฐ˜๋Œ€ ๊ด€๊ณ„์ธ๊ฐ€?
=> ์•„๋‹ˆ๋‹ค. ๊ทธ์ € ๊ฐ์ฒด ์ง€ํ–ฅ์€ ๊ฐ์ฒด์— ์ดˆ์ ์„ ๋‘๊ณ , ์ ˆ์ฐจ ์ง€ํ–ฅ์€ ์ˆœ์ฐจ์ ์ธ ์ฝ”๋“œ ์‹คํ–‰์— ์ดˆ์ ์„ ๋‘๋Š” ๊ด€์ ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๋ฟ์ด๋‹ค.
์ฆ‰, ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋„ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃจ๊ณ  ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋„ ์ ˆ์ฐจ๋ฅผ ๋”ฐ์ง„๋‹ค.

์ถ”์ƒํ™”

  • ๊ฐ์ฒด์—์„œ ๊ณตํ†ต๋œ ์†์ƒ๊ณผ ํ–‰์œ„๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ
  • ๊ณตํ†ต์˜ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ์ฐพ์•„์„œ ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” ๊ณผ์ •
  • ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋Š” ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณผ์ •

ex) ์ž๋™์ฐจ๋ผ๋Š” ์ถ”์ƒํ™” ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด๋‘๊ณ  ์ž๋™์ฐจ๋“ค์ด ๊ฐ€์ง„ ๊ณตํ†ต์ ์ธ ํŠน์ง•๋“ค์„ ๋งŒ๋“ค์–ด์„œ ํ™œ์šฉํ•œ๋‹ค.

์บก์Šํ™”

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

ํŠนํžˆ ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ์ •๋ณด์€๋‹‰(์™ธ๋ถ€์—์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋Š” ์ •๋ณด๋Š” ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œ)์„ ํ†ตํ•ด ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
ex) ์Šค๋งˆํŠธํฐ ์ถฉ์ „์€ ํ•˜๋”๋ผ๋„ ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ์ถฉ์ „๋˜๋Š”์ง€ ์•Œ ํ•„์š”๋Š” ์—†๋‹ค.

์ƒ์†

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

๋‹คํ˜•์„ฑ

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

SOLID(๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ 5๊ฐ€์ง€)

1. ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(Single Responsibility Principle; SRP)

  • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.
  • ์ง€์ผœ์ง€์ง€ ์•Š์„ ์‹œ, ํ•œ ์ฑ…์ž„์˜ ๋ณ€๊ฒฝ์— ์˜ํ•ด ์ฑ…์ž„๊ณผ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์˜ํ–ฅ์ด ๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.

2. ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™(Open/Closed Principle; OCP)

  • ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

3. ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™(Liskov Substitution Principle; LSP)

  • ์ƒ์œ„ ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ํ•˜์œ„ ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ์น˜ํ™˜ํ•ด๋„, ์ƒ์œ„ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

4. ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™(Interface Segregation Principle; ISP)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๊ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋ณ€๊ฒฝ์ด ์žˆ์–ด๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ‘œ์ค€, ์•ฝ์†, ๊ทœ์น™์œผ๋กœ์„œ ์˜ค์ง ์ถ”์ƒ ๋ฉ”์„œ๋“œ์™€ ์ƒ์ˆ˜๋งŒ์„ ๋ฉค๋ฒ„๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
> ์ฐธ๊ณ ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

5. ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™(Dependency Inversion Principle; DIP)

  • ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ์ง€, ๊ตฌ์ฒดํ™”์— ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.(๊ตฌ์ฒดํ™”๊ฐ€ ์ถ”์ƒํ™”๋ณด๋‹ค ๋จผ์ €๊ฐ€ ๋˜๋Š” ์—ญ์ „์ด ์ผ์–ด๋‚˜์„œ๋Š” ์•ˆ๋œ๋‹ค.)
  • ๊ณ ์ˆ˜์ค€ ๋ชจ๋“ˆ(ํด๋ž˜์Šค)์ด ์ €์ˆ˜์ค€ ๋ชจ๋“ˆ(ํด๋ž˜์Šค)์— ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
    • ์ €์ˆ˜์ค€ ํด๋ž˜์Šค: ๋” ์ž‘์€ ํด๋ž˜์Šค

์ฐธ๊ณ  ์ž๋ฃŒ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์ด๋ž€
์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™

๐Ÿ“ ์š”์•ฝ ๋ฐ ํ•˜๋ฃจ ๊ฐ„๋‹จ ํšŒ๊ณ 

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