Covenant

๐Ÿ“˜ ๋ช…์ €๋กœ ๋‹ค์‹œ๋ณด๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์ด์•ผ๊ธฐ





๋“ค์–ด๊ฐ€๋ฉด์„œ


  ์ง€๋‚œ ์—ฌ๋ฆ„๋ฐฉํ•™ H์‚ฌ์—์„œ ์ธํ„ด ํ–ˆ์„ ๋•Œ ์ผ์ž…๋‹ˆ๋‹ค. ์ธํ„ด ๊ณผ์ œ๋กœ C#์œผ๋กœ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ์ œ๋ฅผ ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ณ ์•ˆํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งˆ์Œ์†์— ๋“œ๋Š” ์ƒ๊ฐ์ด, ๋‚ด๊ฐ€ ๋‘ ๋‹ฌ ๋’ค์— ์ธํ„ด์‹ญ์ด ๋๋‚˜๋”๋ผ๋„ ๋ˆ„๊ตฐ๊ฐ€ ์ด ์ฝ”๋“œ๋ฅผ ๋ดค์„ ๋•Œ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ํ™•์žฅ๊ฐ€๋Šฅํ•˜๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ ์ž˜ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์„ ์–ด๋”˜๊ฐ€์—์„œ ๋“ค์—ˆ๊ณ , ํด๋ž˜์Šค๋ฅผ ์ž˜ ์งœ๋ผ๋Š” ๋ง์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋Š” ์ž˜ ์„ค๊ณ„๋ผ๋Š” ๋ง์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ฐธ ์–ด๋ ค์šด ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.


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


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




๊ฐ์ฒด ์ง€ํ–ฅ์˜ ๋“ฑ์žฅ


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

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

  ์ด ๊ธ€์„ ์ฝ๋Š” ์—ฌ๋Ÿฌ๋ถ„์€ ์ž ์‹œ ๊ธ€ ์ฝ๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”์‹œ๊ณ  ๋ˆˆ์„ ๊ฐ๊ณ  ์•„๋ฌด ์ƒ์ƒํ•ด๋ณด์„ธ์š”. ์˜ค๋Š˜ ์ €๋…์œผ๋กœ ๋จน์€ ์‚ฌ๊ณผ๊ฐ€ ์ƒ๊ฐ๋‚˜์‹œ๋‚˜์š”? ๊ณ ์š”ํ•œ ๋ฐฉ ์•ˆ์—์„œ ์‹œ์นจ ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆฌ์‹œ๋‚˜์š”? ์šฐ๋ฆฌ๊ฐ€ 24์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ๋ฌผ์„ ๋ณด๊ณ , ๋ˆˆ์„ ๊ฐ์•„๋„ ์‚ฌ๋ฌผ์ด ๋จธ๋ฆฟ์†์— ๋งด๋Œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ฌผ์„ ์•ž์œผ๋กœ ๊ฐ์ฒด, ์˜์–ด๋กœ Object๋ผ๊ณ  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ํ˜„์‹ค์„ธ๊ณ„๋ฅผ ์ธ์ง€ํ•˜๋Š” ๋ฐฉ์‹๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ์ฒด์ง€ํ–ฅ์€ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ์„ ์ดํ•ดํ•˜๊ธฐ ์ „์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ „์ œ๊ฐ€ ๊น”๋ฆฝ๋‹ˆ๋‹ค.

  • [1] ์„ธ์ƒ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์€ ์‚ฌ๋ฌผ, ์ฆ‰ ๊ฐ์ฒด์ด๋‹ค.
  • [2] ๊ฐ๊ฐ์˜ ์‚ฌ๋ฌผ์€ ๊ณ ์œ ํ•˜๋‹ค.
  • [3] ์‚ฌ๋ฌผ์€ ์†์„ฑ์„ ๊ฐ–๋Š”๋‹ค.
  • [4] ์‚ฌ๋ฌผ์€ ํ–‰์œ„๋ฅผ ํ•œ๋‹ค.



  ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•  ๊ฒƒ ์—†์ด ํ•˜๋‚˜์˜ ์˜ˆ์‹œ๋ฅผ ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊น€์ฒ ์ˆ˜๋Š” [1]์‚ฌ๋ฌผ๋กœ์จ [2]๊ณ ์œ ํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. [3] ํ‚ค, ๋ชธ๋ฌด๊ฒŒ๋ผ๋Š” ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. [4] ๋ณด๊ธฐ, ๋“ฃ๊ธฐ, ๊ฑท๊ธฐ ๋“ฑ๋“ฑ ํ–‰์œ„๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.




๊ฐ์ฒด ์ง€ํ–ฅ์˜ 4๋Œ€ ํŠน์„ฑ - ์บก์ƒ์ถ”๋‹ค!


์บก์ƒ์ถ”๋‹ค!๋ฅผ ์™ธ์น˜๋ฉฐ ๊ฐ์ฒด ์ง€ํ–ฅ์˜ 4๋Œ€ ํŠน์„ฑ์„ ์•”๊ธฐํ•ด๋ด…์‹œ๋‹ค.

  • ์บก: ์บก์Аํ™”(Encapsulation): ์ •๋ณด์€๋‹‰
  • ์ƒ: ์ƒ์†(Inheritance): ์žฌ์‚ฌ์šฉ
  • ์ถ”: ์ถ”์ƒํ™”(Abstraction): ๋ชจ๋ธ๋ง
  • ๋‹ค: ๋‹คํ˜•์„ฑ(Polymorphism): ์‚ฌ์šฉํŽธ์˜์„ฑ

(๋ฉด์ ‘๋•Œ ๋งŽ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค...)




ํด๋ž˜์Šค vs ๊ฐ์ฒด == ๋ถ•์–ด๋นตํ‹€ vs ๋ถ•์–ด๋นต ???


  ๋Œ€๋ถ€๋ถ„์˜ JAVA ์ฑ…์—์„œ๋Š” ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ด€๊ณ„๋ฅผ ๋ถ•์–ด๋นตํ‹€๊ณผ ๋ถ•์–ด๋นต์˜ ๊ด€๊ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ JAVA๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ์ฝ์€ ๊ธฐ๋ณธ์„œ์—์„œ ๋ถ•์–ด๋นตํ‹€์— ํด๋ž˜์Šค๋ฅผ ๋น„์œ ํ•ด์„œ ์„ค๋ช…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ๊ฐ์ฒด๋ช… = new ํด๋ž˜์Šค()

์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€


๋ถ•์–ด๋นตํ‹€ ๋ถ•์–ด๋นต = new ๋ถ•์–ด๋นตํ‹€()

๋น„์œ ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ธˆํ˜• ๊ธฐ๊ณ„์™€ ๋ถ•์–ด๋นตํ‹€์ด ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋“ฏ ๋ถ•์–ด๋นต๊ณผ ๋ถ•์–ด๋นต๋„ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ด€๊ณ„๊ฐ€์•„๋‹™๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋ถ•์–ด๋นตํ‹€์€ ๋ถ•์–ด๋นต์„ ๋งŒ๋“œ๋Š” ํŒฉํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.(๋””์ž์ธ ํŒจํ„ด ์ฐธ๊ณ )


  • ํŽญ์ˆ˜๋Š” ํด๋ž˜์Šค์ผ๊นŒ์š”? ๊ฐ์ฒด์ผ๊นŒ์š”?
  • ํŽญ๊ท„์€ ํด๋ž˜์Šค์ผ๊นŒ์š”? ๊ฐ์ฒด์ผ๊นŒ์š”?
  • ๊น€๋ณด์•ˆ์€ ํด๋ž˜์Šค์ผ๊นŒ์š”? ๊ฐ์ฒด์ผ๊นŒ์š”?
  • ์‚ฌ๋žŒ์€ ํด๋ž˜์Šค์ผ๊นŒ์š”? ๊ฐ์ฒด์ผ๊นŒ์š”?

  ํด๋ž˜์Šค๋Š” ๋ถ„๋ฅ˜์— ๋Œ€ํ•œ ๊ธฐ๋…์ด์ง€ ์‹ค์ฒด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๊ฐ์ฒด๋Š” ์‹ค์ฒด์ž…๋‹ˆ๋‹ค. ํŽญ๊ท„์ด๋ผ๋Š” ๋ถ„๋ฅ˜(class)์•ˆ์— ํŽญ์ˆ˜๋ผ๋Š” ๊ฐ์ฒด(object)๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.




์บก์Аํ™”(Encapsulation): ์ •๋ณด์€๋‹‰



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


(์ฑ…์—๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ด€์ ์œผ๋กœ ๋ณต์žกํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•˜์‹  ๋ถ„์€ ์ฑ… ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ ์€ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•ด์„œ ์˜ฌ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.)




์ƒ์†: ์žฌ์‚ฌ์šฉ + ํ™•์žฅ


๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ƒ์†์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์˜ˆ - ๊ณ„์ธต๋„ / ์กฐ์ง๋„


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


๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ƒ์†์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ - ๋ถ„๋ฅ˜๋„


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

  ์ƒ์† ๊ด€๊ณ„์—๋Š” 'ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์ƒ์œ„ ํด๋ž˜์Šค์ด๋‹ค.' (์ด๋Š” LSP-๋ผ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™๊ณผ ํ†ตํ•ฉ๋‹ˆ๋‹ค.)




๋‹คํ˜•์„ฑ(Polymorphism): ์‚ฌ์šฉ ํŽธ์˜์„ฑ


  ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ ๋‹คํ˜•์„ฑ์€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)๊ณผ ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ: ๊ฐ™์€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๊ฐ™์€ ์ธ์ž ๋ชฉ๋ก์œผ๋กœ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜
  • ์˜ค๋ฒ„๋กœ๋”ฉ: ๊ฐ™์€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๋‹ค๋ฅธ ์ธ์ž ๋ชฉ๋ก์œผ๋กœ ๋‹ค์ˆ˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ค‘๋ณต ์ •์˜

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




๋‹ค์ค‘์ƒ์†๊ณผ ์ž๋ฐ”


๋‹ค์ค‘ ์ƒ์†์˜ ๋ฌธ์ œ์ 


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

  ์ด๋ ‡๊ฒŒ ์ž๋ฐ”์—์„œ๋Š” C++์—๋Š” ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„์ž…ํ•ด์„œ ์ƒ์†์ด ๊ฐ–๋Š” ์žฅ์ ๋งŒ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ถ”์ƒํ™”: ๋ชจ๋ธ๋ง


์ถ”์ƒํ™”๋ž€ ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ๋ถ„ํ•ดํ•ด์„œ ๊ด€์‹ฌ ์˜์—ญ์— ๋Œ€ํ•ด์„œ๋งŒ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žฌ์กฐํ•ฉ ํ•˜๋Š” ๊ฒƒ.


  ์ด๋ฅผ IT ์šฉ์–ด๋กœ ํ’€์–ด์“ฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


์ถ”์ƒํ™”๋ž€ ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ๋ถ„ํ•ดํ•ด์„œ ๊ด€์‹ฌ ์˜์—ญ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ๊ณ„, Application Boundary)์— ์žˆ๋Š” ํŠน์„ฑ๋งŒ ๊ฐ€์ง€๊ณ  ์žฌ์กฐํ•ฉ ํ•˜๋Š” ๊ฒƒ = ๋ชจ๋ธ๋ง


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

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

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


ํด๋ž˜์Šค ๊ฐ์ฒด_์ฐธ์กฐ๋ณ€์ˆ˜ = new ํด๋ž˜์Šค();

ํด๋ž˜์Šค ๊ฐ์ฒด_์ฐธ์กฐ๋ณ€์ˆ˜ = new ํด๋ž˜์Šค ()
๊ฐ์ฒด_์ฐธ์กฐ_๋ณ€์ˆ˜์˜_์ž๋ฃŒํ˜• ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ํ• ๋‹น๋ฌธ ์ƒˆ๋กœ์šด ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๊ฐ์ฒด์˜ ๋ถ„๋ฅ˜ ๋งค์„œ๋“œ
* ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด ๊ทธ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜์— ํ• ๋‹น



์ด๋ฏธ์ง€ ์ถœ์ฒ˜