[C++]2ºÎ°­ÁÂ(55)<--OOP ÀÏ¹Ý ÀÌ·Ð





********************************************************
********************************************************
5-7 OOP ÀÏ¹Ý ÀÌ·Ð


ÀÌÁ¦ ¿©·¯ºÐµéÀº C++ÀÇ ¿ä¸ð Á¶¸ð¸¦ »ìÆì º¸¾ÒÀ¸´Ï ÃÖÁ¾ÀûÀ¸·Î ÀÌ·ÐÀûÀÎ ¿©·¯
°¡Áö ¸éµéÀ» »ìÆ캸±â·Î ÇÏÀÚ. ¿©±â¼­ ³íÇÏ´Â ³»¿ëÀº C++¿¡ ±¹ÇѵǴ ³»¿ëÀº
¾Æ´Ï¸ç OOP ÇÁ·Î±×·¡¹Ö ¹æ½Ä¿¡ °üÇÑ ¼­¼úÀÌ´Ù. ¾Æ¸¶ ´Ù¼Ò µûºÐÇÒ °ÍÀÌÁö¸¸ ¾Ë
¾Æ µÎ¾î¼­ ¼ÕÇغ¼ °ÍÀº ¾ø´Ù.


°¡. µîÀå ¹è°æ

ÄÄÇ»ÅÍ°¡ ¹ß´ÞÇÏ°í ÄÄÇ»ÅÍ°¡ ¸ðµç ¾÷¹«¸¦ ó¸®ÇÒ ¼ö ÀÖ°Ô µÊÀ¸·Î½á ³¯·Î ¼ÒÇÁ
Æ®¿þ¾îÀÇ ¼ö¿ä´Â ´Ã¾î°¡°Ô µÇ¾ú´Ù. ±×·¯³ª ÇÊ¿äÇÑ ¼ÒÇÁÆ®¿þ¾î´Â ¸¹°í ¸¸µé¾î
³¾ ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾îÀÇ ¼ö¿¡´Â Á¦ÇÑÀÌ ÀÖ´Â À̸¥¹Ù °ø±ÞÀÌ ¼ö¿ä¿¡ ¹ÌÄ¡Áö ¸ø
ÇÏ´Â Çö»óÀÌ ¹ß»ýÇÏ°Ô µÇ¾ú´Ù. »Ó¸¸ ¾Æ´Ï¶ó ¼ÒÇÁÆ®¿þ¾î°¡ ó¸®ÇÏ´Â Àϵ鵵 Á¡
Â÷ º¹ÀâÇØÁö°í ´Ù¾çÇØÁü¿¡ µû¶ó ¼ÒÇÁÆ®¿þ¾îÀÇ ºÎÇÇ´Â ¿¹Àü¿¡ ºñÇØ ºñ±³°¡ µÇÁö
¾ÊÀ» ¸¸Å­ Ä¿Áö°Ô µÇ¾úÀ¸¸ç µ¢Ä¡°¡ Å« ÇÁ·Î±×·¥Àº ÀÚ¿¬È÷ bugÀÇ À§Çèµµ ¸¹¾Æ
½Å·Ú¼ºÀÌ ¶³¾îÁö°Ô µÇ¾ú´Ù. ÀÌ·¯ÇÑ Àü¹ÝÀûÀÎ »óȲÀ» ¼ÒÇÁÆ®¿þ¾î À§±â(software
crisis)¶ó°í ÇÑ´Ù. ¼ÒÇÁÆ®¿þ¾î À§±â¸¦ ±Øº¹ÇÒ ¼ö ÀÖ´Â ¹æ¾ÈÀ¸·Î È¿À²À» Á¶±Ý
Èñ»ýÇÏ´õ¶óµµ Á» ´õ ºü¸£°í Á¤È®ÇÑ °³¹ß¹æ¹ýÀÌ ÇÊ¿äÇØÁö°Ô µÇ¾úÀ¸¸ç ÀÌ·¯ÇÑ ÇÊ
¿ä¿¡ ÀÇÇØ ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀÌ ³ªÅ¸³ª°Ô µÇ¾ú´Ù. ±¸Á¶Àû ÇÁ·Î±×·¡¹ÖÀ̶õ
ÇÁ·Î±×·¥ÀÇ ºÎÇ°À» ÀÌ·ç´Â ÇÔ¼ö¸¦ ¸ÕÀú ¸¸µç ´ÙÀ½¿¡ ÇÔ¼ö¸¦ Á¶¸³ÇÏ¿© ÀüüÀûÀÎ
ÇÁ·Î±×·¥À» ¿Ï¼ºÇÏ´Â ¹æ¹ýÀÌ¸ç ºÎÇ°ÀÌ ¹ÏÀ»¸¸ÇÑ °ÍÀ̶ó¸é Á¶¸³ÀÇ °á°úÀÎ ÇÁ·Î
±×·¥µµ ½Å·ÚÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
ÇöÀç °¡Àå º¸ÆíÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â ¾ð¾îÀÎ C,PASCAL µîÀÌ ±¸Á¶Àû ÇÁ·Î
±×·¡¹Ö ¹æ½ÄÀ» µû¸£´Â ¾ð¾îÀÌ¸ç °ú°Å ±Ù 20³â°£¿¡ °ÉÃÄ ¼ÒÇÁÆ®¿þ¾î °øÇÐÀÇ ¹ß
Àü¿¡ Å©°Ô ±â¿©ÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÌ´Ù. ±×·¯³ª ¸ðµç °ÍÀÌ ¿Ïº®ÇÑ ¹ýÀº ¾ø´Â
¸¸Å­ ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö ¹æ½Äµµ ¸ðµâÀÇ Àç»ç¿ë¼ºÀ̳ª À¯Áö, º¸¼ö, È®ÀåÀÇ °ï¶õ
ÇÔÀÌ ÀÖ¾ú´Ù. ±¸Á¶Àû ¾ð¾îÀÇ ÀÌ·¯ÇÔ ´ÜÁ¡À» ±Øº¹Çϱâ À§ÇÑ ÇØ°á ¹æ¾ÈÀ¸·Î ÃÖ±Ù
Á¦½ÃµÈ °ÍÀÌ °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀÎ OOP(Object Oriented Programming)
¹æ½ÄÀÌ´Ù. OOP ¾ð¾î´Â ¸ðµâÀÇ Àç»ç¿ë¼º°ú À¯Áö, º¸¼ö, È®Àå¿¡ Ź¿ùÇÑ ¼º´ÉÀ»
¹ßÈÖÇÑ´Ù.
±×·¯³ª OOP°¡ ±¸Á¶Àû ¾ð¾î¿¡ ºñÇØ À̷лó ¿ì¼öÇÏ´Ù ÇÏ´õ¶óµµ µÎ ¹æ½Ä Áß ¾î¶²
¹æ½ÄÀÌ Àý´ëÀûÀ¸·Î ÁÁ´Ù°í´Â ¸»ÇÒ ¼ö ¾ø´Ù. OOP´Â ÇÁ·Î±×·¡¹ÖÀ» Çϱâ´Â ½±°í
ºü¸£Áö¸¸ ÇÁ·Î±×·¡¹ÖÀÇ °á°ú¹°ÀÎ ÇÁ·Î±×·¥ÀÇ Å©±â³ª ¼Óµµ¸é¿¡ À־´Â ¾Æ¹«·¡
µµ ±¸Á¶Àû ¾ð¾î¿¡ µÚÁö°í ÀÖ´Ù. Áß,¼Ò ±Ô¸ðÀÇ ÇÁ·Î±×·¥À̶ó¸é ¾ÆÁ÷µµ ±¸Á¶Àû
¾ð¾î¸¦ ¾´´Ù ÇÏ¿© Å« ¹«¸®´Â ¾øÀ¸¸ç ¿ÀÈ÷·Á ´õ È¿À²ÀûÀÏ ¼öµµ ÀÖ´Ù.
OOP ÀÌ·ÐÀ» Á¤¸³ÇÑ ¿¬±¸¼Ò¿¡¼­ ¸¸µç ÇÁ·Î±×·¥ Áß Å¬·¡½º¸¦ ´Ü Çϳª¶óµµ »ç¿ë
ÇÏ´Â ÇÁ·Î±×·¥Àº ÀüüÀÇ 10%¿¡ ºÒ°úÇÏ´Ù°í ÇÑ´Ù. OOP´Â ¾ÆÁ÷ ±× ÀÌ·ÐÀÌ ¿ÏÀüÈ÷
Á¤¸³µÈ ´Ü°è°¡ ¾Æ´Ï±â ¶§¹®¿¡ ºñ·Ï OOP°¡ Â÷¼¼´ëÀÇ ÇÁ·Î±×·¡¹Ö ȯ°æÀÌ µÉ °ÍÀÌ
¶ó°í ¿¹°ßµÇ°í ÀÖÁö¸¸ ¾ÕÀ¸·ÎÀÇ ´ë¼¼´Â ½±°Ô ÁüÀÛÇÒ ¼ö ¾ø´Ù.

³ª. ĸ½¶È­

ĸ½¶È­(encapsulation)¶õ °ü·ÃµÈ ÄÚµå¿Í µ¥ÀÌÅ͸¦ ÇϳªÀÇ ¹üÁÖ¿¡ ¹­´Â´Ù´Â ¶æ
ÀÌ´Ù. C++¿¡¼­ ĸ½¶È­¸¦ ¼öÇàÇÏ´Â ÁÖü´Â ¹°·Ð Ŭ·¡½º¸¦ ÀǹÌÇÑ´Ù. Ŭ·¡½º´Â
½ÇÁ¦ »ç¹°ÀÇ Æ¯¼º°ú Çൿ ¹æ½ÄÀ» Ç¥ÇöÇÑ´Ù. À̶§ Ư¼º¿¡ ÇØ´çÇÏ´Â ºÎºÐÀÌ Å¬·¡
½ºÀÇ µ¥ÀÌÅÍ ¸â¹öÀ̸ç Çൿ¹æ½Ä¿¡ ÇØ´çÇÏ´Â °ÍÀÌ ¸â¹ö ÇÔ¼öÀÌ´Ù. Ŭ·¡½º´Â µ¥
ÀÌÅÍ¿Í Äڵ带 ÇÑ Å׵θ®¿¡ ¸ð¾Æ µÎ¾î ½ÇÁ¦ »ç¹°ÀÇ ÇüÅ »Ó¸¸ ¾Æ´Ï¶ó µ¿ÀÛ±îÁö
µµ ±â¼úÇÑ´Ù.
C¿¡¼­ °ü·ÃµÈ µ¥ÀÌÅÍ, Äڵ带 ¹­±â À§Çؼ­´Â ¾Æ¸¶ µ¥ÀÌÅ͸¦ ¸ð¾Æ ±¸Á¶Ã¼¸¦ ¸¸
µé°í ±¸Á¶Ã¼¸¦ Ãë±ÞÇÏ´Â ÇÔ¼ö¸¦ ¸¸µç ÈÄ, ±¸Á¶Ã¼¿Í ÇÔ¼ö¸¦ ÇÑ ¼Ò½º ÆÄÀÏ¿¡ °°
ÀÌ À§Ä¡½Ãų °ÍÀÌ´Ù(ÇÑ ¸ðµâ¿¡ ¸ðÀº´Ù). °ú¿¬ ÀÌ·¸°Ô Çϸé C¿¡¼­µµ ÄÚµå¿Í µ¥
ÀÌÅ͸¦ ¹­À» ¼ö´Â ÀÖÁö¸¸ ³í¸®ÀûÀ¸·Î ±¸Á¶Ã¼¿Í ±¸Á¶Ã¼¸¦ ´Ù·ç´Â ÇÔ¼ö »çÀÌÀÇ
¸íÈ®ÇÑ °ü°è¼ºÀÌ Ç¥ÇöµÇÁö ¾ÊÀ¸¸ç ´Ù¸¥ ÇÔ¼öµéµµ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀ» ¾ó¸¶µçÁö
¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï °³¹æµÈ´Ù. C++¿¡¼­´Â Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© ÄÚµå¿Í µ¥ÀÌÅ͸¦
¹­À» »Ó¸¸ ¾Æ´Ï¶ó µ¥ÀÌÅ͸¦ ¿ÜºÎ·ÎºÎÅÍ º¸È£ÇÒ ¼öµµ ÀÖ´Ù.


´Ù. Ãß»ó¼º

ÇϳªÀÇ Å¬·¡½º°¡ ÀÖÀ» ¶§ Ŭ·¡½º ¿ÜºÎ¿¡¼­´Â Ŭ·¡½ºÀÇ ³»ºÎ µ¿ÀÛ¿¡ ´ëÇؼ­´Â
¾Ë ÇÊ¿ä°¡ ¾øÀ¸¸ç Áß¿äÇÑ °ÍÀº ±× Ŭ·¡½º°¡ ¹¹Çϴ Ŭ·¡½ºÀΰ¡¿Í ¾î¶»°Ô »ç¿ë
Çϴ°¡ ÇÏ´Â µîÀÇ »çÇ×ÀÌ´Ù.
¿¹¸¦ µé¾î È­¸éÀÇ »ç°¢ ¿µ¿ªÀ̶ó´Â ½Çü¸¦ Ç¥ÇöÇÏ´Â WINDOW Ŭ·¡½º¸¦ °¡Á¤ÇØ
º¸ÀÚ. ÀÌ Å¬·¡½º³»¿¡´Â À©µµ¿ìÀÇ ÁÂÇ¥, Å©±â, »ö»ó, Å׵θ® ¼Ó¼º µîÀÇ µ¥ÀÌÅÍ
¸â¹ö(Ư¼º)°¡ ÀÖÀ» °ÍÀÌ°í ¶ÇÇÑ À©µµ¿ìÀÇ À§Ä¡¸¦ ¿Å±â´Â ¸â¹ö ÇÔ¼ö, Å©±â¸¦ ¹Ù
²Ù´Â ¸â¹ö ÇÔ¼ö, À©µµ¿ì¸¦ È­¸é¿¡ Ãâ·ÂÇÏ´Â ¸â¹ö ÇÔ¼ö(Çൿ ¹æ½Ä) µîµîÀÌ ÀÖÀ»
°ÍÀÌ´Ù.
ÇÁ·Î±×·¥ÀÇ ¸¹Àº ºÎºÐ¿¡¼­´Â È­¸é»óÀÇ »ç°¢ ¿µ¿ªÀ» Ç¥ÇöÇϱâ À§ÇØ WINDOW °´
ü¸¦ ¸¸µé°í À©µµ¿ì¸¦ Á¶ÀÛÇϱâ À§ÇØ WINDOW Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÒ °Í
ÀÌ´Ù. ±×·¯´ø Áß WINDOW Ŭ·¡½ºÀÇ ³»ºÎ µ¿ÀÛÀ» ´õ¿í È¿À²ÀûÀ¸·Î ¼öÁ¤ÇÒ ¼ö ÀÖ
´Â ¹æ¹ýÀÌ °³¹ßµÇ¾úÀ¸¸ç WINDOW Ŭ·¡½º¸¦ Á÷Á¢ ¼öÁ¤Çß´Ù°í Çغ¸ÀÚ. À̶§ WINDO
W Ŭ·¡½º ³»ºÎ°¡ ¼öÁ¤µÇ´õ¶óµµ Ŭ·¡½º¿ÜºÎ´Â ÀüÇô ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ
¸é Ŭ·¡½º ¿ÜºÎ¿¡¼­´Â WINDOW Ŭ·¡½ºÀÇ ³»ºÎ µ¿ÀÛÀ» ¾ËÁöµµ ¸øÇϸç(ÀÌ°ÍÀ» Á¤
º¸ ÀºÆä:information hidingÀ̶ó ÇÑ´Ù.) ¿ÜºÎ ÇüÅÂ¿Í Çൿ ¹æ½Ä¸¸ ¹Ù²îÁö ¾ÊÀ¸
¸é µÈ´Ù. ¾î·µç WINDOW°´Ã¼¸¦ ¸¸µé¸é È­¸é»óÀÇ ÇÑ ¿µ¿ªÀ» ´ëÇ¥ÇÏ´Â °´Ã¼°¡ ¸¸
µé¾îÁö°í SHOW ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇϸé À©µµ¿ì°¡ È­¸é¿¡ Ãâ·ÂµÇ°í MOVE ¸â¹ö ÇÔ
¼ö¸¦ È£ÃâÇϸé À©µµ¿ì°¡ À̵¿Çϱ⸸ ÇÏ¸é µÉ °Å ¾Æ´Ñ°¡?
½ÇÁ¦ »ýÈ°¿¡¼­ ÀÌ·¯ÇÑ ¿¹¸¦ µé¾î º¸ÀÚ. ÄÄÇ»ÅÍÀÇ ºÎ¼ÓÇ°ÀÎ Å°º¸µå¸¦ ¿¹·Î µé
¸é, Å°º¸µå´Â ÄÄÇ»Å͸¦ ÀÌ·ç´Â ºÎÇ°À̸鼭 ´Ù¸¥ ºÎÇ°°ú ÇÔ²² µ¿ÀÛÇϵµ·Ï µÇ¾î
ÀÖ´Ù. Å°º¸µå´Â Å°º¸µåÀÇ ¸ÃÀº ÀÓ¹«ÀÎ ÀÔ·Â ±â´É¸¸ Á¦´ë·Î ¼öÇàÇÏ¸é ±×¸¸ÀÌ´Ù.
Å°º¸µå°¡ Çöó½ºÆ½À¸·Î ¸¸µé¾îÁ³°Ç, ³ª¹«·Î ¸¸µé¾îÁ³°Ç ¶Ç´Â µ¹À̳ª À¯¸®·Î ¸¸
µé¾îÁ³°Ç ÀüÇô »ó°üÀÌ ¾ø´Ù. Å° ÀÔ·ÂÀ» ½ºÀ§Ä¡·Î °¨ÁöÇØ ³»µç ÀüÀÚ ¼¾½º¸¦ »ç
¿ëÇؼ­ °¨ÁöÇØ ³»µç »ó°üÀÌ ¾øÀ¸¸ç Å°ÀÇ °³¼ö°¡ 84Å°µç 101Å°µç Å°º¸µå°¡ Á¦
¿ªÇÒ¸¸ Çس½´Ù¸é º»Ã¼¿¡¼­ »ó°üÇÒ ¹Ù°¡ ¸øµÈ´Ù.
ÄÄÇ»ÅÍÀÇ ÀÔÀå¿¡¼­ Å°º¸µå¸¦ ¹Ù¶ó º¸¸é Å°º¸µåÀÇ ³»ºÎ µ¿ÀÛÀº Ãß»óÀûÀÌ¸ç ¾Ë
¼ö°¡ ¾ø°í °£¼·ÇÒ ÇÊ¿äµµ ¾ø±â ¶§¹®ÀÌ´Ù. Ŭ·¡½ºÀÇ µ¥ÀÌÅÍ Ãß»ó¼ºÀº Ŭ·¡½º¸¦
´õ¿í µ¶¸³ÀûÀ¸·Î ¸¸µé¾î ÁØ´Ù.


¶ó. ´ÙÇü¼º

ÀÌ ¶ÇÇÑ C++ÀÇ Å« Ư¡ ÁßÀÇ ÇϳªÀÌ´Ù. ´ÙÇü¼ºÀ̶õ ÇÔ¼ö°¡ ÀμöÀÇ °³¼ö¿Í µ¥
ÀÌÅÍ Å¸ÀÔ¿¡ µû¶ó °°Àº À̸§À¸·Î ¿©·¯ °³ Á¸ÀçÇÒ ¼ö ÀÖ´Â ¼ºÁúÀ» ¶æÇÏÁö¸¸ ±×
º¸´Ù´Â °¡»óÇÔ¼ö¿¡ ÀÇÇÑ ´ÙÇü¼ºÀÌ ´õ Àǹ̰¡ ±í´Ù. °¡»ó ÇÔ¼ö´Â Ŭ·¡½º °èÃþ¸Á
¿¡¼­ °´Ã¼¿¡ µû¶ó ½ÇÇàÁß¿¡ Àû´çÇÑ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.


¸¶. »ó¼Ó¼º

Ŭ·¡½º´Â ƯÁ¤ »ç¹°ÀÇ Æ¯Â¡°ú Çൿ ¾ç½ÄÀ» Ç¥ÇöÇÑ´Ù. »Ó¸¸ ¾Æ´Ï¶ó Çѹø ¸¸µç
Ŭ·¡½º¸¦ »ó¼ÓÇÏ¿© ´õ¿í ´õ º¹ÀâÇÏ°í Ư¼öÇÑ »ç¹°À» ¼Õ½±°Ô ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.
°Ô´Ù°¡ ´ÙÁß »ó¼Ó¿¡ ÀÇÇØ µÎ »ç¹°ÀÇ Æ¯Â¡À» µ¿½Ã¿¡ °¡Áö´Â Ŭ·¡½º¸¦ ¸¸µé ¼öµµ
ÀÖ´Ù.

À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------

    

 ´ÙÀ½