Object ¿Í OOP
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.


Contents

1 ¹®¼­Á¤º¸
1.1 ÀÛ¼ºÀÚ Á¤º¸
1.2 È÷½ºÅ丮
2 °´Ã¼ÁöÇâ
2.1 °´Ã¼ÁöÇâÀº À߸øµÈ ¹ø¿ªÀΰ¡ ?
2.2 ÄÄÇ»ÅͶó´Â ±â°è
2.3 °´Ã¼¶õ
2.3.1 °´Ã¼¿Í class
2.3.2 Interface
2.3.3 °´Ã¼ ÁöÇâ°ú °úÇÐ
2.3.4 °úÇаú Á¾±³
2.4 Ãß»ó(õÎßÚ)È­ ¿Í Ãß»óÈ­ °úÁ¤
2.5 ÄÄÇ»ÅÍ¿¡¼­ÀÇ Ãß»óÈ­
2.6 Ãß»óÈ­¸¦ ÅëÇØ ¾ò´Â À̵æ
2.7 °´Ã¼´Â ÀÎÅÍÆäÀ̽º¸¦ °¡Áø´Ù.
2.8 °´Ã¼´Â ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù.
3 OOP (Object-Oriented Programming) °³·Ð
3.1 Object-Oriented ProgrammingÀÇ µîÀå
3.1.1 ¼ÒÇÁÆ®¿þ¾î À§±â (Software Crisis)
3.1.2 ¼ÒÇÁÆ®¿þ¾îÀÇ ±¸¼º ¹æ¹ýÀÇ º¯Ãµ
3.1.3 Structured ¹æ¹ýÀÇ ¹®Á¦Á¡
3.1.4 Object-Oriented ParadigmÀÇ µîÀå
3.2 OOPÀÇ ±âº»°³³ä
3.2.1 Object
3.2.2 Abstract Data Type & Data Abstraction
3.2.3 Encapsulation
3.2.4 Infomation Hiding
3.2.5 Composite Object
3.2.6 Message
3.2.7 Overloading
3.2.8 OverloadingÀÇ ÀåÁ¡
3.2.9 Polymorphism
3.2.10 Class
3.2.11 SuperClass¿Í SubClass
3.2.12 Inheritence(»ó¼Ó)
3.2.13 Class Hierarchy
3.2.14 ¿¹¿Ü(exception)ÀÇ Ã³¸® : Overriding
3.2.15 Virtual Class(Abstract Class)
3.2.16 Multiple Inheritance(´ÙÁß »ó¼Ó)
3.2.17 Class HierarchyÀÇ ±¸¼º
3.3 Object-Oriented ¹æ¹ýÀ» ÀÌ¿ëÇÑ SoftwareÀÇ ±¸Ãà
3.3.1 Reusability(ÀçȰ¿ë¼º)
3.3.2 Object¸¦ Á÷Á¢ »ç¿ëÇÑ SoftwareÀÇ ±¸Ãà
3.3.3 Simulation
3.3.4 Rapid Prototyping
3.3.5 SystemÀÇ ±¸Ãà
3.4 Object-Oriented ¹æ¹ýÀÇ ÀåÁ¡°ú ´ÜÁ¡
3.4.1 ÀåÁ¡
3.4.2 ´ÜÁ¡
3.4.3 Àå´ÜÁ¡ÀÇ ÀûÀýÇÑ Á¶È­
4 °ü·Ã±Û

  • CÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ C++¿¡ ³»¿ëÀ» µ¡ºÙÀÌ´Â °Íµµ ÁÁÀ»°Í °°±º¿ä. ÀÛ¾÷À» ÇÔ ÇØº¼±î³ª -.-;

1 ¹®¼­Á¤º¸

1.1 ÀÛ¼ºÀÚ Á¤º¸

  • ÃÖÃÊ ÀÛ¼ºÀÚ: mwyun(¸Û)
  • ÀÌ·¡Àú·¡ ¼öÁ¤ÇÑ »ç¶÷ : yundream

1.2 È÷½ºÅ丮

  • ³»¿ë ´ëÆø ¼öÁ¤/Ãß°¡ - 2009/6/9
    1. ¿ÀÅ»ÀÚ ¼öÁ¤
    2. ¹®¸Æ¿¡ ¸ÂÁö ¾Ê´Â ³»¿ë ¼öÁ¤/Ãß°¡/»èÁ¦
  • http://jamesthornton.com/eckel/TIJ-3rd-edition4.0/TIJ3.htm <-- À̹®¼­ ¾î¶²°¡¿ä? °´Ã¼¿¡ ´ëÇÑ °³³ä¼³¸íÀ¸·Î ±¦ÂúÀº°Í °°Àºµ¥, À̰ŠÁ¤¸®ÇÏ°í »¬°Å »©°í, »ìÁ» ºÙÀÌ¸é ½ºÅ͵𿡠±¦ÂúÀ» µí.. - yundream

2 °´Ã¼ÁöÇâ

2.1 °´Ã¼ÁöÇâÀº À߸øµÈ ¹ø¿ªÀΰ¡ ?

°´Ã¼ÁöÇâÀº ÄÄÇ»ÅÍ ¼ÒÇÁÆ®¿þ¾î °øÇп¡¼­ »ç¿ëÇÏ´Â ¿ë¾î·Î Object-orientedÀ» ¹ø¿ªÇÑ ´Ü¾î´Ù. À̰ÍÀ» °´Ã¼ÁöÇâÀ̶ó°í ¹ø¿ªÇÏ´Â°Ô Object-oriented ¶ó´Â º»·¡ÀÇ Àǹ̸¦ Á¦´ë·Î Ç¥ÇöÇØÁÙ ¼ö ÀÖ´À³Ä ¾Æ´Ï³Ä¸¦ ¹®Á¦»ï´Â °æ¿ìµµ ÀÖ´Ù. ¿ì¸®°¡ ÀϹÝÀûÀ¸·Î »ç¿ëÇØ¿Ô´ø °´Ã¼¿Í ¿µ¾î±Ç¿¡¼­ »ç¿ëÇÏ´Â Object´Â Áý<->Houseó·³ ¸íÈ®È÷ Àǹ̰¡ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¹Ç·Î ±×³É ¿ÀºêÁ§Æ® ¿À¸®¿£Æ®µå¶ó°í ±×´ë·Î Àоî¾ß ÇÑ´Ù´Â Àǰߵµ ÀÖ´Ù.

ÀÌ·¯ÇÑ ³í¶õÀÌ »ý±â´Â ÀÌÀ¯´Â Object¶ó´Â ´Ü¾î°¡ ´ÙºÐÈ÷ öÇÐÀûÀÎ Àǹ̸¦ Æ÷ÇÔÇϰí Àֱ⠶§¹®ÀÌ´Ù. ¼­¾ç öÇÐÀº ±×¸®½º öÇÐÀ» Åä´ë·Î Çϰí Àִµ¥, ±×¸®½º öÇÐÀº ÀÚ¿¬¿¡¼­ µ¶¸³ÀûÀÎ »ç¹°¿¡ ´ëÇÑ °üÂûÀ» ÅëÇÑ Å½±¸°¡ öÇÐÀû (°úÇÐÀû)»ç°íÀÇ ¹æ¹ý·ÐÀÌ¿´´Ù. ¸£³×»ó½º½Ã´ëÀÇ Ã¶ÇÐÀº ÀÌ·¯ÇÑ ±×¸®½º öÇÐÀ» °è½ÂÇϰí ÀÖ°í Áö±Ý±îÁö À̾îÁö°í ÀÖ´Ù. °í´ë ±×¸®½º¿¡¼­ ÀÚ¿¬ ¹ß»ý¼³°ú °°Àº ¼³ÀÌ ³ª¿Â °Íµµ ÀÌ·¯ÇÑ °üÂûÀÇ °á°ú¿´´Ù. ¾Æ¸®½ºÅäÅÚ·¹½º°¡ °üÂûÀ» ÇØº¸´Ï, ½âÀº ³ª¹«¿¡¼­ ÀúÀý·Î ¹ú·¹°¡ »ý±â°í ½Ãü¿¡´Â ±¸´õ±â°¡ »ý±â´õ¶õ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ °üÂûÀÇ °á°ú ÀÚ¿¬ ¹ß»ý¼³À̶ó´Â °¡¼³À» ¼¼¿ü´Ù. ¹°·Ð À߸øµÈ ¼³À̱ä ÇÏÁö¸¸ ¸»ÀÌ´Ù. (´ç½Ã °üÂû µµ±¸ÀÇ ÇѰè·Î ÀÎÇÑ À߸øµÈ °á°ú µµÃâ)

¹Ý¸é µ¿¾ç öÇÐÀº ÀÚ¿¬À» ÀÌ·ç´Â °³Ã¼µé º¸´Ù´Â À̵éÀ» ¸ðµÎ Æ÷ÇÔÇÑ ÀÚ¿¬ ±× ÀÚü¸¦ Æ÷°ýÀûÀ¸·Î ´Ù·é´Ù. ¿ìÁÖ¿Í ÀÚ¿¬¿¡¼­ÀÇ ¿¡³ÊÁöÀÇ È帧, Àüü¿ÍÀÇ Á¶È­¿Í ±ÕÇüÀÇ ¿ø¸®¿¡ ÀÌÇØ¸¦ ÁÖ¿äÇÏ°Ô ´Ù¸¥´Ù. °ÔÀÓ¿¡¼­µµ ÀÌ·¯ÇÑ Â÷À̰¡ ³ªÅ¸³ª´Â °ÍÀ¸·Î º¸ÀδÙ.

¹°°í±â¸¦ ´Ù·é´Ù°í Çϸé, ±×¸®½º öÇÐÀÚµéÀº ¹°°í±â°¡ °¡Áö´Â ´Ù¸¥ »ç¹°°ú ºñ±³µÇ´Â Ư¡À» ޱ¸ÇÏ´Â ¹Ý¸é µ¿¾çöÇÐÀÚ´Â ¹°°í±â¿Í ¹°ÀÌ ¾î¶»°Ô Á¶È­¸¦ ÀÌ·ç´ÂÁö¸¦ ޱ¸ÇÑ´Ù.

ÀÌ·¯ÇÑ µ¿¼­¾ç öÇÐÀÇ Â÷ÀÌ´Â ¹®È­ÀÇ Â÷À̸¦ ¸¸µé¾ú°í, Áö±Ýµµ ¿µÇâÀ» ¹ÌÄ¡°í ÀÖ´Ù. ½ÇÁ¦ µ¿¼­¾çÀÎÀÇ »ç¹°¿¡ ´ëÇÑ ÀνÄÀÇ Â÷À̸¦ º¸¿©ÁÖ´Â ¿¬±¸ ½ÇÇè °á°úµµ ÀÖ´Ù. ¿©·¯ ¸íÀÇ »ç¶÷ÀÌ ³ª¿À´Â »çÁøÀÌ ÀÖ´Ù. °¡¿îµ¥ ÇÑ ¸íÀº Áñ°Å¿î µíÀÌ ¿ô°í ÀÖ°í ³ª¸ÓÁö´Â ¸ðµÎ ¹«Ç¥Á¤Çϰųª Âô±×¸° Ç¥Á¤À» Çϰí ÀÖ´Ù. ÀÌ °¡¿îµ¥ ÇѸíÀÌ Çàº¹ÇØ º¸ÀԴϱî. ºÒÇàÇØ º¸ÀԴϱî¶ó´Â Áú¹®¿¡ µ¿¼­¾ç »ç¶÷µéÀÇ ¹ÝÀÀÀº È®¿¬È÷ ´ëºñµÈ´Ù.

µ¿¾çÀεéÀº ºÒÇàÇØ º¸Àδٴ ÀÀ´äÀÌ ´Ù¼öÀε¥ ºñÇØ, ¼­¾çÀεéÀº Çàº¹ÇØ º¸Àδٴ ÀÀ´äÀÌ ´Ù¼ö¿´´Ù. µ¿¾çÀεéÀº Àüü¸¦ º¸´Â ¹Ý¸é, ¼­¾çÀÎÀº °³Àο¡ Á»´õ ÁýÁßÇÑ´Ù.

ÀÌ·¯ÇÑ ¹®È­Àû Â÷ÀÌ ¶§¹®¿¡ object¿Í °´Ã¼´Â ±× Àǹ̰¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ¿ì¸®°¡ ¾Ë°í ÀÖ´Â °´Ã¼´Â ´Ù¸¥ »ç¹°°ú ±¸ºÐÇÒ ¼ö ÀÖ´Â °´Ã¼¶ó°í º¸´Â ½Ã°¢ÀÌ °­Çѵ¥, ¼ÒÇÁÆ®¿þ¾î °øÇп¡¼­ÀÇ °´Ã¼´Â öÇÐÀû »çÀ¯ ¹æ½Ä±îÁö¸¦ Æ÷ÇÔÇϱ⠶§¹®ÀÌ´Ù.

±×·± Â÷À̸¦ ÀÎÁ¤ÇÑ´Ù°í ÇØµµ, ³ª´Â °´Ã¼ÁöÇâÀÌ À߸øµÇ¾ú³× ¾Æ´Ï³× ¿ÀºêÁ§Æ® ¿À¸®¿£Æ®µå·Î ºÒ·¯¾ß ÇÏ³× ¸»¾Æ¾ß ÇÏ³× ÇÏ´Â ³íÀïÀº ÇÊ¿ä¾ø´Ù°í »ý°¢ÇÏ´Â ÀÔÀåÀÌ´Ù. Àǹ̴ ½Ã´ë¿¡ µû¶ó ´Þ¶óÁö±â ¶§¹®ÀÌ´Ù. »õ·Î¿î Àǹ̸¦ Æ÷ÇÔÇÑ »õ·Î¿î ´Ü¾î°¡ ¸¸µé¾îÁö±âµµ ÇÏÁö¸¸ (¿¹ÄÁµ¥ Áö±¸Ã̰ú °°Àº), ±âÁ¸¿¡ ÀÖ´ø ´Ü¾îÀÇ Àǹ̰¡ ´Þ¶óÁö°Å³ª È®ÀåµÇ±âµµ Çϱ⠶§¹®ÀÌ´Ù.

°´Ã¼ÁöÇâÀÌ °ÅÀÇ Ç¥ÁØÀûÀÎ ¿ë¾î·Î »ç¿ëµÇ°í ÀÖ°í, (¾à°£ÀÇ ¿ÀÇØ°¡ ÀÖÀ» ¼ö´Â ÀÖÁö¸¸) ´ë°Ô ±× Àǹ̿¡ ´ëÇØ¼­µµ ÀÌÇØÇϰí, ȤÀº ÀÌÇØ ½Ãų ¼ö Àִµ¥ ±»ÀÌ ³íÀïÀÌ ÇÊ¿ä ¾ø´Ù´Â »ý°¢ÀÌ´Ù.

2.2 ÄÄÇ»ÅͶó´Â ±â°è

ÃÖÃÊÀÇ ±Ù´ëÀû ±â°èÀÇ °³³äÀ» ´ã°í ÀÖ´Â ±â°èÀÇ Á¦ÀÛÀº ¾Æ¸¶µµ °í´ë ±×¸®½º½Ã´ë·Î ¿Ã¶ó°¥µí ÇÏ´Ù. ¾Æ¸®½ºÅäÅÚ·¹½º´Â ÀüÀï¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Â ±â°è¸¦ ¸¸µé¾úÀ¸¸ç, ½ÇÁ¦ ÀüÂ÷(Çö´ëÀû °³³äÀÇ ÅÊÅ©)µµ ¼³°èÇß´ø °ÍÀ¸·Î ¾Ë·ÁÁø´Ù. À¯´ë Àü¼³¿¡ ³ª¿À´Â °ñ·½µµ ÀÏÁ¾ÀÇ »ý°¢ÇÏ´Â ±â°è (ÄÄÇ»ÅÍ)¶ó°í ÇÒ¼ö ÀÖ°Ú´Ù. °í´ë ºÎÅÍ Àΰ£Àº »ý°¢ÇÏ´Â ±â°è¸¦ ²Þ²ã¿Ô´ø °Í °°´Ù.

ÀÌÈÄ¿¡ ¸¸µé¾îÁø ±â°è´Â ¹¹ »ç½ÇÀº °í¸¸°í¸¸ÇÑ ±â°è¿´´Âµ¥ ÀÌµé ±â°è´Â ÁÖ·Î ¹°¸®·ÂÀ» ÀÌ¿ëÇØ¼­ "¹°°ÇÀ»" ¿Å±â´Â ÀÏÀ» ÇÏ¿´´Ù. ¹ÙÄû¿Í ±â¾îµé·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç Á¦¾îÇϱâ À§Çؼ­ Àΰ£À̳ª µ¿¹°ÀÇ ¹°¸®·ÂÀ» ÇÊ¿ä·Î ÇßÀ¸¸ç ¾ó¸¶³ª ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ³ªÅ¸³»´Â ´ÜÀ§·Î '¸¶·ÂÀ» »ç¿ëÇß´Ù. ¸¶¼£ ¸Æ·çÇÑÀÌ ÁöÀûÇß´ø °Íó·³ ±â°è¶ó´Â °ÍÀº Àΰ£ÀÇ ½ÅüÀÇ ±â´ÉÀ» ¿ÜºÎ·Î È®ÀåÇÏ´Â ÀåÄ¡´Ù. ÄÄÇ»ÅͰ¡ ³ªÅ¸³ª±â Àü±îÁöÀÇ ±â°èµéÀº Àΰ£½ÅüÀÇ ¸»´Ü¿¡ À§Ä¡Çؼ­ ÁÖ·Î ±ÙÀ°¿¡ ÀÇÇØ¼­ Á¦¾îµÇ´Â ½Åü¸¦ È®Àå½ÃŰ´Â ¿ëµµ·Î ¸¸µé¾îÁ³´Ù. ¹ÙÄû, Áö·¹, ¸Á¿ø°æ, ¼ö·¹, °¢Á¾ °ø±¸µéÀÌ ±×°ÍÀÌ´Ù.

Àΰ£ÀÇ ½ÅüÀÇ ±â´ÉÀ» È®Àå½ÃŰ·Á´Â ½Ãµµ´Â Àΰ£ÀÇ ³úÀÇ ±â´ÉÀ» È®Àå½ÃŰ·Á´Â ½Ãµµ·Îµµ ÀÌ·ç¾îÁø´Ù. ±â¾ïÇϰí Ãß·ÐÇÏ´Â ±â´ÉÀÌ ±×°ÍÀÌ´Ù. ¹°·Ð ´ç½ÃÀÇ ±â¼úÀûÀÎ ÇÑ°è ¶§¹®¿¡ ÀÌ·¯ÇÑ ½Ãµµ°¡ °á½ÇÀ» ¸ÎÁö´Â ¸øÇß´Ù. ºñ±³Àû ´Ü¼øÇÏ´Ù°í »ý°¢µÇ´Â ¾Æ³¯·Î±× °è»ê±â¿Í ±× ÀÀ¿ëÁ¤µµ·Î ¸¸Á·ÇØ¾ß Çß´Ù.

±×·¯´Ù°¡ ÄÄÇ»ÅͶó´Â ±âÁ¸ÀÇ ±â°èÀÇ °³³ä°ú´Â ¸Å¿ì ´Ù¸¥ ±â°è°¡ ¸¸µé¾îÁø´Ù. ÀÌ ±â°è´Â Àΰ£ÀÇ ³úÀÇ ±â´ÉÀ» È®Àå½ÃŰ·Á°í ÇÑ´Ù´Â Á¡¿¡¼­, ±â¾î¸¦ ÅëÇØ¼­ ÀÛµ¿ÇÏ´Â ¾Æ³¯·Î±× °è»ê±â¿Í ±âº»ÀûÀÎ ¸ñÀû¿¡ À־ °°´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ±âÁ¸ÀÇ °è»ê±â¿Í ´Ù¸¥ ±Ùº»ÀûÀÎ Â÷ÀÌÁ¡À» °¡Áö°í ÀÖ¾ú´Ù. ¹Ù·Î Àü±â¿Í ÀüÀÚ¸¦ ÀÌ¿ëÇØ¼­ ÀÛµ¿ÇÑ´Ù´Â Á¡ÀÌ¿´´Ù. ¾Æ³¯·Î±× Àåºñ·Î Àΰ£ÀÇ ³ú¸¦ È®Àå½Ã۴µ¥ À־ ¾î·Á¿òÀº ¾Æ³¯·Î±× ÀåºñÀÇ ÇÙ½ÉÀÎ ±â¾îÀÇ Å©±â¿Í ±â¾îµéÀ» ÀÌ·ç°í ÀÖ´Â ±Ý¼ÓÀÇ Æ¯Â¡ÀÌ¿´´Ù. ±â¾î´Â Å©±â°¡ ÄÇÀ¸¸ç ³ìÀÌ ¾µ°í Àß ¸¶¸ð°¡ µÇ¾úÀ¸¸ç, ½±°Ô °íÀåÀÌ ³µ´Ù. º¹ÀâÇÑ ±â°è¸¦ ¸¸µé·Á°í ÇÑ´Ù¸é ¼öõ ȤÀº ¼ö¸¸°³ÀÇ ±â¾î¿Í Å¿±ÀÌ ÇÊ¿äÇß´Ù. °Ô´Ù°¡ ´À¸®±â ±îÁö Çß´Ù. ¶ÇÇÑ Çѹø ¸¸µé¾îÁö¸é, ±× ±â´ÉÀ» ¹Ù²Ù±â°¡ ½±Áö ¾Ê¾Ò´Ù. ÀÌµé °è»ê±â´Â ±â¾î¿Í Å¿±ÀÇ ¹°¸®ÀûÀÎ ¹èÄ¡°¡ ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ªÇÒÀ» Çß´Ù. Áï Çϵå¿þ¾î¸¸ ÀÖ¾úÁö ¼ÒÇÁÆ®¿þ¾î´Â ¾ø¾ú´Ù. ¹ü¿ë ±â°è¸¦ ¸¸µé±â À§Çؼ­´Â Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î¸¦ ºÐ¸®ÇÒ Çʿ䰡 ÀÖ´Ù.

¹Ý¸é Àü±â¿Í ÀüÀÚ·Î ÀÛµ¿ÇÏ´Â ±â¾î¿Í Å¿±¿¡ ºñÇØ¼­ ±× ¼Óµµ°¡ ºñ±³ÀÚü¸¦ ÇÒ ¼ö ¾øÀ» Á¤µµ·Î »¡¶ú´Ù. ¹°¸®ÀûÀÎ Á¦¾à¿¡¼­µµ ºñ±³Àû ÀÚÀ¯·Î¿ï ¼ö ÀÖ¾ú´Ù. ¶ÇÇÑ ÄÄÇ»ÅÍ´Â ¼ÒÇÁÆ®¿þ¾î¿Í Çϵå¿þ¾î¸¦ ºÐ¸®ÇÒ ¼ö ÀÖ¾ú´Âµ¥, ÀÌ´Â ¹ü¿ëÃ߷бâ°è¸¦ ¸¸µé ¼ö ÀÖ´Â ±æÀ» ¿­¾î ³õ¾Ò´Ù.

ÄÄÇ»ÅÍ´Â Á¤º¸¸¦ ó¸®ÇÔ¿¡ À־ ȹ±âÀûÀÎ ±â°èÀ̱ä ÇßÁö¸¸ ¾Æ³¯·Î±× ±â°è¿Í´Â ´Þ¸® »óŰ¡ Âü°ú °ÅÁþÀ¸·Î Ç¥ÇöµÇ´Â ÇѰ踦 °¡Áö°í ÀÖ¾ú´Ù. Âü°ú,°ÅÁþÀ¸·Î Á¤º¸ºÐ¼®ÀÌ ÁøÇàµÇ´Â ³í¸®¿¬»ê¿¡´Â È¿À²ÀûÀÌ¿´Áö¸¸ ¾Æ³¯·Î±× ÀûÀÎ ½Ç¼¼°èÀÇ ´Ù¸¥ Á¤º¸µéÀ» ó¸®Çϱ⿡´Â ±×´ÙÁö È¿À²ÀûÀÌÁö ¸øÇÏ´Ù. Ãʱ⿡´Â ÄÄÇ»ÅÍÀÇ »ç¿ë¿ëµµ°¡ ÇÑÁ¤ÀûÀÌ¿´À¸¹Ç·Î Âü,°ÅÁþÀ» Àß ÀÌ¿ëÇÏ´Â Á¤µµ·Î ´ëºÎºÐÀÇ ÀÏÀ» ó¸®ÇÒ ¼ö ÀÖ¾ú´Ù. ÇÁ·Î±×·¡¹Ö¾ð¾î ¿ª½Ã ÀÌ·¯ÇÏ¿´´Ù. ±â°è¾î, ¾î¼Àºí¸®¾î, C(ÀÌ·ÐÀÌ ÀÖÀ» ¼ö ÀÖ°Ú´Ù) µîÀÌ ±×·¯ÇÑ ºÎ·ù¿¡ ¼ÓÇÑ´Ù.

Âü°ú °ÅÁþ¿¡ ±âÃʸ¦ µÐ ³í¸®¿¬»êÀº ¾î¶² ÀÏ·ÃÀÇ ¼ø¼­¸¦ µû¸£¸é¼­ Á¤º¸¸¦ ó¸®Çϵµ·Ï µÇ¾î ÀÖ´Ù. ÄÁÅ×ÀÌ³Ê º§Æ®¸¦ ÀÌ¿ëÇØ¼­ ¹°°ÇÀ» ó¸®ÇÏ´Â °ÍÀ¸·Î º¸¸é µÉ °ÍÀÌ´Ù. ÄÁÅ×ÀÌ³Ê º§Æ®´Â ¹°°Ç°ú ¹°°ÇÀ» ó¸®ÇÏ´Â ÇÁ·Î¼¼½º°¡ ºÐ¸®µÇ¾î Àִµ¥, ÄÄÇ»ÅÍ ¿ª½Ã µ¥ÀÌÅÍ¿Í µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ¹æ¹ýÀÌ ºÐ¸®µÇ¾î ÀÖ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀº º¹ÀâÇÏÁö¾ÊÀº Á¤º¸¸¦ ó¸®ÇÒ¶§´Â È¿À²ÀûÀÌÁö¸¸ °¡°è/±â¾÷°æ¿µ/¹®¼­ÀÛ¼º/À½¾ÇÀ缺/°øÀåÁ¦¾î/°ÔÀÓ¿¡¼­¿Í °°ÀÌ Á¤º¸¿Í Á¤º¸°¡ »óÈ£¿¬°üµÇ¾î¼­ º¹ÀâÇÏ°Ô ¾ôÇôÀÖ´Â °æ¿ì¿¡´Â È¿À²ÀÌ ±ØÈ÷ ¶³¾îÁö°Ô µÈ´Ù. ¼ö¹é°³ÀÇ ÄÁÅ×ÀÌ³Ê º§Æ®°¡ ¸¸µé¾îÁ® Àִµ¥, Çʿ信 µû¶ó¼­ ÀÌµé °¢ ÄÁÅ×À̳ʸ¦ ¼­·Î ¿¬°á½ÃÄѼ­ µ¥ÀÌÅ͸¦ ó¸®ÇؾßÇÒ °æ¿ì¸¦ »ý°¢Çغ¸¸é µÉ°ÍÀÌ´Ù. ÀԷ°ú Ãâ·ÂÀÌ ¸Å¿ì ¸íÈ®ÇÑ Á¦Á¶¾÷¿¡¼­¾ß ÄÁÅ×À̳ʺ§Æ®¸¦ Àç¹è¿­ÇØ¾ß ÇÏ´Â ÀÏÀÌ ±×´ÙÁö ÇÊ¿ä ¾ø°ÚÁö¸¸ ¼ÒÇÁÆ®¿þ¾î °³¹ß¿µ¿ªÀº ±×·¸Áö ¾Ê´Ù. µû¶ó¼­ ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϰí À¯ÁöÇÏ°í º¸¼öÇϴµ¥ ¸¹Àº ºñ¿ëÀÌ µé°Ô µÈ´Ù.

±×·¡¼­ ¸¸µé¾îÁø°Ô "°´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö"À¸·Î ÄÄÇ»ÅͰ¡ µ¥ÀÌÅÍ¿Í µ¥ÀÌÅÍÀÇ Ã³¸®°úÁ¤À» ºÐ¸®½ÃÄѼ­ »ý°¢ÇÏ´Â°É ÇϳªÀÇ °´Ã¼·Î º¸°í ó¸®Çϵµ·Ï ¸¸µé¾îÁø ¹æ¹ý·ÐÀÌ´Ù. ÀÌ ¹æ¹ý·ÐÀ» ÀÌ¿ëÇØ¼­ ÄÚµåÀÇ Àç»ç¿ë¼º, À¯Áö/º¸¼ö¼ºÀ» ³ôÀ̰íÀÚ ÇÏ°Ô µÈ´Ù.

2.3 °´Ã¼¶õ

°£´ÜÈ÷ ¸»ÇÏÀÚ¸é °´Ã¼´Â ÁÖº¯¿¡¼­ º¼ ¼ö ÀÖ´Â ¸ðµç (°üÂûµÇ¾îÁö´Â)»ç¹°ÀÌ´Ù. »ð»ì°³, È£¶ûÀÌ, ¼¼Æ÷, »ç¶÷.. ÀüºÎ´Ù °´Ã¼´Ù. ¶ÇÇÑ ´«¿¡ º¸ÀÌ´Â ±¸Ã¼ÀûÀÎ °Í »Ó¸¸ ¾Æ´Ï¶ó °æÁ¦, ±¹°¡, ½ÃÀå °°Àº ´«¿¡ º¸ÀÌÁö ¾Ê´Â °Íµµ °´Ã¼¶ó°í ÇÑ´Ù. ¸ðµç °ÍÀÌ °´Ã¼´Ù!!! ´Ü¼ø¸í·áÇϱä ÇÏÁö¸¸ ³Ê¹« Æ÷°ýÀûÀÎ °Í °°À¸´Ï °´Ã¼ÀÇ Æ¯Â¡¿¡ ´ëÇØ¼­ Á¤¸®Çغ¼ Çʿ䰡 ÀÖÀ» °Í °°´Ù.

°´Ã¼´Â ³»¸é°ú ³»¸éÀ» °¨½Î´Â ¿ÜÇǸ¦ °¡Áø´Ù. ¼¼Æ÷¶ó´Â °´Ã¼´Â ¼¼Æ÷³»¿ë¹°Áú°ú À̵éÀ» °¨½Î´Â ¿ÜÇÇ·Î ±¸¼ºÀÌ µÈ´Ù. °üÂûÀÚ¿¡°Ô º¸ÀÌ´Â °ÍÀº ¿ÜÇǰ¡ µÈ´Ù. ³»¿ë¹°µé°ú ³»¿ë¹°µéÀÌ »óÈ£ÀÛ¿ëÇÏ´Â °úÁ¤Àº °üÂûÀÚ¿¡°Ô °¨Ãß¾îÁø´Ù. ÀÌ·¸°Ô ³»¸éÀ» °¨Ãß´Â ¿ÜÇǸ¦ °¡Áö´Â °ÍÀ» Ãß»óÀ̶ó°í Çϴµ¥, ÀÌ Ãß»óÀº °´Ã¼°¡ °¡Áö´Â ´ëÇ¥ÀûÀΠƯ¡ÀÌ´Ù. ¿©±â¿¡ µû¸£¸é ¿ÜÇǸ¦ °¡ÁöÁö ¾Ê´Â °ÍÀº °´Ã¼¶ó°í ÇÒ ¼ö°¡ ¾ø´Ù. ¿ÜÇǰ¡ Áß¿äÇÑ ÀÌÀ¯´Â ÁÖº¯ÀÇ ´Ù¸¥ »ç¹°°ú ±¸ºÐµÇ´Â Ç¥¸éÀÌ ÀÖ¾î¾ß °üÂûÀÚ¿¡°Ô µ¶¸³ÀûÀÎ »ç¹°·Î º¸¿©Áú ¼ö Àֱ⠶§¹®ÀÌ´Ù. Ç¥¸éÀº °æ°è¶ó°í ÇØµµ ÁÁÀ» °ÍÀÌ´Ù.

°æÁ¦³ª ±¹°¡¿Í °°Àº °Íµéµµ Àΰ£Àº °´Ã¼¶ó°í º»´Ù. ¹°¸®ÀûÀÎ ¿ÜÇǸ¦ °¡ÁöÁö ¾ÊÁö¸¸ Àΰ£ÀÇ ÀνÄÇÏ¿¡¼­ °æÁ¦´Â °æ°è¸¦ °¡Áö°í Àֱ⠶§¹®ÀÌ´Ù. °æ°è¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î °üÂûÀÚÀÎ Àΰ£Àº °æÁ¦¸¦ °üÂûÇÏ°í ºÐ¼®ÇÒ ¼ö ÀÖ´Ù. ¿©±â¿¡¼­ ¾î¶² ´ë»óÀÌ °´Ã¼·Î º¸ÀÌ´À³Ä ¾Æ´Ï³Ä ÇÏ´Â °ÍÀº »ó´ëÀûÀÏ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. °æÁ¦°ü³äÀÌ ¾ø´Â Áö¿ªÀÇ »ç¶÷µé¿¡°Ô´Â °æÁ¦´Â °üÂûÇÒ ¼ö ÀÖ´Â ´ë»óÀÌ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù.

°´Ã¼´Â °´Ã¼¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. Ä¡¾Æ¿Í³ª ¼ÎÆÛµå´Â °´Ã¼´Ù. ¿©±â¿¡¼­ ´õ ³ª¾Æ°¡ À̵é Ä¡¾Æ¿Í³ª ¼ÎÆÛµå¸¦ ÅëĪÇÏ´Â °³µµ °´Ã¼°¡ µÉ ¼ö ÀÖ´Ù. °³´Â Ä¡¾Æ¿Í¿Í ¼ÎÆÛµå¿Í °°Àº °´Ã¼ÀÇ °øÅëÀûÀΠƯ¡À» ºÐ¼®Çؼ­ Àΰ£ÀÇ Áö¼ºÀÌ ¸¸µé¾î³½ °¡»óÀÇ °³³äÀÌÁö¸¸ °í¾çÀ̶ó´Â ´Ù¸¥ °³³ä°ú ±¸ºÐµÇ´Â ¿ÜÇǸ¦ °¡Áö°í ÀÖÀ¸¹Ç·Î °´Ã¼¶ó°í ÇÒ ¼ö ÀÖ´Ù. °³¶ó´Â °´Ã¼´Â Ä¡¾Æ¿Í, ¼ÎÆÛµå °´Ã¼¸¦ Æ÷ÇÔÇÑ´Ù. ÀÌ·¯ÇÑ °´Ã¼ÀÇ ¼Ó¼ºÀ» ÀÌ¿ëÇÏ¸é °´Ã¼ÀÇ °èÃþÀû- Hierarchy - ±¸Á¶¸¦ ¸¸µé ¼ö ÀÖ´Ù. À̰ÍÀº º¹ÀâÇÑ ÀÚ¿¬Çö»óÀ» ´Ü¼øÈ­ ½ÃÄѼ­ ÀνÄÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. ´ëÇ¥ÀûÀÎ ¿¹°¡ Á¾,¼Ó,°ú,¸ñ,°­,¹®,°èÀÏ °ÍÀÌ´Ù.

°´Ã¼´Â ÁÖº¯È¯°æ ȤÀº ´Ù¸¥ °´Ã¼¿Í »óÈ£ÀÛ¿ëÇÑ´Ù. »ý¹°ÀÇ °æ¿ì »óÈ£ÀÛ¿ëÀº °¨°¢±â°üÀ» ÅëÇØ¼­ ³»ºÎ·Î Á¤º¸¸¦ ¹Þ¾ÆµéÀÎ ´ÙÀ½ À̸¦ ó¸®ÇÏ°í ¿îµ¿±â°üÀ» ÅëÇØ¼­ ´Ù¸¥ °´Ã¼¸¦ Á¶ÀÛÇÑ´Â Çü½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù. °³°¡ À§ÇùÀûÀ¸·Î ´Þ·Áµé¸é ´«À¸·Î ÀÌ Á¤º¸¸¦ ¹Þ¾Æµé¿©¼­ ó¸®ÇÑ´ÙÀ½ ´Ù¸®±ÙÀ°À» ¿òÁ÷¿©¼­ ´Þ¾Æ³ª°Å³ª ȤÀº ¿Â¸öÀ» ÀÌ¿ëÇØ¼­ ½Î¿ì°Å³ª ÇÏ´Â ½ÄÀÌ´Ù. ÀÌ·¯ÇÑ »óÈ£ÀÛ¿ëÀº °æÁ¦¿Í °°Àº ±¸Ã¼ÀûÀÎ ÇüŸ¦ °¡ÁöÁö ¾ÊÀº °´Ã¼¿¡µµ Àû¿ëµÈ´Ù. °æÁ¦ÀÇ °æ¿ì¿¡´Â ½Å¹®,´º½º, ÁֽĸÅÀÔ,ÀºÇà¾÷¹«µîÀ» ÅëÇØ¼­ »óÈ£ÀÛ¿ëÇÒ °ÍÀÌ´Ù.

À̻󿡼­ °´Ã¼ÀÇ ´ÙÀ½°ú °°Àº Ư¡À» »Ì¾Æ³¾ ¼ö ÀÖÀ» °Í ÀÌ´Ù.
  1. °´Ã¼´Â ³»¸é°ú ³»¸éÀ» °¨½Î´Â ¿ÜÇǸ¦ °¡Áø´Ù.
  2. ³»¸éÀº ¿ÜÇÇ ³»ºÎ·Î ¼û°ÜÁö¸ç À̸¦ Ãß»óÀ̶ó°í ÇÑ´Ù.
  3. °´Ã¼´Â ¿ÜÇǸ¦ °¡ÁüÀ¸·Î½á ÁÖº¯»ç¹°°ú µ¶¸³ÀûÀ¸·Î ±¸ºÐµÉ ¼ö ÀÖ´Ù.
  4. °´Ã¼´Â ¿ÜÇǸ¦ °¡ÁüÀ¸·Î½á °üÂû´ë»óÀÌ µÉ ¼ö ÀÖ´Ù.
  5. ±¸Ã¼ÀûÀÎ ÇüŸ¦ °¡ÁöÁö ¾Ê´Â °Íµé - °æÁ¦, ±¹°¡ - µµ °´Ã¼°¡ µÉ ¼ö ÀÖ´Ù.
  6. °´Ã¼¿¡ ´ëÇÑ Á¤ÀÇ´Â »ó´ëÀûÀÌ´Ù.
  7. °´Ã¼´Â °´Ã¼¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù.

À§ÀÇ °´Ã¼¿¡ ´ëÇÑ ³»¿ëÀº ´ÙºÐÈ÷ öÇÐÀû, ´Ù¸¥¸»·Î ¸»Àå³­À¸·Î º¸ÀÏ ¼ö ÀÖÀ» °Í °°´Ù. ±×·¯³ª ÀÌ·¯ÇÑ Æ¯Â¡Àº ÄÄÇ»ÅÍ ¿µ¿ª¿¡¼­ÀÇ Object-orinted Programming ¿¡µµ ±×´ë·Î ³ªÅ¸³­´Ù.

2.3.1 °´Ã¼¿Í class

¾Æ¸®½ºÅäÅÚ·¹½º°¡ Ãß»óÀûÀÎ ºÐ·ùü°è¸¦ ±¸ÃàÇÒ ¼ö ÀÖ¾ú´øµ¥¿¡´Â µ¿¹°¿¡ ´ëÇÑ ´Ù¾ç¼º°ú ±× ±â´É¿¡ ´ëÇØ¼­ ƯÈ÷ °ü½ÉÀÌ ¸¹¾Ò±â ¶§¹®ÀÌ´Ù. À̵éÀ» °üÂûÇϱâ À§Çؼ­´Â ±× ´Ù¾çÇԾȿ¡¼­µµ °øÅëµÇ´Â ¼Ó¼ºÀ̳ª Çൿ¾à½Ä µîÀ» ã¾Æ¼­ ü°èÀûÀ¸·Î ºÐ·ùÇÒ Çʿ䰡 ÀÖ¾ú±â ¶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ °íÂûÀÇ °á°ú´Â ¡°the class of fishes and the class of birds¡±À̶ó´Â ±×ÀÇ »ý°¢¿¡ ¿ä¾àµÇ¾î¼­ ³ªÅ¸³­´Ù.

¿©±â¿¡¼­ fishes´Â class´Ù. ³ó¾î,ºù¾î,ºØ¾î¿Í °°Àº °´Ã¼µé·Î ºÎÅÍ °øÅëÀÇ ¼Ó¼ºÀ» »Ì¾Æ³»¾î¼­ ¸¸µé¾î³õÀº Ãß»ó°´Ã¼´Ù. ÀÌ·¸°Ô fishes¶ó´Â Ŭ·¡½º¸¦ ¸¸µé¾î ³õÀ¸¸é, ÀÌÁ¦ »õ·Î¿î »ý¹°ÀÌ ¹ß°ßµÇ´õ¶óµµ fishes¶ó°í ºÎ¸¦ °ÍÀÎÁö ¸»°ÍÀÎÁö¸¦ ½±°Ô °áÁ¤ÇÒ ¼ö ÀÖ´Ù. »õ·Î ¹ß°ßµÈ »ý¹°ÀÌ fishes¶ó´Â Ŭ·¡½º°¡ °¡Áö°í ÀÖ´Â ¼Ó¼º°ú Çൿ¾ç½Ä¿¡ ¸Â´ÂÁö¸¦ °ËÅäÇÏ¸é µÇ±â ¶§¹®ÀÌ´Ù.

Áï class´Â °´Ã¼ÀÇ °øÅëÀûÀÎ ¼Ó¼º°ú Çൿ¾ç½Ä- ¸Þ¼­µå -À» Á¤ÀÇÇØ ³õÀº Ãß»ó°´Ã¼·Î Á¤ÀÇ ³»¸± ¼ö ÀÖ´Ù.

class´Â »óÀ§ÀÇ class¸¦ °¡Áú ¼ö ÀÖ´Ù. °³ < Æ÷À¯·ù < »ý¹° ÀÌ·± ½ÄÀÌ´Ù. class´Â °´Ã¼°¡ µÉ ¼ö ÀÖ°í, °´Ã¼°¡ Ŭ·¡½º°¡ µÉ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î´Â ¼Ó¼º°ú Çൿ¾ç½ÄÀÌ ½ÇüµÈ °æ¿ì¸¦ °´Ã¼¶ó°í ÇÏ°í ±×·¸Áö ¾Ê°í ¼Ó¼º°ú Çൿ¾ç½ÄÀ» ´ÜÁö Á¤ÀǸ¸ Çϰí ÀÖ´Â Ãß»ó°´Ã¼¸¦ class¶ó°í ÇÑ´Ù. ±¸Ã¼ÀûÀÎ ½Çü¸¦ °¡ÁöÁö ¾Ê´Â °³´Â class À̰í, °³ÀÇ ¼Ó¼º°ú Çൿ¾ç½ÄÀ» °¡Áø ½ÇüÇÏ´Â Ä¡¾Æ¿Í,»ð»ì°³¸¦ °´Ã¼·Î º¸´Â ½ÄÀÌ´Ù.

ºÐ·ùü°è·Î º¼¶§ °´Ã¼´Â class¿¡ ÇÏÀ§ºÐ·ù°¡ µÈ´Ù.classÀÇ ¼Ó¼º°ú Ç൵¾ç½ÄÀ» »ó¼Ó¹Þ¾Æ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¶§¹®¿¡ Ä¡¾Æ¿Í´Â °³´Ù¶ó´Â ¸íÁ¦´Â ¼º¸³ÇÏÁö¸¸ °³´Â Ä¡¾Æ¿Í´Ù¶ó´Â ¿ªÀº ¼º¸³ÇÏÁö ¾Ê´Â´Ù.

2.3.2 Interface

°´Ã¼´Â ³»¸éÀÌ ¿ÜÇÇ¿¡ ÀÇÇØ¼­ °¨Ãß¾îÁø´Ù°í Çß´Ù. ȯ°æ°ú »óÈ£ÀÛ¿ëÇϱâ À§Çؼ­´Â ȯ°æÀÌ ³»¸éÀ¸·Î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. À̶§ ¹®Á¦°¡ µÇ´Â °ÍÀº ¿ÜÇÇ¿¡ ÀÇÇØ¼­ ³»¸é°ú ȯ°æÀÌ ´ÜÀýµÇ¾î ÀÖ´Ù´Â Á¡ÀÌ´Ù. Interface´Â ȯ°æÀÇ º¯È­¸¦ ³»¸éÀ¸·Î Àü´ÞÇÏ´Â ¿ªÇÒÀ» ÇÏ´Â ÀåÄ¡´Ù. Àΰ£À» ¿¹·Î µéÀÚ¸é, ´«, ±Í, ÄÚ, ÀÔ µîÀÌ Interface·Î À̰ÍÀ» ÀÌ¿ëÇØ¼­ ¿ÜºÎȯ°æ°ú »óÈ£ÀÛ¿ëÇÏ°Ô µÈ´Ù. °¡½Ã±¤¼±À» ´«À¸·Î ¹Þ¾Æµé¿©¼­ ½Ã½Å°æÀ» ÅëÇØ¼­ ³»¸é¿¡ ÀÖ´Â ³ú·Î Àü´ÞÇØ¼­ ÇØ¼®Çϰí, ÇØ¼®µÈ °á°ú¿¡ µû¶ó¼­ ¹ÝÀÀÇÏ´Â ½ÄÀÌ´Ù.

ÀÚµ¿Â÷ÀÇ Interface ´Â ÇÚµé,ºê·¹ÀÌÅ©,¾Ç¼¿·¹ÀÌÅ͵îÀÌ µÉ °ÍÀÌ´Ù.

2.3.3 °´Ã¼ ÁöÇâ°ú °úÇÐ

¸ðµç »ç¹°À» °´Ã¼·Î ¹Ù¶óº¸´Â ÁÖÀÇ´Â ½ÇÁõÁÖÀÇ¿Í °æÇèÁÖÀÇ¿¡ ¹ÙÅÁÇÑ Çö´ëÀûÀÎ °úÇÐÀÇ ¹ÙÅÁÀÌ µÈ´Ù. Áï Àΰ£ÀÇ ¿À°¨°ú »óÈ£ÀÛ¿ëÇØ¼­ ºÐ¼®µÇ¾îÁø Á¤º¸¸¦ ¿À·£½Ã°£ ºÐ¼®Çؼ­ - Áï °æÇèÀ» ÅëÇÏ¿© - º¸ÆíÀûÀÎ Áö½ÄÀ¸·Î ¸¸µå´Â °úÇÐÀû»ç°í ¹æ½Ä ¸¸µé¾î³Â´Ù.

µû¶ó¼­ ÁÁÀº °´Ã¼ÁöÇâ ÇÁ·Î±×·¥À» ¸¸µé·Á¸é, °üÂû¿¡ µû¸¥ ½ÇÁõÁÖÀÇ¿Í °æÇèÁÖÀÇÀû »ç°í¹æ½ÄÀÌ Áß¿äÇÏ´Ù. ÀÌ·¯ÇÑ »ç°í¹æ½ÄÀº ºÐ¼®·ÂÀ» ÇÊ¿ä·Î ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. Çö´ë ±³À°°úÁ¤ÀÌ ºÐ¼®·ÂÀ» ƯÈ÷ Áß¿ä½ÃÇÏ´Â ÀÌÀ¯°¡ ±Ù´ë ¼­¾çÀÇ ÀÚ¿¬ °úÇРöÇÐÀ» ±â¹ÝÀ¸·Î Çϰí Àֱ⠶§¹®ÀÌ´Ù.

±×·¸´Ù°í, °úÇÐÀû »ç°í¹æ½ÄÀÌ Ç×»ó ÁÁÀº °ÍÀ̶ó°í »ý°¢ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÀÌ·± »ý°¢Àº ¼­¾ç öÇÐÀÌ µ¿¾ç öÇп¡ ºñÇØ¼­ ¿ì¿ùÇÏ´Ù¶ó´Â ½ÄÀÇ »ç°í ¹æ½ÄÀ̸ç, Æí°ßÀÌ µÉ ¼ö ÀÖ´Ù. 20¼¼±â ÈÄ¹Ý ºÎÅÍ µ¿¾ç öÇÐÀÌ Àç Á¶¸íÀ» ¹Þ´Â °Í¸¸ ºÁµµ ¾Ë ¼ö ÀÖ´Ù.

¸¶Âù°¡Áö·Î °´Ã¼ÁöÇâÀ» ½Å¼º½ÃÇÒ Çʿ䵵 ¾ø´Ù. ¾î¶² ÀÌ·ÐÀ̳ª ¹æ¹ý·Ðµµ ½Å¼º½Ã, Àý´ëÀûÀ̶ó´Â ¼ö½Ä¾î°¡ ºÙ´Â ¼ø°£ ºÎÀÛ¿ëÀ» ÇÇÇÒ ¼ö ¾ø°Ô µÈ´Ù.

2.3.4 °úÇаú Á¾±³

°úÇÐÀû »ç°í´Â »óÈ£ÀÛ¿ë °¡´ÉÇÑ °´Ã¼¸¦ ´ë»óÀ¸·Î ÀÌ·ç¾îÁø´Ù. ÀÌ·± Àǹ̿¡¼­ Á¾±³´Â °úÇаú ´Ù¸¥ ±æÀ» °¡°Ô µÈ´Ù. ½Å°ú »óÈ£ÀÛ¿ëÇÒ ¼ö´Â ¾ø´Â ³ë¸©À̱⠶§¹®ÀÌ´Ù. »óÈ£ÀÛ¿ëÇÒ ¼ö ¾ø´Â °Ç °´Ã¼°¡ ¾Æ´Ï´Ù. ¾ðÁ¨°¡ ½Å°ú Á¦´ë·Î »óÈ£ÀÛ¿ëÇÒ ¼ö ÀÖ´Â ¾î¶°ÇÑ ¹æ¹ýÀ» ã¾Æ³½´Ù¸é Á¾±³µµ °úÇÐÀÌ µÉ ¼ö´Â ÀÖ°ÚÁö¸¸ ¸»ÀÌ´Ù. ¾Æ ¹°·Ð Áö±Ýµµ ½ÅµµµéÀº ±âµµ¸¦ ÅëÇØ¼­ ½Å°ú »óÈ£ÀÛ¿ë ÇÑ´Ù°í ÇÏÁö¸¸ »óÈ£ÀÛ¿ëÀÇ °á°ú¸¦ º¸¿©ÁÖÁö ¾ÊÀ¸´Ï, ºÐ¼®ºÒ°¡°¡ µÈ´Ù. ÀÔ·ÂÀº Àִµ¥ Ãâ·ÂÀº ¾ø´Â »óŶó°í³ª ÇÒ±î.

½ÅÀ» Á÷Á¢ ÀÔÁõÇÏ´Â°Ô ºÒ°¡´ÉÇÏ´Ù°í »ý°¢ÀÌ µÇÀÚ, ±×µéÀÇ ¼º¼­¿¡ ÀûÇôÀÖ´Â ½ÅÈ­Àû ³»¿ëÀÌ ½ÅÈ­°¡ ¾Æ´Ñ »ç½ÇÀÓÀ» Áõ¸íÇÏ´Â °ÍÀ¸·Î ½ÅÀÌ ÀÖÀ½À» °£Á¢ÀûÀ¸·Î Áõ¸íÇϰíÀÚ ÇÏ´Â ½Ãµµ°¡ ÀÖ¾ú´Ù. ½ÅÈ­´Â ¾î¶² ºÎÁ·ÀÇ ¿ª»ç¸¦ ´ã°í ÀÖ´Â °æ¿ì°¡ ¸¹°í, ¿ª»ç´Â °úÇÐÀû ޱ¸°¡ °¡´ÉÇÑ ¿µ¿ªÀÌ´Ï ¸»ÀÌ´Ù. À̰ÍÀ» âÁ¶°úÇÐÀ̶ó°í ÇÑ´Ù.

±×·¯³ª âÁ¶°úÇÐÀÌ Àǹ̰¡ ÀÖÀ»Áö¿¡ ´ëÇØ¼­´Â ȸÀÇÀûÀÌ´Ù. ¼³»ç ¿ª»çÀû »ç½ÇÀÌ ÀÔÁõµÇ´õ¶óµµ ¸»ÀÌ´Ù. ½ÅÈ­¼ÓÀÇ µµ½Ã·Î¸¸ ¾Ë·ÁÁ³´ø Æ®·ÎÀ̰¡ ¹ß°ßÀÌ µÇ°í, ¾ÆÅ³·¹¿ì½º°¡ ½ÇÁ¦ Á¸ÀçÇÏ´ø Àι°ÀÌ¿´À½ÀÌ Áõ¸íµÇ¾ú´Ù°í ÇØ¼­, ¾ÆÅ³·¹¿ì½º°¡ ½ÅÀÇ ¾ÆµéÀÌ°í Æ®·ÎÀÌ ÀüÀïÀ» ½ÅµéÀÌ ¹èÈÄÁ¶Á¤Çß´Ù´Â Áõ°Å°¡ µÇ´Â°Ç ÀüÇô ¾Æ´Ï±â ¶§¹®ÀÌ´Ù. Á¾±³´Â ±×³É ¹ÏÀ½ÀÇ ¿µ¿ªÀ¸·Î µÎ¸é µÇ´Â °ÍÀÌ´Ù.

¶§¶§·Î ±â¼úÀÌ ¹ßÀüÇÔ¿¡ µû¶ó¼­ ³Ê¹«Å͹«´Ï ¾ø¾î¼­ ½ÅÈ­¿Í °°Àº °ÍÀ¸·Î »ý°¢µÇ´ø°Ô »óÈ£ÀÛ¿ë °¡´ÉÇÑ °úÇÐÀû ޱ¸°¡´ÉÇÑ °´Ã¼°¡ µÇ±âµµ ÇÑ´Ù. 4Â÷¿øÀÌ³× 10Â÷¿øÀÌ³× ÇÏ´Â °ÍµéÀº °ú°Å¿¡´Â Å͹«´Ï ¾ø´Â °ÍÀÌ¿´À¸³ª ÀÔÀÚ°¡¼Ó±âÀÇ µîÀåÀ¸·Î ±× ½Çü¸¦ °ÅÀÇ ±Ô¸íÇÒ ¼ö ÀÖ°Ô µÈ°Ô ±× ¿¹°¡ µÉ °ÍÀÌ´Ù. ±×·¸´Ù°í ÇØ¼­ ½Å°ú ´ëÈ­°¡´ÉÇÑ ±â°è¸¦ ¸¸µé¾î ³¾ ¼ö ÀÖÀ»±î ?? ¹¹, À̺¥Æ®È£¶óÀÌÁðÈ£´Â °­·ÂÇÑ Á߷¹߻ý±â¸¦ ÀÌ¿ëÇØ¼­ ¶á±Ý¾ø´Â Áö¿Áµµ ´Ù³à¿À±ä ÇßÁö¸¸ ÀÌ°Ç ¾îµð±îÁö³ª ¿µÈ­ÀÇ À̾߱â°í.

2.4 Ãß»ó(õÎßÚ)È­ ¿Í Ãß»óÈ­ °úÁ¤

À§¿¡¼­ °´Ã¼´Â ³»ºÎ¸¦ ¼û±â´Â ¿ÜÇǸ¦ °¡Áø´Ù°í Çß´Ù. À̰ÍÀ» Ãß»óÀ̶ó°í Çϴµ¥, °´Ã¼ÀÇ °¡Àå Å« Ư¡Áß Çϳª´Ù. ÀÌ Ãß»ó¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

Çö´ëÀûÀÎ Ã߻󰳳äÀ» ü°èÈ­ ÇѰÍÀº ÇöóÅæÀ¸·Î »ý°¢µÈ´Ù. ÇöóÅæÀº À̵¥¾Æ¶ó´Â °ÍÀ» ÁÖâÇÏ¿´´Ù. ¼¼»óÀº À̵¥¾Æ¶ó´Â ¿ÏÀüÇÑ ¼¼°è¿¡ ÀÖ´Â ¿øº»Æ²ÀÇ ±×¸²ÀÚ·Î »ý°Ü³­ °ÍÀÌ´Ù¶ó´Â°Ô À̵¥¾ÆÀÇ ÇÙ½ÉÀÌ´Ù. ¿øº»ÀÇ ±×¸²ÀÚÀÌ´Ï ¼¼»óÀº ¾ðÁ¦³ª ºÒ¿ÏÀüÇÒ ¼ö ¹Û¿¡ ¾ø´Ù. À̵¥¾Æ´Â ¿ÏÀüÇѼ¼°è, ¿µÈ¥À¸·Î º¼ ¼ö ÀÖ´Â ¼¼°è¶ó´Â°Ô ÇöóÅæÀÇ »ý°¢À̾ú´Ù.

°³¸¦ ¿¹·Î µé¾îº¸ÀÚ. °³¸¦ º»ÀûÀÌ Àִ°¡ ? ¶á±Ý¾ø´Â ¸» °°Áö¸¸ °³±× ÀÚü¸¦ º»ÀûÀº ¾øÀ» °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é °³´Â ¹°¸®ÀûÀÎ ´ë»óÀ» °¡¸®Å°´Â°Ô ¾Æ´Ï±â ¶§¹®ÀÌ´Ù. ¿ì¸®´Â »ð»ì°³, Ä¡¾Æ¿Í, ¼ÎÆÛµå¸¦ º¼ ¼ö ÀÖÁö¸¸ °³¸¦ º»ÀûÀº ¾ø´Ù. ÇöóÅæÀÌ ÁÖÀåÇÏ´Â ¹Ù¿¡ µû¸£¸é °³°¡ ¹Ù·Î Ä¡¾Æ¿Í »ð»ì°³ ¼ÎÆÛµåµî ÀÌ ¼¼°è¿¡ Á¸ÀçÇÏ´Â ¿©·¯°¡Áö °³ÀÇ ¼ºÁúÀ» °¡Áö´Â °ÍµéÀÇ À¯ÀÏÇÑ ¿øº»ÀÌ´Ù. ÀÌ À¯ÀÏÇÑ °³ÀÇ ±×¸²ÀÚ°¡ ¹Ù·Î ¿ì¸®°¡ º¼¼ö ÀÖ´Â Ä¡¾Æ¿Í ÀÎ °ÍÀÌ´Ù. À̵¥¾Æ´Â ¿ì¸®°¡ »ç´Â ¼¼°èº¸´Ù Â÷¿øÀÌ ³ôÀº ¼¼°èÀ̹ǷΠ¿ì¸®´Â ´ÜÁö °³ÀÇ ±×¸²ÀÚ¸¸À» º¼ ¼ö ÀÖÀ» »ÓÀÌ´Ù.

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SoftWare_engineering/OOP
ÀÌó·³ Â÷¿øÀÌ ³·¾ÆÁö¸é ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ±×°ÍÀº ¼ö¸¹Àº °³ÀÇ ¼ºÁúÀ» °¡Áö´Â °´Ã¼¸¦ ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¾Õ¼­ ÀÌ ¼¼»ó¿¡ ¹°¸®ÀûÀ¸·Î Á¸ÀçÇÏ´Â °³µéÀº À̵¥¾Æ °³ÀÇ ±×¸²ÀÚ¶ó°í Çߴµ¥, ±×¸²ÀÚ´Â ±× ¸ð½ÀÀÌ ¿Ïº®ÇÏÁö ¸øÇÏ´Ù. ±¤¿øÀÇ °Å¸®¿Í Èçµé¸²¿¡ µû¶ó¼­ Âî±×·¯Áö±âµµ Çϰí Ä¿Áö°Å³ª ÀÛ¾ÆÁö°Å³ª ÇÒ ¼ö ÀÖ´Ù. °³´Â ÇϳªÀÌÁö¸¸ ¼ö¸¹Àº °³µéÀÌ Á¸ÀçÇÏ´Â ÀÌÀ¯ÀÌ´Ù.

ÇöóÅæÀÌ À̵¥¾Æ¸¦ »ý°¢ÇØ ³Â´ø °ÍÀ» ¹Ý´ë·Î ÇÏ¸é ±×°Ô Ãß»óÈ­°¡ µÈ´Ù. Áï ¸Û¸Û ¼Ò¸®¸¦ ³»°í, ²¿¸®¸¦ Èçµé¸ç, ´Ù¸®°¡ 4°³°í, ÄÚ°¡ »ÏÁ·ÇÑ Æ¯Â¡À» °¡Áö´Âµ¿¹°µéÀ» °³¶ó°í Á¤ÀÇ ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇØ¼­ ¿ì¸®´Â ´«¿¡ º¸ÀÌÁö ¾Ê´Â °³¶ó´Â »õ·Î¿î »óÀ§ Â÷¿øÀÇ °³³äÀ» ¸¸µé¾î³»°Ô µÇ¾ú´Ù.

Ãß»óÈ­ °úÁ¤À̶õ ¾î¶² ±¸Ã¼ÀûÀÎ »ç¹°·Î ºÎÅÍ °øÅëÀûÀÎ ¼Ó¼ºÀ» ã¾Æ³»¾î¼­ ±×°ÍµéÀ» Æ÷°ýÇÒ ¼ö ÀÖ´Â »óÀ§ÀÇ Æ÷°ýÀû °³³äÀ» ¸¸µé¾î³»´Â °úÁ¤ÀÌ´Ù.


2.5 ÄÄÇ»ÅÍ¿¡¼­ÀÇ Ãß»óÈ­

ÄÄÇ»ÅÍ ¾ð¾î¿ª½Ã ÀÌ·¯ÇÑ Ãß»óÈ­ °úÁ¤À» °ÅÄ£´Ù. °¡Àå °£´ÜÇÑ ¾î¼Àºí¸®´Â À̸¦Å×¸é »ý¸íüÀÇ ¹ÙÀÌ·¯½º¶ó°í ÇÒ¸¸Çѵ¥, °¡Àå °£´ÜÇÑ Ãß»óÈ­ °úÁ¤À» °ÅÄ£´Ù. ±â°è¾î¿Í °ÅÀÇ ÀÏ´ëÀÏ ´ëÀÀÀ» Çϴµ¥, ´Ù¸¸ Á»´õ ÀÌÇØÇϱ⠽±°Ô ¸¸µéµµ·Ï "ÇѴܰè"ÀÇ Ãß»óÈ­ °úÁ¤À» °ÅÃÆÀ» »ÓÀÌ´Ù. Æ÷Æ®¶õ, º£ÀÌÁ÷, C¿Í °°Àº ¾ð¾îµéÀº ¾î¼Àºí¸®¾î¿¡ ºñÇØ¼­ ´õ¿í ¸¹Àº Ãß»óÈ­¸¦ ÀÌ·ç°í ÀÖÀ¸¸ç, ¿©·¯°¡Áö ¸é¿¡¼­ Å©°Ô ¹ßÀüµÇ¾ú´Ù.

±×·¯³ª ÀÌµé ¾ð¾î´Â ÄÄÇ»ÅÍ ±â°è°¡ ¸¸µé¾î Á³´ø¶§ÀÇ ±×öÇÐÀ» ±×´ë·Î µû¸£°í À־ ½ÇÁ¦ »ýȰ¿¡¼­ ¹ß»ýÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¹®Á¦¸¦ Ǫ´Âµ¥ À־ ÀýÂ÷ÁöÇâÀûÀÎ ¹æ¹ýÀ» µû¸¥´Ù. ÀÌ°Ç ¾î¼Àºí¸®¾î »Ó¸¸¾Æ´Ï¶ó, Æ÷Æ®¶õ, º£ÀÌÁ÷, C ¸ðµÎ¿¡ Æ÷ÇԵȴÙ. ÀýÂ÷ÁöÇâÀûÀ̶õ ÄÁÅ×ÀÌ³Ê º§Æ®¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. Àç·á¸¦ Áý¾î ³Ö°í ÄÁÅ×ÀÌ³Ê º§Æ®¿¡ Áý¾î ³ÖÀ¸¸é ÃÖÁ¾ÀûÀ¸·Î ¹°°ÇÀÌ Æ¢¾î ³ª¿À´Â °ÍÀÌ´Ù. Ç®¾î¾ßÇÒ ¹®Á¦°¡ º¹ÀâÇØ Áú ¼ö·Ï ÀÌ·± ÀýÂ÷ÁöÇâÀû ¹æ¹ýÀ¸·Î´Â ÇѰ迡 ºÎµúÈ÷°Ô µÈ´Ù. Áï °³¹ß¸ðµ¨ÀÌ ¹®Á¦´Ù.
¿©±â¿¡¼­ ÇѰè¶õ.. ¹®Á¦¸¦ Ç® ¼ö ¾ø´Ù¶ó´Â °ÍÀÌ ¾Æ´Ï°í, È¿À²ÀûÀ¸·Î Ç®¼ö ¾øÀ¸¸ç ´ÜÁö Ǫ´Â °Í »Ó¸¸ ¾Æ´Ï¶ó, À¯ÁöÇÏ°í º¸¼öÇϰí È®Àå½Ã۴µ¥ ±âÁ¸ ¹æ¹ýÀ¸·Î´Â ¸¹Àº ½Ã°£°ú ºñ¿ëÀÌ ¼ÒºñµÉ È®·üÀÌ ¸¹´Ù´Â °ÍÀÌ´Ù.
±×·¡¼­ ¸¸µé¾îÁø °³¹ß ¸ðµ¨ÀÌ °´Ã¼ÁöÇâ ¸ðµ¨ÀÌ´Ù. ÄÁÅ×ÀÌ³Ê º§Æ® ¸ðÇüÀ» µû¸£´Â ÀýÂ÷ÁöÇâ °³¹ß ¸ðµ¨¿¡¼­´Â µ¥ÀÌÅÍ¿Í µ¥ÀÌÅ͸¦ °¡°øÇϱâ À§ÇÑ ¸Þ¼­µå(ÇÔ¼ö)°¡ ¼­·Î ºÐ¸® µÇ¾î ÀÖ´Ù. µ¥ÀÌÅͰ¡ °è¼Ó Èê·¯°¡°í Áß°£¿¡ ÇÔ¼ö°¡ À־ °¡°øÇÏ°í ´Ù½Ã ´ÙÀ½ ÇÔ¼ö·Î ³Ñ°ÜÁÖ´Â ¹æ½ÄÀÌ´Ù.

¹Ý¸é °´Ã¼ÁöÇâ °³¹ß ¸ðµ¨¿¡¼­´Â µ¥ÀÌÅÍ¿Í ¸Þ¼­µå¸¦ ºÐ¸®ÇÏÁö ¾Ê°í ÇϳªÀÇ °ø°£¿¡ µÐ´Ù.

°´Ã¼ÁöÇâÀ» ¸ñÇ¥·Î Á¦ÀÛµÈ ÃÖÃÊÀÇ (¼º°øÀûÀÎ) ¾ð¾î·Î Smalltalk¶ó´Â ¾ð¾î°¡ ÀÖ´Ù. Javaµµ ÀÌ ¾ð¾î¸¦ ±âÃÊ·¡ ÇÞ ¸¸µé¾î Á³´Âµ¥, °´Ã¼ÁöÇâÀ» À§ÇÑ ±âº»ÀûÀÎ ³ë¼±ÀÌ Á¤¸³µÈ ¾ð¾î´Ù. °´Á¦ÁöÇâ ¾ð¾î¶ó°í ÇÑ´Ù¸é º¸Åë ¾Æ·¡ÀÇ 5°¡ÁöÀÇ ¿ä¼Ò¸¦ ¸¸Á·½ÃŰ´Â Ư¼ºÀ» Áö¿øÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

  1. ¸ðµç °ÍÀº °´Ã¼´Ù : °£´ÜÇÏ°Ô »ý°¢Çؼ­ °´Ã¼´Â µ¥ÀÌÅÍ¿Í µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇÑ ¸Þ¼­µå¸¦ ÇÔ²² °¡Áö´Â ¸ðµç °ÍÀ» ¸»ÇÑ´Ù. ÀÌ·ÐÀûÀ¸·Î °´Ã¼¸¦ ÀÌ¿ëÇÏ¸é ¸ðµç »ç¹°À» ¿Ïº®ÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù. (ÀÚµ¿Â÷, °³, °Ç¹°, ÀºÇà ¼­ºñ½º ..)
  2. ÇÁ·Î±×·¥Àº °´Ã¼»çÀÌÀÇ ¸Þ½ÃÁö Àü´ÞÀ» ÀÌ¿ëÇØ¼­ Åë½ÅÇÑ´Ù : µÎ¸íÀÇ »ç¶÷(°´Ã¼)°¡ »óÈ£ÀÛ¿ëÇϱâ À§Çؼ­ ´ëÈ­¸¦ ÇÏ´Â °Í°ú ¸¶Âù°¡Áö´Ù. ÇÁ·Î±×·¥ÀÇ °æ¿ì µÎ°³ÀÇ °´Ã¼(º¸Åë Ŭ·¡½º, ÆÐŰÁö¶ó°í ÇÑ´Ù)¸¦ ¿¬°áÇϱâ À§ÇÑ ¸Þ½ÃÁö Àü´Þ Ŭ·¡½º¸¦ ¸¸µé ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. »ç¶÷°ú »ç¶÷ÀÌ ´ëÈ­¸¦ Çϴµ¥ Áß°£¿¡ ¸ÅÁú(°ø±â)À̶ó´Â °´Ã¼°¡ ´ëÈ­¸¦ Àü¼ÛÇÏ´Â °Í°ú °°Àº ÀÌÄ¡´Ù.
  3. °¢°¢ÀÇ °´Ã¼´Â ÀڽŸ¸ÀÇ ¸Þ¸ð¸®¸¦ °¡Áø´Ù : °´Ã¼´Â µ¥ÀÌÅÍ¿Í ¸Þ¼­µå¸¦ ÇϳªÀÇ °ø°£¿¡¼­ ´Ù·ç¸ç, °´Ã¼´Â ´Ù¸¥ °´Ã¼¿Í µ¶¸³ÀûÀ¸·Î ÇൿÇÑ´Ù. °í·Î ÀڽŸ¸ÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§ÇÑ °ø°£À» °¡Áú ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  4. ¸ðµç °´Ã¼´Â À̸§À» °¡Áø´Ù : °¢ °´Ã¼´Â µ¶¸³ÀûÀ¸·Î ±¸ºÐµÉ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯±â À§Çؼ­ À̸§(type)À» ºÎ¿©ÇÑ´Ù. °¢°¢ÀÇ »ç¶÷À» ±¸º°Çϱâ À§Çؼ­ "À̸§"À» ºÎ¿©ÇÏ´Â °Í°ú ¸¶Âù°¡Áö´Ù.
  5. µ¿ÀÏÇÑ Æ¯¼ºÀÇ °´Ã¼´Â µ¿ÀÏÇÑ ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ´Ù : A¶ó´Â »ç¶÷°ú B¶ó´Â »ç¶÷Àº µ¶¸³ÀûÀÎ °´Ã¼ÀÌÁö¸¸, ¶ÇÇÑ "»ç¶÷"À̶ó´Â µ¿ÀÏÇÑ Æ¯¼ºÀÇ °´Ã¼À̱⵵ ÇÏ´Ù. ÀÌµé °´Ã¼°£ÀÇ ´ëÈ­¸¦ À§Çؼ­´Â ´ç¿¬ÇÏÁö¸¸ °°Àº ¾ð¾î°¡ »ç¿ëµÇ¾î¾ß ÇÒ °ÍÀÌ´Ù. »ç¶÷°ú °³ÀÇ °æ¿ì¿¡´Â ´ëÈ­°¡ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ÇÁ·Î±×·¥¿¡¼­µµ µ¿ÀÏÇÑ Æ¯¼ºÀÇ °´Ã¼µéÀº µ¿ÀÏÇÑ ¸Þ½ÃÁö¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.

2.6 Ãß»óÈ­¸¦ ÅëÇØ ¾ò´Â À̵æ

ÀÚµ¿Â÷¸¦ »ý°¢Çغ¸ÀÚ. ÀÚµ¿Â÷´Â Àηù°¡ °³¹ßÇÑ À°»óÀ̵¿ ¼ö´ÜÁß °¡Àå °íµµ·Î Ãß»óÈ­µÈ ±â°è´Ù. ÀÚü¿¡ ¹ßÀü,°ø±Þ,ÀúÀå,Åë½Å,Á¦¾î ½Ã¼³À» °®Ãá ¼ÒÇü °øÀåÀ̶ó°í ÇÒ¸¸ÇÏ´Ù.

±×·¯³ª ¿îÀüÀÚ°¡ ÀÌ·¯ÇÑ ¸ðµç³»¿ëÀ» ¾Ë¾Æ¾ßÁö¸¸ ÀÚµ¿Â÷¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °Ç ¾Æ´Ï´Ù. ´ëºÎºÐÀÇ ±â´ÉµéÀº Ãß»óÈ­(¼û°ÜÁ®)ÀÖÀ¸¸ç, »ç¿ëÀÚ´Â ´ÜÁö ÇÚµé°ú, ºê·¹ÀÌÅ©, ¾Ç¼¿·¹ÀÌÅÍ¿Í ¸î°³ÀÇ °è±âÆÇÀ» º¼¼ö ÀÖÀ¸¸é ¿îÀüÀÌ °¡´ÉÇÏ´Ù.

º¹ÀâÇÑ ³»ºÎ ±¸ÇöÀ» ¼û±èÀ¸·Î½á »ç¿ëÀÚ´Â ÀÌ°Í Àú°Í ½Å°æ¾µ ÇÊ¿ä ¾øÀÌ, Á¦°øµÇ´Â ¸î°³ÀÇ ÀÎÅÍÆäÀ̽º¸¸À¸·Î »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ÀÌ°Ô Ãß»óÈ­°¡ °¡Á®´Ù Áִ ù¹øÂ° À̵æÀÌ´Ù.
ÀÚµ¿Â÷°¡ óÀ½ ³ª¿Ô´ø°Ô 19¼¼±â ¸»ÀÌ¿´´ø °Í °°´Ù. ±×·¯³ª ¼º´É»óÀÇ Â÷ÀÌ´Â ÀÖ°ÚÁö¸¸ 100³âÀÌ Áö³­ Áö±Ýµµ ÀÚµ¿Â÷ÀÇ ±âº»ÀûÀÎ ¿îÀü¹æ¹ýÀº °ÅÀÇ º¯ÇÔÀÌ ¾ø´Ù. ±×¶§³ª Áö±ÝÀ̳ª ¿©ÀüÈ÷ ¿îÀüÀÚ´Â ÇÚµé, ºê·¹ÀÌÅ©, ¾Ç¼¿·¹ÀÌÅÍ ÀÌ 3°¡Áö¸¦ ÀÌ¿ëÇØ¼­ ÀÚµ¿Â÷¸¦ Á¦¾îÇÑ´Ù. ÀÌ·¯ÇÑ°Í ÀÚµ¿Â÷ÀÇ ±¸ÇöÀ» "Ãß»óÈ­"ÇÔÀ¸·Î °¡´ÉÇÏ´Ù.

Áï ±¸Çö°ú ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®½ÃÄÑÁÜÀ¸·Î (ÃÖÃÊ¿¡ ÀÎÅÍÆäÀ̽º¸¸ Àß ¼³°èÇÑ´Ù¸é)±â´ÉÀÌ ´ëÆø¾÷±×·¹ÀÌµå µÇ´õ¶óµµ »ç¿ëÀÚ´Â À̰Ϳ¡ ½Å°æ¾µÇÊ¿ä ¾øÀÌ ±âÁ¸ÀÇ ¿îÀü±â¼úÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

ÇÁ·Î±×·¥°³¹ß¿¡ À־µµ ÀÌ·¯ÇÑ À̵æÀ» ±×´ë·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. Ãß»óÈ­¸¦(Àß) ½ÃŰ°Ô µÇ¸é ÀÎÅÍÆäÀ̽º¿Í ±¸ÇöÀ» ±¸ºÐ½ÃÄÑ ÁÜÀ¸·Î½á ÀÏ¹Ý ÇÁ·Î±×·¥°³¹ßÀ» ÇÒÀû¿¡ ¼¼ºÎÀúÀÎ º¹ÀâÇÑ ±¸Á¶¸¦ ½Å°æ¾µ ÇÊ¿ä ¾øÀÌ Á¦°øµÇ´Â ¸î°³ÀÇ ÀÎÅÍÆäÀ̽º¸¸À» ÀÌ¿ëÇØ¼­ ÇÊ¿äÇÑ ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù. ±¸ÇöÀ» ¾÷±×·¹ÀÌµå ½ÃÄѾßÇÒ °æ¿ì¿¡µµ °³¹ßÀÚ´Â ¿©±â¿¡ ´ëÇØ¼­ ½Å°æ¾µ Çʿ䰡 ¾ø°Ô µÈ´Ù.

°£´ÜÇÏ°Ô »ý°¢ÇÏÀÚ¸é ¿ì¸®°¡ ÇÁ·Î±×·¡¹ÖÀ» À§Çؼ­ »ç¿ëÇÏ´Â open(2), write(2)°°Àº ÇÔ¼ö¿ª½Ã Ãß»óÈ­ÀÇ °á°ú¹°ÀÌ´Ù. ¿ì¸®´Â open(2)ÀÇ ³»ºÎ±¸Á¶°¡ ¾î¶»°Ô µÇ¾îÀÖ´ÂÁö ½Å°æ¾²Áö ¾Ê°íµµ Àß ¾µ ¼ö ÀÖ´Ù.

2.7 °´Ã¼´Â ÀÎÅÍÆäÀ̽º¸¦ °¡Áø´Ù.

°´Ã¼¿¡ ´ëÇØ¼­ ±íÀº »ç°í¸¦ ÇÑ ÃÖÃÊÀÇ Ã¶ÇÐÀÚ´Â (º¸Åë)¾Æ¸®½ºÅä ÅÚ·¹½º·Î ¾Ë·ÁÁ® ÀÖ´Ù.±×´Â "the class of fishes and the class of birds"¶ó°í ½ÇÁ¸ÇÏ´Â ¸ðµç °ÍµéÀ» °´Ã¼·Î ºÐ·ùÇß´Ù. °´Ã¼´Â ÀϹÝÀûÀ¸·Î À¯ÀÏÇϸç, °¢ °´Ã¼´Â °íÀ¯ÀÇ Æ¯Â¡°ú ÇൿƯ¡À» °¡Áö´Â °ÍÀ¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. Ŭ·¡½º¶õ ÀÌ·¯ÇÑ °´Ã¼ÀÇ °íÀ¯ Ư¼º°ú ÇൿƯ¡À» ÇÔ²² ¹­¾î³õÀº °³³äÀÌ´Ù. ÇϳªÀÇ Å¬·¡½º´Â ¿©·¯°³ÀÇ °´Ã¼¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. »õ¶ó´Â Ŭ·¡½º¿¡ Âü»õ 1, Âü»õ 2, Á¦ºñ, Çҹ̻õ¿Í °°Àº °´Ã¼°¡ Æ÷Ç﵃ ¼ö ÀÖ´Â °Í°ú ¸¶Âù°¡Áö´Ù.

Ŭ·¡½º(class)¸¦ óÀ½ µµÀÔÇÑ °´Ã¼ÁöÇâ ¾ð¾î´Â Simula-67 ÀÌ´Ù.

Simula´Â ±× À̸§¿¡¼­ ´À³¥ ¼ö ÀÖ´Â°Í Ã³·³ ¾î¶² »óȲÀ» "½Ã¹Ä·¹À̼Ç"Çϱâ À§ÇÑ ¿ëµµ·Î ÀÛ¼ºµÇ¾úÀ¸¸ç bank teller problem°ú °°Àº ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ »ç¿ëµÇ¾ú´Ù. ¿©±â¿¡ »ó´ã¿ø, °í°´, Æ®·£Àè¼Ç, °èÁ¤, µ·µî°ú °°Àº ¸¹Àº ¿ä¼ÒµéÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ ¿ä¼ÒµéÀº "ÀºÇà¾÷¹«"¶ó´Â ÀÛ¾÷À» ´Þ¼ºÇϱâ À§Çؼ­ »óÈ£Åë½ÅÇϸ鼭 ÀÏÁ¾ÀÇ ±×·ìó·³ ¿òÁ÷ÀδÙ. ±×·¸´Ù¸é ÀÌµé ¿ä¼Ò¸¦ ÇϳªÀÇ Å¬·¡½º·Î ¹­¾î¼­ ó¸®ÇÏ°Ô µÈ´Ù¸é Á»´õ Çö½Ç¿¡ °¡±õ°Ô »óȲÀ» ½Ã¹Ä·¹ÀÌ¼Ç ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Áï ¿ä¼ÒÀÇ À¯±âÀûÀÎ ¸ðÀÓÀΠŬ·¡½º°¡ ¶ÇÇϳªÀÇ µ¥ÀÌÅͰ¡ µÇ´Â °ÍÀÌ´Ù. °¢ ¿ä¼Ò´Â ÇϳªÀÇ Å¬·¡½º ¾È¿¡¼­ À¯ÁöÀûÀ¸·Î ¿òÁ÷ÀδÙ. ¿¹¸¦ µé¾î °í°´Àº »ó´ã¿ø°ú »ó´ãÀ» Çϰí ÀÚ½ÅÀÇ °èÁ¤À» ÅëÇØ¼­ Àú±ÝÀ» Çϰųª µ·À» ã°Å³ª ¶Ç´Â ´Ù¸¥ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à »õ·Î¿î °í°´ÀÌ ÀºÇàⱸ¿¡ µé¾î¿Â´Ù¸é »õ·Î¿î "ÀºÇà¾÷¹«-1" °´Ã¼°¡ »ý¼ºµÉ °ÍÀÌ´Ù.

ÀÌó·³ Ŭ·¡½º¶ó´Â °³³äÀº ¾î¶² »óȲÀ» ½Ã¹Ä·¹ÀÌ¼Ç Çϱ⿡ Àû´çÇÑ °³³äÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ·ÐÀûÀ¸·Î Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¸é ¸ðµç »óȲ¿¡ ´ëÇÑ ½Ã¹Ä·¹À̼ÇÀÌ °¡´ÉÇÏ´Ù. Ŭ·¡½º¿¡ ÀÖ´Â °¢°¢ÀÇ ¿ä¼ÒµéÀº ¾î¶² ¹®Á¦¸¦ Ç®±â À§Çؼ­ Á¸ÀçÇÑ´Ù. Áï °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ̶ó ÇÔÀº ¾î¶°ÇÑ µ¿ÀÏ ¹®Á¦Çذ῵¿ª¿¡ ÀÖ´Â ¿©·¯ ¿ä¼ÒµéÀ» Á¦¾îÇÔÀ¸·Î½á ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ °³¹ßöÇÐÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ´ëºÎºÐÀÇ °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ ¹®Á¦Çذ῵¿ªÀº º¸Åë class¶ó´Â Ű¿öµå·Î Ç¥ÇöµÈ´Ù.

Áö±Ý±îÁö Ŭ·¡½º¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ³»¿ëÀ» »ìÆìº¸¾Ò´Âµ¥, Áö±ØÈ÷ Ãß»óÀûÀ̰í öÇÐÀûÀÌ¶ó¼­ ¾î¶»°Ô ½á¸ÔÀ» ¼ö ÀÖÀ»Áö °¨ÀÌ ÀâÈ÷Áö ¾ÊÀ» ¼ö ÀÖÀ» °Í °°´Ù. ±¸Ã¼ÀûÀÎ ÀÌÇØ¸¦ µ½±â À§Çؼ­ Àü±¸¿¡ ´ëÇÑ Á¦¾î¸¦ ½Ã¹Ä·¹ÀÌ¼Ç ÇØº¸±â·Î ÇϰڴÙ. ¹®Á¦¿µ¿ªÀº ºûÀÇ Á¶ÀýÀ̸ç ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ Äѱâ, ²ô±â, ¹à°ÔÇϱâ, ¾îµÓ°Ô Çϱâ¶ó´Â ÀÎÅÍÆäÀ̽º µéÀÌ ÇÊ¿äÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. À̵é ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼­ ´Ù·ç´Â ¿ä¼Ò(µ¥ÀÌÅÍ)´Â ºûÀÌ µÉ °ÍÀÌ´Ù.

À§ÀÇ Å¬·¡½º¸¦ º¸¸é ºûÀ» Á¶ÀýÇϱâ À§Çؼ­ 4°³ÀÇ ÀÎÅÍÆäÀ̽º°¡ »ç¿ëÀÚ(ÇÁ·Î±×·¡¸Ó)¿¡°Ô Á¦°øµÇ¾îÁüÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¸Ó´Â 4°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ¼­ ÇÊ¿äÇÑ ¸ðµçÀÏÀ» ÇÒ ¼ö Àִµ¥ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼­ ½ÇÁ¦ ³»ºÎÀûÀ¸·Î ¾î¶°ÇÑ ÀÏÀÌ ÀϾ´Â Áö¿Í ³»ºÎÀÇ µ¥ÀÌÅͰ¡ ¼û¾î(Ãß»óÈ­)µÇ¾î ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. »ç¿ëÀÚ´Â °¢ ÀÎÅÍÆäÀ̽º¸¦ Á¶ÀýÇØ¼­ ÇÊ¿äÇÑ ÀÏÀ» ¼öÇàÇÏ°Ô µÈ´Ù.

¿©±â¿¡¼­ Ŭ·¡½ºÀÇ À̸§Àº Light¶ó°í Çß´Ù. ÀÚ ÀÌÁ¦ ¿©·¯ºÐÀÌ Àü±¸¸¦ Çϳª »ò´Ù°í Çϸé À̷μ­ ItÀ̶ó´Â »õ·Î¿î °´Ã¼¸¦ »ý¼ºµÈ °ÍÀÌ´Ù. ¿©·¯°³ÀÇ Àü±¸°¡ ÇÊ¿äÇÒ ¼ö Àִµ¥, ±×·² ¶§¸¶´Ù ¼­·Î ´Ù¸¥ À̸§À» °¡Áö´Â °´Ã¼¸¦ »ý¼º½ÃŰ¸é µÈ´Ù. It°´Ã¼´Â Ŭ·¡½º Light¸¦ ÂüÁ¶Çؼ­ »ý¼ºµÈ °´Ã¼À̸ç new¶ó´Â Ű¿öµå¸¦ ÅëÇØ¼­ »ý¼ºµÈ´Ù(µ·ÁÖ°í Àü±¸Çϳª »ç´Â °Í°ú µ¿ÀÏÇÏ´Ù). ¿©±â¿¡¼­ ¿ì¸®´Â Ŭ·¡½º¿Í °´Ã¼ÀÇ À̸§°£¿¡ ¿¬°áÀÌ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.


À§ÀÇ °°ÀÌ Å¬·¡½º¿Í °´Ã¼°£ ¿¬°ü°ü°è¸¦ ¿¬°áÇÏ´Â ´ÙÀ̾î±×·¥(diagram)Çü½ÄÀÇ ±¸¼ºµµ¸¦ ±×¸± ¼ö ÀÖÀ» °ÍÀε¥, UML(Unified Modeling Language)¶ó´Â µµ±¸¸¦ ÀÌ¿ëÇØ¼­ ±×¸± ¼ö ÀÖ´Ù. À§ÀÇ °æ¿ì´Â Ŭ·¡½º¿Í °´Ã¼ÀÇ °¡Àå ´Ü¼øÇÑ ¿¹ÀÌÁö¸¸ °´Ã¼ÀÚü°¡ Ŭ·¡½º°¡ µÉ ¼ö ÀÖ°í, »ó¼ÓµîÀÌ ÀϾ ¼ö ÀÖÀ¸¹Ç·Î ½ÇÁ¦·Î´Â ²Ï³ª º¹ÀâÇÑ ±¸¼ºµµ°¡ ¸¸µé¾îÁö°Ô µÈ´Ù. UMLÀº ±× ÀÚü°¡ ÇϳªÀÇ ÇнÀºÐ¾ßÀ̹ǷΠ¿©±â¿¡¼­´Â ÀÚ¼¼È÷ ´Ù·çÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ·±°ÍÀÌ ÀÖ´Ù´Â Á¤µµ¸¸ ÀÌÇØÇÏ°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ.

2.8 °´Ã¼´Â ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù.

»·ÇÑ ¾ê±â´Ù. ÀºÇà¾÷¹«-1°´Ã¼´Â °í°´¿¡°Ô ÀºÇ༭ºñ½º¸¦ Á¦°øÇϱâ À§Çؼ­, It°´Ã¼´Â ¹à°Ô ºñÃçÁÖ´Â ¼­ºñ½º¸¦ Á¦°øÇϱâ À§Çؼ­ Á¸ÀçÇÑ´Ù.

3 OOP (Object-Oriented Programming) °³·Ð

ÀÌ ±ÛÀº Á¦°¡ ¿À·¡Àü ÀâÁö¿¡¼­ º» °­Á¸¦ ŸÀÌÇÎÇÏ¿© ÆÄÀÏ·Î ÀúÀåÇØµÐ °ÍÀ» ¿Ã¸° °ÍÀÔ´Ï´Ù.

¾Æ½±°Ôµµ ÀâÁö¸íÀ̳ª ÀúÀÚ À̸§Àº ¿À·¡µÈÁö¶ó ±â¾ïÀÌ ³ªÁö ¾ÊÁö¸¸ Àü¹®À» ¿Ã·ÈÀ¸´Ï Àß Àо½Ã±â ¹Ù¶ø´Ï´Ù.

3.1 Object-Oriented ProgrammingÀÇ µîÀå

3.1.1 ¼ÒÇÁÆ®¿þ¾î À§±â (Software Crisis)

ÄÄÇ»ÅͰ¡ ÃâÇöÇÏ°í ±× ±â´ÉÀÌ ¹ß´ÞÇÔ¿¡ µû¶ó ¿ì¸®µéÀº ±×°ÍÀ» »ç¿ëÇÏ¿© º¸´Ù Æí¸®Çϰí À±ÅÃÇÑ »ýȰ - Á¤¸» À±ÅÃÇÏ°Ô µÇ¾ú´ÂÁö ¾Æ´ÑÁö¿¡ ´ëÇÑ ¾ð±ÞÀº ÇÏÁö ¾Êµµ·Ï Çϰڴ٠- À» ÇÏ°Ô µÇ¾ú´Ù. ±×¿¡ µû¶ó ¼ÒÇÁÆ®¿þ¾îÀÇ ¼ö¿ä°¡ ±âÇϱ޼öÀûÀ¸·Î Áõ°¡ÇϰԵȴÙ. °á±¹ °ø±ÞÀÌ ¼ö¿ä¸¦ µû¶ó°¡Áö ¸øÇÏ´Â »óÅ¿¡ À̸£°Ô µÈ´Ù. Çϵå¿þ¾îÀÇ ¹ßÀüÀº ´«ºÎ½Ãµµ·Ï ³î¶ó¿îµ¥ ±×¿¡ ºñÇÏ¸é ¼ÒÇÁÆ®¿þ¾îÀÇ ¹ßÀüÀº ±× ¹ßÄ¡¿¡µµ ¹ÌÄ¡Áö ¸øÇϰí ÀÖ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ À§±â»óȲ ¼Ó¿¡¼­ À̸¦ ±Øº¹ÇϰíÀÚ ÇÏ´Â ³ë·ÂÀ» ±¸Ã¼ÀûÀÎ ¹æ¹ý·ÐÀ¸·Î Ç¥ÇöÇÑ °ÍÀÌ ¼ÒÇÁÆ®¿þ¾î °øÇÐ (SE : Software Engineering)Àε¥, Object-Oriented Programming(Paradigm)µµ ¹Ù·Î ÀÌ SEÀÇ ÇÑ ¹üÁÖ¿¡ ¼ÓÇÑ´Ù°í ÇÒ ¼ö ÀÖ°Ú´Ù. Áý丸ÇÑ °ø·æÀÌ ¸ÞÃ߸®¾Ë Å©±âÀÇ ³ú¸¦ °¡Áö°í ÀÖ´Â »óŶó°í º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

3.1.2 ¼ÒÇÁÆ®¿þ¾îÀÇ ±¸¼º ¹æ¹ýÀÇ º¯Ãµ

ÃÊâ±â¿¡´Â ¸ðµç ¼ÒÇÁÆ®¿þ¾î¸¦ ´ÜÁö ÇϳªÀÇ Procedure·Î ¸¸µé¾î ³Â´Ù. ±×·¯³ª ¸¹Àº ½Ã°£°ú ¿©·¯ »ç¶÷ÀÇ ³ë·ÂÀÌ ÇÊ¿äÇÑ Å« ½Ã½ºÅÛÀ» ±¸ÃàÇÏ·Á°í ÇÒ ¶§¿¡ ÀÌ·± ¹æ¹ýÀº ÀûÀýÇÏÁö ¸øÇÏ´Ù. ±×·¡¼­ Å« ÇÁ·Î±×·¥À» °¢ ±â´Éº°·Î ¿©·¯°³ÀÇ SubroutineÀ¸·Î ³ª´©¾î(Functional Decomposition) µ¶¸³ÀûÀÎ ºÎºÐÀ¸·Î ¸¸µé¾î(Modularization) ¿©·¯»ç¶÷¿¡°Ô ÇÒ´çÇϰí, °¢°¢ÀÇ ¸ðµâÀÌ ¿Ï¼ºµÈ ÈÄ¿¡´Â ±×°ÍµéÀ» ¼­·Î Â¥¸ÂÃß¾î ÇϳªÀÇ ½Ã½ºÅÛÀ¸·Î ¿Ï¼ºÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÏ°Ô µÈ´Ù. À̰ÍÀ» Modular ProgrammingÀ̶ó°í ÇÑ´Ù. ÀÌ Modular Programming°ú ÇÔ²² ¸î¸î ±ÔÄ¢µéÀ» Àû¿ëÇÏ¿© Structured ParadigmÀ̶ó´Â ¼ÒÇÁÆ®¿þ¾î ±¸¼º¹æ¹ýÀÌ »ý°Ü³ª°Ô µÇ¾úÀ¸¸ç, Áö±Ý±îÁöµµ ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù.

3.1.3 Structured ¹æ¹ýÀÇ ¹®Á¦Á¡

±âÁ¸ÀÇ Structured ¹æ¹ýÀº ó¸®(Process)¸¦ Áß½ÉÀ¸·Î Çϰí ÀÖ´Ù. ¹Ù·Î ÀÌÁ¡ÀÌ ¹®Á¦°¡ µÈ´Ù. µ¥ÀÌŸ(Data)´Â ´ÜÁö °­Àǽǿ¡¼­ÀÇ Ä¥ÆÇó·³ ÇÊ¿äÇÒ¶§¸¶´Ù ½è´Ù Áö¿ü´ÙÇÏ´Â º¸Á¶ ¼ö´ÜÀ¸·Î ¿©°Ü ±×´ÙÁö Áß¿ä½ÃÇÏÁö ¾Ê°Ô »ý°¢Çß´Ù. µ¥ÀÌÅ͸¦ µ¶¸³µÈ ´ÜÀ§·Î º¸´Â ÀÌ·¯ÇÑ ½Ã°¢Àº ó¸®ÇؾßÇÒ µ¥ÀÌÅÍÀÇ Àý´ëÀûÀÎ ¾çÀÚü°¡ Àû¾úÀ»¶§´Â Å©°Ô ¹®Á¦°¡ µÇÁö ¾Ê°ÚÁö¸¸, ¿äÁòó·³ ´Ù·ç¾î¾ß ÇÏ´Â µ¥ÀÌÅÍÀÇ ±âº»´ÜÀ§°¡ ±â°¡°¡ µÇ´Â °æ¿ì¿¡´Â ¹®Á¦°¡ µÈ´Ù. ¸¹Àº µ¥ÀÌŸ¸¦ °øÀ¯Çؾ߸¸Çϰí, ¿øÇÏ´Â µ¥ÀÌŸ¸¦ ¿©±âÀú±â ¸¶±¸ ºÒ·¯ »ç¿ëÇÏ´Â »óȲÀº Modular ProgrammingÀÇ ¿ø¸®¸¦ ¾î±â°Ô µÇ¾ú°í µû¶ó¼­ ¸ðµâÀÇ ÀçȰ¿ë¼º(Reusablity)ÀÌ ¶³¾îÁö°Ô µÈ °ÍÀÌ´Ù. DBMS(DataBase Management System)¸¦ »ç¿ëÇÏ¿© ÀÌ·± ¹®Á¦¸¦ ´Ù¼Ò ÇØ°áÇÒ ¼ö´Â ÀÖÀ¸³ª À̷μ­´Â ÃæºÐÇÏÁö ¾Ê´Ù.

3.1.4 Object-Oriented ParadigmÀÇ µîÀå

ÇÁ·Î±×·¥ÀÇ ÀçȰ¿ë¼ºÀ» ³ôÀ̱â À§Çؼ­´Â Modular Programming, À̸¦ À§Çؼ­´Â Procedure»Ó¸¸ÀÌ ¾Æ´Ï¶ó µ¥ÀÌŸµµ ¸ðµâÈ­ µÇ¾î¾ß ÇÑ´Ù´Â ¹æ¹ý·ÐÀÌ µîÀåÇßÀ¸¸ç À̰ÍÀÌ Object-Oriented ParadigmÀÇ Áß¿äÇÑ ±âº» ¿ä¼Ò°¡ µÇ¾ú´Ù. 1960³â´ë¿¡ µîÀåÇÑ Simula´Â Çö½Ç¼¼°è¸¦ SimulationÇÏ´Â °ÍÀ» ÁÖ¸ñÀûÀ¸·Î ÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¿´´Âµ¥, ÀÌ ÇÁ·Î±×·¥¿¡ µµÀÔµÈ ÇÁ·Î±×·¡¹Ö °³³äÀÌ ¹Ù·Î Object-Oriented ParadigmÀÇ È¿½Ã°¡ µÇ¾ú´Ù.


3.2 OOPÀÇ ±âº»°³³ä

3.2.1 Object

Object´Â µ¥ÀÌŸ¿Í ÀÌ¿Í °ü·ÃµÈ Procedure¸¦ Çѵ¥ ¹­¾î Ç¥ÇöÇÑ ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁöÀÌ´Ù. ÀÌ´ÂÇö½Ç¼¼°è°¡ ó¸®Áß½ÉÀÌ ¾Æ´Ñ »ç¹°(°´Ã¼ : Object)Áß½ÉÀ¸·Î ÀÌ·ç¾îÁ³´Ù´Âµ¥¿¡ ¹ÙÅÁÀ» µÐ °ÍÀÌ´Ù. ¼¼Æ÷(Cell)¸¦ ¿¹·Î µé¾î »ý°¢ÇØ º¸ÀÚ. ¼¼Æ÷´Â ÇÙ, ¹ÌÅäÄܵ帮¾Æ, ¼¼Æ÷Áú, ¼¼Æ÷¸· µîÀ¸·Î ÀÌ·ç¾î Á³´Âµ¥, ÀÌ·¯ÇÑ ¼¼Æ÷ÀÇ ±¸¼º ¿ä¼Òµé¿¡°Ô´Â °¢°¢ÀÇ ¿ªÈ°ÀÌ ÁÖ¾îÁ® ÀÖ´Ù. ±×·¯³ª ±â°üÀÇ ÀÔÀå¿¡¼­ »ìÆì¸é, ¼¼Æ÷ÀÇ ±¸¼º ¿ä¼ÒµéÀÌ ¾î¶°ÇÑ ÀϵéÀ» ÇÏ´ÂÁö´Â ±×´ÙÁö Áß¿äÇÑ »ç½ÇÀÌ ¾Æ´Ï´Ù. ´ÜÁö ´Ü¹éÁúÀ̳ª ¹«±âÁúÀ» ¼¼Æ÷³»·Î Àü´ÞÇØ ÁÖ¸é, ¼¼Æ÷´Â ±×°ÍµéÀ» °¡Áö°í ÀÚ½ÅÀÇ ÀÓ¹«¸¸À» ¼öÇàÇÏ¸é µÇ´Â °ÍÀÌ´Ù. ¼¼Æ÷³»¿¡ ¾î¶°ÇÑ ±¸¼º¿øµéÀÌ ÀÖ´ÂÁö´Â ¾Ë Çʿ䵵 ¾ø°í, ´ÜÁö ¼¼Æ÷ ±× ÀÚü·Î¼­¸¸ ÀνĵǸé ÃæºÐÇÑ °ÍÀÌ´Ù. Objectµµ ÀÌ¿Í ¸¶Âù°¡Áö·Î »ý°¢ÇÏ¸é ½±°Ô ÀÌÇØ°¡ °¥ °ÍÀÌ´Ù.

3.2.2 Abstract Data Type & Data Abstraction

ÇÁ·Î±×·¡¸Ó°¡ ±âÁ¸ÀÇ Data TypeÀ» ÀÌ¿ë - Á¶ÇÕ - ÇÏ¿© Á¤ÀÇÇÑ »õ·Î¿î Data TypeÀ» Abstract Data TypeÀ̶ó°í Çϸç, À̰ÍÀ» Data Abstraction(µ¥ÀÌÅÍ Ãß»óÈ­)À̶óÇÑ´Ù. À̶§ ÀϹÝÀûÀ¸·Î »õ·Î¿î µ¥ÀÌÅÍ¿Í ±× µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¿¬»ê±îÁö ÇÔ²² ¹­¾î¼­ - Áï °´Ã¼´ÜÀ§·Î - Á¤ÀÇÇÑ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á »ç¶÷ÀÇ »ý°¢À» ÇÑ´Ü°è ³ô¿©, ±¸Ã¼ÀûÀÎ Low-Level(Primary) Data¿Í ¿¬»êÀÌ ¾Æ´Ñ, Ãß»óÈ­µÈ Data¿Í ¿¬»êÀ» ´Ù·ê ¼ö ÀÖ°Ô µÈ´Ù. ÀÌ Data AbstrationÀº º¹ÀâÇÑ µ¥ÀÌŸ(Complex Data)¸¦ ´Ù·ê¶§¿¡ È¿°úÀûÀÌ´Ù. ½ÇÁ¦·Î "Program = Level of Abstraction"À̶ó´Â °üÁ¡µµ ÀÖ´Ù. °¡Àå °£´ÜÇÑ ÇüÅÂÀÇ µ¥ÀÌÅÍ Ãß»óÀº ±¸Á¶Ã¼ÀÏ °ÍÀÌ´Ù.

3.2.3 Encapsulation

Data Abstraction¸¦ ÀÌ¿ëÇϸé EncapsulationÀ» ´Þ¼ºÇÒ ¼ö ÀÖ´Ù. ÇÊ¿äÇÑ µ¥ÀÌŸ¿Í Procedure¸¦ ¸ð¾Æ ĸ½¶¿¡ ´ã´Â °Í¿¡ Âø¾ÈÇÏ¿©ÀÌ·¸°Ô À̸§À» ºÙÀÎ °ÍÀÌ´Ù. ½ÇÁ¦·Î ÀÌ EncapsulationÀ¸·Î ÀÎÇØ »ý°Ü³­ °á°ú°¡ ObjectÀÌ´Ù. ¿¹¸¦ µé¸é, Nucleus(ÇÙ), Mitochondria(¹ÌÅäÄܵ帮¾Æ), Membrane(¼¼Æ÷¸·)µîÀÇ º¯¼öµé°ú ±×¿Í °ü°èµÈ ÇÔ¼öµéÀ» Cell(¼¼Æ÷)À̶õ object³»¿¡ Á¤ÀÇÇØ ³õÀº °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¿ì¸®µéÀº ÀÚ¼¼ÇÑ ºÎºÐ±îÁö ½Å°æÀ» ¾µ Çʿ䰡 ¾ø°í ´ÜÁö ¼¼Æ÷¶ó´Â Object¿Í Object·ÎÀÇ ÀÔÃâ·Â µ¥ÀÌÅ͸¸ »ý°¢ÇÏ¸é µÈ´Ù.

3.2.4 Infomation Hiding

EncapsulationÀ¸·Î ÀÎÇØ ³»ºÎÀÇ µ¥ÀÌŸ´Â ¿ÜºÎ·Î ºÎÅÍ °í¸³µÇ¾ú´Ù. µ¥ÀÌŸ´Â ÇÊ¿äÇÑ ¶§¿¡ ´ÜÁö ¿ÜºÎ·ÎºÎÅÍÀÇ Message¿¡ ÀÇÇØ¼­¸¸ Á¢±ÙµÇ¾îÁú ¼ö Àִµ¥, ÀÌ·¯ÇÑ °ÍÀ» Information Hiding(Á¤º¸ Àº´Ð)À̶ó ÇÑ´Ù. ¸¸¾à Object³»ÀÇÀϺκÐÀ» ¼öÁ¤ÇÏ¿´´Ù°í ÇØµµ ±× º¯È­´Â ´ÜÁö Object³»¿¡¼­¸¸ ¿µÇâÀ» ³¢Ä¡°í, ÀÌ·Î ÀÎÇÏ¿© ¿ÏÀüÈ÷ ¸ðµâÈ­°¡ ÀÌ·ç¾îÁö´Â °ÍÀÌ´Ù.

3.2.5 Composite Object

ÇÑ Object°¡ ´Ù¸¥ Object¸¦ Æ÷ÇÔÇÒ ¼ö Àִµ¥ À̸¦ Composite Object¶ó ÇÑ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á Æ÷ÇÔµÈ Object¸¦ »õ·Î¿î ObjectÀÇ ÇÑ ºÎºÐÀ¸·Î ´Ü¼øÈ­½Ãų ¼ö ÀÖ°í, ±×¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» ¾Ë Çʿ䵵 ¾øÀ¸¸ç ¸¹Àº ÁÖÀǸ¦ ±â¿ïÀÏ Çʿ䵵 ¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹ÌÅäÄܵ帮¾Æ¿Í ¼¼Æ÷¿ÍÀÇ °ü°è¸¦ »ý°¢ÇÏ¸é µÉ °ÍÀÌ´Ù.

3.2.6 Message

Message´Â Object»çÀÌÀÇ ¼ÒÅëÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ¹æ¹ýÀÌ´Ù. Message´Â Receiver, Method, ParameterÀÇ ¼¼ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î Àִµ¥, ¿¹¸¦ µé¾î "Car go: 20" (À̰ÍÀº Smalltalk¿¡¼­ »ç¿ëµÇ´Â Ç¥ÇöÀÌ´Ù. C++¿¡¼­´Â Car.go(20)ÀÇ ÇüÅÂÀ̸ç, Object-Oriented ¹æ¹ýÀ» Áö¿øÇÏ´Â Programming Language¿¡¼­ MessageÀÇ ±¸¼º¿ä¼ÒµéÀÇ ¼ø¼­´Â ÀϹÝÀûÀ¸·Î °°Àº °æ¿ì°¡ ¸¹´Ù.)¶ó´Â Message¿¡¼­ Car´Â ReceiverÀ̰í go:´Â Method, 20Àº ParameterÀÌ´Ù. ½±°Ô ¾Ë¼ö ÀÖµíÀÌ ÀÌ Receiver´Â ´ë»óÀÌ µÇ´Â(Message¸¦ ¼ö½ÅÇÏ´Â) objectÀÇ À̸§À̰í,go:´Â Car Object³»¿¡ Á¤ÀÇµÈ Procedure(¶Ç´Â Function)Àε¥ Object-Oriented¹æ¹ý¿¡¼­´Â Method¶ó°í ºÎ¸¥´Ù. 20Àº MethodÀÇ ParameterÀÌ´Ù. Parameter´Â °æ¿ì¿¡ µû¶ó ÇÊ¿äÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. Object´Â Message¸¦ ÅëÇØ¼­¸¸ Á¢±ÙµÉ ¼ö ÀÖ´Ù.

3.2.7 Overloading

°°Àº MethodÀ̸§¿¡ Çϳª ÀÌ»óÀÇ Àǹ̸¦ ºÎ¿©ÇÏ´Â °ÍÀ» OverloadingÀ̶ó ÇÑ´Ù. ¿¹¸¦ µé¾î Circle, Triangle, Rectangle À̶ó´Â ¼¼ Object´Â µµÇüÀ̶ó´Â °øÅëÁ¡À» °¡Áö°í ÀÖ´Ù. ÀÌ·¯ÇÑ µµÇüÀ» ±×¸®±â À§ÇØ Method¸¦ Á¤ÀÇÇÑ´Ù°í ÇÏÀÚ. ¼¼ µµÇüÀ» ±×¸®´Â ¹æ¹ýÀº È®¿¬ÇÏ°Ô ´Ù¸£´Ù. ±×·¯¹Ç·Î °¢°¢ CircleDraw, TriangleDraw, RectangleDraw¶ó´Â º°°³ÀÇ À̸§À¸·Î µÈ Method¸¦ ¸¸µé¾î¾ß Çϴµ¥, ÀÌ·¯ÇÑ ºÒÆíÇÔÀ» ¾ø¾Ö±â À§Çؼ­ Draw¶ó´Â ÇѰ³ÀÇ °øÅëµÈ MethodÀ̸§À» »ç¿ëÇÑ ¼¼°³ÀÇ method¸¦ ¸¸µé¾î °¢°¢ÀÇ object¿¡ Á¤ÀÇÇÑ´Ù. ´ÜÁö ¾î¶² Receiver¿¡°Ô Message°¡ ¼ö½ÅµÇ´Â°¡¿¡ µû¶ó ¼¼°¡ÁöÀÇ Method(Draw)Áß Çϳª°¡ °áÁ¤µÇ¾î »ç¿ëµÇ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î "Circle Draw:10"À̶ó´Â Message°¡ ÁÖ¾îÁö¸é ¹ÝÁö¸§ÀÌ 10ÀÎ ¿øÀ» ±×¸± °ÍÀ̰í, "Rectangle Draw: 30 20"ÀÎ Message·Î´Â °¡·Î 30, ¼¼·Î 20ÀÎ Á÷»ç°¢ÇüÀ» ±× °ÍÀÌ´Ù.

3.2.8 OverloadingÀÇ ÀåÁ¡

¿¹¸¦ µé¾î Shape¶ó´Â Object°¡ ÀÖ´Ù°í °¡Á¤ÇØ º¸ÀÚ. ÀÌ Object´Â À§¿¡¼­ ¿¹·Î µç ¼¼°¡ÁöÀÇ ObjectÁß ÇϳªÀÇ °ªÀ» °¡Áú ¼ö ÀÖ´Ù°í Çϸé, Program³»¿¡¼­ ÀÌ Shpae¸¦ ±×¸°´Ù°í ÇÒ ¶§ ±âÁ¸ÀÇ ¹æ¹ýÀ¸·Î ÇÏ·Á¸é ¼¼°¡ÁöÀÇ ¼±Åù®À¸·Î Ç¥ÇöµÇ¾î¾ß ÇÑ´Ù.
if      Shape = Circle   then CircleDraw 
else if Shape = Triangle then TriangleDraw 
else                          RectangleDraw 
 

ÀÌ·¸°Ô ÇϰԵǸé, Program³»¿¡¼­ Object¿¡ ´ëÇÑ »ó¼¼ÇÑ ³»¿ë±îÁö Programmer°¡ ¾Ë°í ÀÖ¾î¾ß ÇϹǷΠProgrammer¿¡°Ô ºÎ´ãÀÌ µÈ´Ù. ³ªÁß¿¡ Shape¿¡ »õ·Î¿î Object(¿¹¸¦ µé¸é, Hexagon °°Àº)¸¦ Ãß°¡µÈ¸é ¿ª½Ã Program³»¿¡ ¼öÁ¤ÀÌ °¡ÇØÁø´Ù. ±×·¯³ª Object-Oriented¹æ¹ýÀ¸·Î´Â °£´ÜÇÏ°Ô "Shape Draw:¶ó´Â ¹®ÀåÀ¸·Î ÃæºÐÇÏ´Ù. »õ·Î¿î object¸¦ Ãß°¡ÇÏ´õ¶óµµ ProgramÀ» ¼öÁ¤ÇÒ ÇÊ¿ä ¾øÀ¸¹Ç·Î È®À强ÀÌ ÁÁ°í, Program³»¿¡¼­ Object¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» ¾Ë Çʿ䰡 ¾øÀ¸¹Ç·Î Information HidingÀÌ °¡´ÉÇØ Áö¸ç, »ç¿ëÇϱ⿡µµ Æí¸®Çϸç, ÀÌ ¸ðµç ÀåÁ¡À¸·Î ÀÎ ModuleÈ­°¡ °¡´ÉÇØÁø´Ù.

3.2.9 Polymorphism

°øÅëµÈ Interface¸¦ »ç¿ëÇÏ¿© ÇϳªÀÌ»óÀÇ ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â °ÍÀ» PolymorphismÀ̶ó°í ÇÑ´Ù. À̰ÍÀº Overloading°ú Overriding(Ưº°ÇÑ ÇüÅÂÀÇ Overlading)À» º¸´Ù ÀϹÝÀûÀ¸·Î ÀÏÄ´ ǥÇöÀÌ´Ù.

3.2.10 Class

Class´Â Method¿Í Attribute(¼Ó¼º)µéÀ» Æ÷ÇÔÇϴ ƯÁ¤ÇÑ ÇüÅÂÀÇ Object¸¦ Á¤ÀÇÇϴ Ʋ(Template)ÀÌ´Ù. µû¶ó¼­ Class´Â ±ÝÇü°ú °°ÀÌ ¼ö¸¹Àº º¹Á¦Ç°À» ¸¸µé¾î ³¾¼ö ÀÖÀ¸¸ç, ÀÌ º¹Á¦Ç°À» Instance¶ó°í ÇÑ´Ù. Instance´Â ´ÜÁö (Value)µé ¸¸À» Æ÷ÇÔÇϰí ÀÖÀ¸¸ç, µû¶ó¼­ ÀÌ Instance¿¡ Method°¡ ¼ö½ÅµÇ¸é Class¿¡¼­ Method¸¦ ã¾Æ ¼öÇàÇÑ´Ù. ±×·¯¹Ç·Î 'Object'´Â ClassÀÇ Instance¶ó °í ÇÒ ¼ö ÀÖ´Ù. ¼¼Æ÷·Î ¾ê±âÇÏÀÚ¸é ¾î¶°ÇÑ ¼¼Æ÷·Îµµ ºÐÈ­ °¡´ÉÇÑ ¸¸´É¼¼Æ÷°¡ Class Âë¿¡ ÇØ´çÇÑ´Ù°í º¼ ¼ö ÀÖ´Ù. ¸¸´É¼¼Æ÷´Â ÀÚ½ÅÀÌ À§Ä¡ÇÏ´Â ±â°ü¿¡ µû¶ó¼­ ½Å°æ¼¼Æ÷, ±ÙÀ°¼¼Æ÷, ´º·±¼¼Æ÷µî ´Ù¾çÇÑ ¼¼Æ÷¸¦ ¸¸µé¾î ³½´Ù.

3.2.11 SuperClass¿Í SubClass

ÇÑ Class°¡ ´Ù¸¥ ClassÀÇ Æ¯Á¤ÇÑ ÇüÅÂÀÇ Çϳª·Î Á¤ÀÇµÉ ¶§ ±âÁ¸ÀÇ Class¸¦ SuperClass, »õ·Î¿î Class¸¦ SubClass¶ó ÇÑ´Ù.

oop-1.jpg

3.2.12 Inheritence(»ó¼Ó)

SubClass´Â SuperClassÀÇ ¸ðµç °ÍµéÀ» »ó¼Ó ¹ÞÀ» ¼ö ÀÖ´Ù. Áï, SuperClassÀÇ ¸ðµç Method¿Í AttributeµéÀ» º°µµÀÇ Á¤ÀǾøÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

3.2.13 Class Hierarchy

Class Hierarchy¶õ ClassµéÀÇ Tree¸ð¾çÀÇ ±¸Á¶¸¦ ¸»ÇÑ´Ù. À̰ÍÀº -ÀÌ·ÐÀûÀ¸·Î- Á¦ÇѾøÀÌ Áßø(Nesting)µÉ ¼ö ÀÖÀ¸¸ç, Inheritance´Â ÃàÀûµÇ¾î ¾Æ·¡ ´Ü°è·Î ³»·Á°£´Ù. Áï, ÇÑ Class¿¡¼­´Â ±× »óÀ§ Level¿¡ ÀÖ´Â Á¶»ó ClassÀÇ ¸ðµç ¼ºÁúÀ» °è½Â¹ÞÀ» ¼ö ÀÖ´Ù. ÀÌ Class Hierarchy´Â Á¤º¸¿Í Á¤º¸¸¦ ´Ù·ç±â À§ÇÑ ¹æ¹ýµéÀ» Àü½ÂÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡À» °¡Áø´Ù.

oop-2.jpg

3.2.14 ¿¹¿Ü(exception)ÀÇ Ã³¸® : Overriding

¾ÕÀÇ ¿¹¿¡¼­ Vehicle Class¿¡ ºñÇà±â¸¦(Aircraft)¶ó´Â SubClass¸¦ ÷°¡½ÃŲ´Ù°í ÇÏÀÚ. VehicleÀ» ¿òÁ÷ÀÌ°Ô ÇÏ´Â Method°¡ 'go'¶ó°í ÇÒ¶§, go ½ÅÈ£¸¦ º¸³»¸é ÀϹÝÀûÀ¸·Î ½Ãµ¿À» °É°í Hand Break¸¦ Ǭ ÈÄ¿¡ ¿¢¼¿·¹ÀÌÅ͸¦ ¹â¾Æ ¾ÕÀ¸·Î ³ª¾Æ°£´Ù. ÇÏÁö¸¸ ºñÇà±â´Â ÀÚµ¿Â÷¿Í »ó´çÈ÷ ´Ù¸£´Ù. ½ºÀ§Ä¡¸¦ ´­·¯ ½Ãµ¿À» °Ç ÈÄ, ¿©±âÀú±â °Ô±âÆÇÀ» ¸¸Áø ÈÄ¿¡ Çϴ÷Π³¯¾Æ¿À¸¥´Ù. ±×ÈÄ¿¡µµ °íµµÁ¶Àý, ¼ÓµµÁ¶Àý, ±â·ùµµ Çѹø »ìÆìº¸°í °Ç¹°À̳ª »ê°ú ºÎµñÄ¡Áö ¾Êµµ·Ï Á¶½ÉÇϰí...

½ÇÁ¦ ClassÀÇ °æ¿ì¿¡ ´ëÇØ¼­ »ý°¢Çغ¸ÀÚ. MethodÀÇ À̸§À» ´Ù¸¥ °ÍÀ¸·Î ¹Ù²Ü °ÍÀΰ¡? ±×·¯¸é Àϰü¼ºÀÌ ¾ø¾îÁø´Ù. ±×·¸´Ù°í SuperClassÀÎ Vehicls¿¡¼­ 'go'¶õ Method¸¦ ÇÑ´Ü°è ¹ØÀ¸·Î ²ø¾î³»·Á Á¤ÀÇÇÑ´Ù¸é, ¶È°°Àº ³»¿ëÀ» Auto, Truck, BusÀÇ ¼¼ Class¿¡ Á¤ÀÇÇØ¾ß ÇϹǷΠÁߺ¹ÀÌ µÇ¾î ºñÈ¿¿ïÀûÀÌ´Ù. À̶§´Â SuperClass(Vehicls)¿¡ ÀÖ´Â Method´Â ±×´ë·Î µÎ°í SubClass(Aircraft)¿¡ 'go'¶ó´Â Method¸¦ ÀçÁ¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ±×·¯¸é Message¸¦ ¼ö½ÅÇÏ´Â Object°¡ ¾î¶²Áö¿¡ µû¶ó¼­ ÀûÇÕÇÑ Method°¡ ¼±ÅÃµÇ¾î ½ÇÇàµÈ´Ù. ÀÌ·¸°Ô SuperClass¿¡ ÀÖ´Â MethodÀÇ À̸§À¸·Î »õ·Ó°Ô Method¸¦ ÀçÁ¤ÀÇ Çϴ°ÍÀ» OverrdingÀ̶ó ÇÑ´Ù.

3.2.15 Virtual Class(Abstract Class)

´ÜÁö ±¸Á¶ÀûÀÎ ¸ñÀûÀ¸·Î¸¸ »ç¿ëµÇ±â À§ÇÏ¿© ¼³°èµÈ Class¸¦ ¸»ÇÑ´Ù. ¾ÕÀ¸·Î »ç¿ëµÉ ±â´Éµé(Attribute, Method)À» ¸ð¾Æ³õ±â¸¸ ÇÏ°í ±¸Ã¼ÀûÀÎ ±¸ÇöÀº ³ªÁßÀ¸·Î ¹Ì·ç¾î, ´Ù¸¥ ClassµéÀÇ Base Class·Î¸¸ »ç¿ëµÈ´Ù. µû¶ó¼­ Virtual ClassÀÇ Instance´Â Á¸ÀçÇÒ ¼ö°¡ ¾ø´Ù. Abstract Class¶ó°íµµ ÇÏÁö¸¸, Abstract Data Type°úÀÇ È¥µ¿À» ¹æÁöÇϱâ ÇÏ¿© ÀϹÝÀûÀ¸·Î Virtual Class¶ó°í ÇÑ´Ù.

3.2.16 Multiple Inheritance(´ÙÁß »ó¼Ó)

ÇÑ Class°¡ ¿©·¯°³ÀÇ SuperClass¸¦ °¡Áú ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù. 'ö°­È¸»çÀÇ ³ëµ¿Á¶ÇÕÀå'ÀÇ °æ¿ì¸¦ ¿¹·Î µé¾îº¸ÀÚ, ±×´Â À¯´ÉÇÑ ¿ëÁ¢°øÀÌ¸ç ¶ÇÇÑ È¸»çÀÇ ¾÷¹«¸¦ °üÀåÇÏ´Â °£ºÎÀ̱â ÇÏ´Ù. ´ÜÁö Single Inheritanc¸¸ÀÌ °¡´ÉÇÏ´Ù°í Çϸé

oop-3.jpg

±×¸²¿¡¼­Ã³·³ °£ºÎÀÇ ¿ªÈ°À» ÀÌÁßÀ¸·Î Á¤ÀÇÇØ¾ß ÇϹǷΠºñÈ¿À²ÀûÀÌ´Ù. À̶§ Multiple Inheritance¸¦ ÀÌ¿ëÇϸé È¿À²ÀûÀÌ´Ù. ÇÏÁö¸¸ À̶§¿¡ ÁÖÀÇÇØ¾ß ÇÒ »çÇ×ÀÌ ÀÖ´Ù. °°Àº À̸§À¸·Î Á¤ÀÇµÈ Method°¡ °¢°¢ÀÇ SuperClass(¿ëÁ¢°ø, Á¶ÇÕÀå)¿¡ Á¸ÀçÇϸé, À̶§¿¡´Â ¾î¶² SuperClassÀÇ Method¸¦ »ç¿ëÇØ¾ß ÇÒÁö °áÁ¤ÇÒ ¼ö°¡ ¾ø´Ù. Áï, Conflict°¡ ÀϾ°Ô µÇ´Â °ÍÀÌ´Ù.

Multiple Inheritance¸¦ ÀÌ¿ëÇϸé ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ÇԺη¯ ¸¶±¸ °®´ÙºÙÀÌÁö ¾Êµµ·Ï ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. Áß¿äÇÏÁö ¾ÊÀº °÷¿¡ ¿À¿ëµÇ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ´Ù. À§ÀÇ ¿¹¿¡¼­ 'Á¶ÇÕÀå'ÀÇ °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. Multiple Inheritance¸¦ ¿Ã¹Ù¸£°Ô »ç¿ëÇÑ °ÍÀΰ¡? ÀÌÀü¿¡´Â ¿ëÁ¢°øÀ̾úÁö¸¸ Á¶ÇÕÀåÀÌ µÈ ÈÄ¿¡´Â ½ÇÁ¦·Î ¿ëÁ¢À» ÇÏÁö¾Ê°í ȸ»çÀÇ ¾÷¹«¸¸À» °ü¸®ÇÏ°Ô µÇ¾ú´Ù¸é ±×¶§ºÎÅÍ´Â »ç½Ç»ó ¿ëÁ¢°øÀ̶ó°í ÇÒ ¼ö°¡ ¾ø´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ¿ëÁ¢°øÀÇ °è½ÂÀ» ¾ø¾Ö¹ö·Á¾ß ÇÑ´Ù. °è½ÂµÇ´Â SuperClassÀÇ ¼ºÁúÀ» ¿ÂÀüÈ÷ Æ÷ÇÔÇϰí ÀÖ´ÂÁö »ìÆìº¸´Â °ÍÀÌ ¿Ã¹Ù¸£°Ô Multiple Inheritance¸¦ »ç¿ëÇϰí ÀÖ´ÂÁö ¿©ºÎÀÇ ÆÇ´Ü ±âÁØÀÌ µÈ´Ù.

3.2.17 Class HierarchyÀÇ ±¸¼º

Á¦´ë·Î µÈ Class Hierarchy¸¦ ±¸¼ºÇϱâ À§Çؼ­´Â, ¿ì¼± ³ªÁß¿¡ ½±°Ô ÀçȰ¿ëµÉ¼ö ÀÖµµ·Ï ÀϹÝÀûÀÎ ¸ñÀûÀ¸·Î ¼³°èµÇ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ ÀÌ Class Hierarchy´Â Çö½Ç¼¼°è¸¦ Àß ¹Ý¿µÇÒ ¼ö ÀÖ¾î¾ß Çϸç, Method´Â °¡´ÉÇÑÇÑ °¡Àå ³ôÀº ÃÖ»óÀÇ ´Ü°è¿¡¼­ Á¤ÀǵǾî¾ß Áߺ¹À» ÁÙÀÏ ¼ö ÀÖ´Ù.

oop-1.jpg

3.3 Object-Oriented ¹æ¹ýÀ» ÀÌ¿ëÇÑ SoftwareÀÇ ±¸Ãà

3.3.1 Reusability(ÀçȰ¿ë¼º)

Object-Oriented ¹æ¹ýÀÇ °¡Àå Áß¿äÇÑ Âø¾È »çÇ×ÀÌ ¹Ù·Î ÀÌ ÀçȰ¿ë¼ºÀÏ °ÍÀÌ´Ù. Reusable ModuleÀÌ ¸¹ÀÌ ¸¶·ÃµÇ¾î ÀÖ´Ù¸é ±×°ÍµéÀ» ÀÌ¿ëÇÏ¿© Software¸¦ ±¸ÃàÇÏ¸é º¸´Ù ÀûÀº ³ë·Â¸¸ÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ½ÇÁ¦·Î Reusable ModuleÀ» ¼³°èÇÏ´Â µ¥¿¡´Â ¼³°è, ºÐ¼®ÀÇ °úÁ¤À» °ÅÃÄ¾ß ÇϹǷΠ¼³°è»óÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº ÁÙÀÌ°í °³³äÀûÀÎ °Í¸¸ »ìÆìº¸ÀÚ.

Reusable ModuleÀ» ¼³°èÇÏ´Â °ÍÀº ´ë°ÔÀÇ °æ¿ì ÇÊ¿äÇÑ °ÍÀ» ±×¶§ ±×¶§ ¸¸µé¾î ¾²´Â °Íº¸´Ù ´õ ¸¹Àº °èȹ°ú ³ë·ÂÀ» ÇÊ¿ä·Î ÇÑ´Ù.

OOPÀÇ ÇÙ½ÉÀº Ãß»óÈ­¿¡ Àִµ¥, ÀÌ Ãß»óÀ̶ó´Â °ÍÀº ´Ù·ç°íÀÚÇÏ´Â °´Ã¼µéÀÇ °øÅëµÈ ¼Ó¼ºÀ» »Ì¾Æ³»¾î¼­ ÀϹÝÈ­µÈ °èÃþÀ» ¸¸µé¾î ³»´Â ÇàÀ§´Ù. ±×·¯¹Ç·Î ´Ù·ç¾î¾ß ÇÒ °´Ã¼µé°ú ÁÖº¯È¯°æ¿¡ ´ëÇÑ Æø³ÐÀº ÀÌÇØ°¡ ¿ì¼±ÀûÀ¸·Î ÇÊ¿äÇÏ´Ù. »ð»ì°³, Áøµ¾°³, Ä¡¾Æ¿Í µî¿¡ ´ëÇÑ °øÅëÀûÀΠƯ¡µéÀ» Á¦´ë·Î ¾Ë°í ÀÖ¾î¾ß ºñ·Î¼­ °³¸¦ Á¦´ë·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Â °Í°ú ¸¶Âù°¡Áö´Ù. ¸¹Àº ½Ã°£ÀÌ ÇÊ¿äÇÒ ¼ö ¹Û¿¡ ¾ø´Ù.

À̵é Reusable ModuleÀº Class ¸¦ Áß½ÉÀ¸·Î ¼³°èµÈ´Ù. Àü¿¡ ¾ð±ÞÇÑ ClassÀÇ ÀåÁ¡µé - Çö½Ç¼¼°è¸¦ Àß ¹Ý¿µÇÒ ¼ö ÀÖÀ¸¹Ç·Î Àΰ£ÀÇ »ý°¢À» Ç¥ÇöÇϴµ¥¿¡ ¼ö¿ùÇϰí, »ó¼Ó(Inheritance)À» ÀÌ¿ëÇÏ¿© È®ÀåÀÌ ½¬¿öÁö¸ç, PolymophismÀ» Àû¿ëÇÏ¿© Ưº°ÇÑ ¿¹¿Ü °æ¿ì¸¦ Àß Ã³¸®ÇÒ ¼ö ÀÖ´Â Á¡ µî - ÀÌ ModuleÀ» ¼³°èÇϴµ¥ ²À ¸Â°Ô Àû¿ëµÇ±â ¶§¹®ÀÌ´Ù. Reusable Class´Â ÇÊ¿äÇÑ °ÍµéÀ» Á÷Á¢ ¼³°èÇØ¼­ ¾òÀ» ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, Programming Language¿¡¼­ Á¦°øµÇ±âµµ Çϰí, ¶§·Î´Â »óÁ¡¿¡¼­ ±¸ÀÔÇÏ´Â °ÍÀÌ È¿À²ÀûÀÏ ¶§µµ ÀÖ´Ù.

3.3.2 Object¸¦ Á÷Á¢ »ç¿ëÇÑ SoftwareÀÇ ±¸Ãà

±âÁ¸¿¡ ¸¸µé¾îÁø Reusable Object¸¦ ¸ð¾Æ Software¸¦ ±¸ÃàÇÒ ¼ö ÀÖ´Ù ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀº ÇÊ¿ä·Î ÇÏ´Â ObjectµéÀ» ¸ð¾Æ ½ÇÁ¦·Î ±¸µ¿½ÃŰ´Â »õ·Î¿î Object¸¦ ¸¸µé¾î¾ß Çϴµ¥ ºÒÆíÇÔÀÌ ÀÖ´Ù (Program = Class Libraries + Solution Classes). ¹°·Ð ±âÁ¸ÀÇ ¹æ¹ý¿¡ ºñÇϸé ÀÌ Á¤µµ·Îµµ ÈǸ¢ÇÏÁö¸¸, ´õ ³ªÀº ¹æ¹ýÀÌ ÀÖ´Ù.

3.3.3 Simulation

±× ¹æ¹ýÀº Class LibraryµéÀ» ¸ð¾Æ ModelingÀ» ÇÏ´Â °ÍÀÌ´Ù. Áï, ±âÁ¸ÀÇ ClassµéÀ» ÀÌ¿ëÇÏ´Â High-Level Object ±îÁöµµ ¹Ì·¡ÀÇ Çʿ信 ´ëºñÇÏ¿© ¼³°èÇÏ´Â °ÍÀÌ´Ù. ÀºÇàÀÇ Àü»êó¸® SystemÀ» ±¸ÃàÇÏ´Â °ÍÀ» ¿¹·Î µé¾îº¸ÀÚ. ¿©±â¿¡´Â ÀÔÃâ±Ý °è»ê, ½Å¿ëÄ«µå °áÀç, °¢Á¾ °ø°ú±Ý ÀÚµ¿³³ºÎ µî ¿©·¯°¡Áö ÀÛ¾÷µéÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù. À̶§¿¡ Class LibraryµéÀ» ÀÌ¿ëÇÏ¿© ÀÔÃâ±Ý °è»ê System, ½Å¿ëÄ«µå °áÀç System, °ø°ú±Ý ÀÚµ¿³³ºÎ System µîÀ» ¹Ì¸® ¼³°èÇØ ³õÀ¸¸é, ³ªÁß¿¡´Â ´ÜÁö À̰͵éÀ» ³¢¿ö ¸ÂÃ߱⸸ ÇÏ¸é µÇ¹Ç·Î Class LibraryµéÀ» Á÷Á¢ ÀÌ¿ëÇÏ¿© ¸ðµç °ÍÀ» ´Ù½Ã ¼³°èÇÏ´Â °Íº¸´Ù ÈξÀ ¼ö¿ùÇÒ °ÍÀÌ´Ù. ½Å¿ëÄ«µå °áÀç ¹æ¹ýÀ» ¹Ù²Ù¾ú´Ù°í ÇÏÀÚ. ±×·¯¸é ´ÜÁö ½Å¿ëÄ«µå °áÀç System, ±× Áß¿¡¼­µµ ƯÁ¤ÇÑ Classµé¸¸À» °íÄ¡¸éµÇ¹Ç·Î ¼öÁ¤µµ ¿ëÀÌÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.

3.3.4 Rapid Prototyping

PrototypeÀ̶õ ÇѸ¶µð·Î '½ÃÇèÆÇ(Trial Version)'À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ½ÇÁ¦·Î ±â¾÷¿¡¼­ÀÇ °£ºÎµéÀº '±×µéÀÌ Á¤¸»·Î ¿øÇÏ´Â °ÍÀÌ ¹«¾ùÀÎÁö'¸¦ Á¦´ë·Î ¾ËÁö ¸øÇϰí ÀÖ´Â °æ¿ì°¡ ´ëºÎºÐÀÌ´Ù. ±×µé¿¡°Ô´Â ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏ´ÂÁö ¾Æ´ÑÁö¸¸ Áß¿äÇÒ »ÓÀÌ´Ù. ÀÚ½ÅÀÌ ¸¸µé ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô µ¹¾Æ°¥Áö¸¦ ¹Ì¸® È®ÀÎÇÏ´Â Â÷¿ø¿¡¼­ ÇÊ¿äÇϱ⵵ ÇÏÁö¸¸ À­ºÐµéÀÇ Á¤¼­Àû¾ÈÁ¤À» À§Çؼ­ ¸¸µéÇʿ䰡 »ý±â±âµµ ÇÑ´Ù.

3.3.5 SystemÀÇ ±¸Ãà

Reusable ClassµéÀÇ Library¸¦ ±¸ÃàÇÑ´Ù. ÀÌ ClassµéÀ» ÀÌ¿ëÇÏ¿© Working ModelÀ» ±¸ÃàÇÑ´Ù. Rapid PrototypingÀ» ÀÌ¿ëÇÏ¿© SystemÀ» ±¸ÃàÇÑ´Ù. - Çʿ信 µû¶ó¼­´Â ÀÌÀüÀÇ ´Ü°è·Î µÇµ¹¾Æ°¥ ¼ö ÀÖ´Ù(Feedback).

3.4 Object-Oriented ¹æ¹ýÀÇ ÀåÁ¡°ú ´ÜÁ¡

http://blog.crisp.se/henrikkniberg/images/old-tool-was-better.jpg

[http]±×¸²Ãâó:crisp

OOP¸é ¸ðµç°Ô ÇØ°áµÉ °Å¶ó°í »ý°¢ÇÏ´Â °³¹ßÀÚµéÀÌ ÀÖ´Ù. ÃÖ½ÅÀÌ ¾ðÁ¦³ª ÁÁÀº °Ç ¾Æ´Ï´Ù. ÀڱⰡ Àß ÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î ÇÏ´Â°Ô ÃÖ°í´Ù. ÀÚ°í·Î ÇÁ·Î±×·¥À̶õ°Ç µ¹¾Æ°¡¾ß ÇÏ´ÂÇÏ°í ±âº»ÀûÀ¸·Î ÀÚ½ÅÀ» À§Çؼ­ ¸¸µå´Â °ÍÀ̱⠶§¹®ÀÌ´Ù.

3.4.1 ÀåÁ¡

¿ì¼± ¤°í ³Ñ¾î°¡¾ß ÇÒ Á¡Àº, ±âÁ¸ÀÇ »ç°í ¹æ½ÄÀ» °¡Áö°í ´Ü¼øÈ÷ Object-Oriented Language¸¦ »ç¿ëÇÏ¿© ProgrammingÀ» ÇÏ´Â °ÍÀº º°·Î µµ¿òÀÌ µÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ÀÌÁ¦±îÁö °¡Áö°í ÀÖ´ø, Programming ÇÒ ¶§ÀÇ ±âÁ¸ÀÇ »ç°í¹æ½ÄÀ» °ú°¨È÷ Å»ÇÇÇÏ¿© »õ·Î¿î °³³äÀ» °¡Áö°í ÀÌ¿¡ ÀûÇÕÇÑ ºÐ¼®°ú ¼³°è°¡ µÚµû¶ó¾ß¸¸ Object-Oriented ¹æ¹ýÀÇ ÀåÁ¡À» ÃæºÐÈ÷ »ì¸± ¼ö ÀÖÀ» °ÍÀÌ´Ù.

  • ¼³°è ½Ã°£ÀÇ ´ÜÃà
    ±âÁ¸¿¡ ¸¸µé¾îÁø ModuleÀ» ÀÌ¿ëÇÏ¿© Rapid PrototypingÀÇ ¹æ¹ýÀ¸·Î ¼ÒÇÁÆ®¿þ¾î¸¦ ±¸ÃàÇϹǷΠ½Ã°£À» Àý¾àÇÒ ¼ö ÀÖ´Ù.

  • ÁúÀûÀÎ Çâ»ó
    ÀÌ¹Ì ÃæºÐÈ÷ °ËÅäµÇ°í ½ÃÇèµÈ ¸ðµâÀ» ÀÌ¿ëÇÏ¿© ¸ð¾Æ¼­ ÇÁ·Î±×·¥À» ¸¸µé±â ¶§¹®¿¡, Çʿ信 µû¶ó¼­ ±×¶§±×¶§ ¸¸µç °Íµé º¸´Ù ´õ ³ôÀº ÁúÀ» °¡Áø ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ´Ù. ÀÌÁ¡Àº Object-Oriented ¹æ¹ýÀ¸·Î ¸¸µé¾îÁø Reusable ModuleÀ» »ç¿ëÇϱ⠶§¹®¿¡ ÀÌ·ç¾îÁö´Â °ÍÀÌÁö Object-Oriented ¹æ¹ý ÀÚü°¡ ÁúÀû Çâ»óÀ» °¡´ÉÇϰÔÇÏ´Â °ÍÀº ¾Æ´Ï´Ù.
  • À¯Áö º¸¼öÀÇ ¼ö¿ùÇÔ
    Object-Oriented ¹æ¹ýÀº Çö½Ç ¼¼°è¸¦ ±×´ë·Î ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀ¸·Î ¹Ý¿µÇÒ ¼ö ÀÖÀ¸¹Ç·Î °áÁ¡À» ¹ß°ßÇϱⰡ ½±´Ù. ¶ÇÇÑ ¸ðµâÈ­ µÇ¾úÀ¸¹Ç·Î °áÁ¡À» °íÃĵµ ±× ÆÄ±ÞÈ¿°ú°¡ ´Ù¸¥ ¸ðµâ¿¡ ³¢Ä¡´Â ¿µÇâÀÌ °ÅÀÇ ¾øÀ¸¹Ç·Î ½Ã½ºÅÛÀ» À¯ÁöÇϱⰡ ¼ö¿ùÇÏ´Ù.
  • Á¦ÀÛ ºñ¿ëÀÇ °¨¼Ò
    ±âÁ¸¿¡ ¸¸µé¾îÁø ÇÁ·Î±×·¥À» ÀÌ¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î±×·¡¹ÖÀÇ ³ë·ÂÀÌ ÁÙ¾îµé°í, Rapid PrototypingÀ» ÅëÇØ ½Ã½ºÅÛ µðÀÚÀÎÀÇ ³ë·ÂÀ» ÁÙÀÏ ¼ö ÀÖ°í, ÇÊ¿ä·Î ÇÏ´Â ¸ðµç Class Library¸¦ ÀÏÀÏÀÌ Á¦ÀÛÇÒ Çʿ䰡 ¾øÀÌ ½ÃÁß¿¡ ³ª¿ÍÀÖ´Â °ÍµéÀ» ±¸ÀÔÇϹǷÎ, ȸ»çÀÇ °æ¿µ Â÷¿ø¿¡¼­µµ Á¦ÀÛ ºñ¿ëÀ» ÁÙÀÏ ¼ö ÀÖ´Ù.
  • ´ëÇü ½Ã½ºÅÛ±¸ÃàÀÇ ¼ö¿ùÇÔ
    Modular Programming°ú Polymorphismµµ ´ëÇü ½Ã½ºÅÛÀÇ ±¸ÃàÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. Object-Oriented ¹æ¹ýÀ¸·Î¸¸ °¡´ÉÇÑ ±×·¯ÇÑ °ÍÀº ¾Æ´Ï´Ù. ÀϹÝÀûÀ¸·Î ´ëÇü½Ã½ºÅÛÀ̶ó°í ÇÏ´Â °ÍÀº ¸¹Àº Ãß»óÈ­ ´Ü°è¸¦ °ÅÄ¡±â ¸¶·ÃÀÌ´Ù. ±×·¯¹Ç·Î Ãß»óÈ­¸¦ Áö¿øÇÏ´Â OOP°¡ Á» ´õ ¼ö¿ùÇÏ°Ô ´ëÇü½Ã½ºÅÛÀ» ±¸ÃàÇϵµ·Ï µµ¿ÍÁÖ¸®¶ó´Â °É ¿¹»óÇÒ ¼ö ÀÖÀ¸¸ç, ½ÇÁ¦·Î ±×·¸´Ù.
  • ´õ ³ªÀº information ±¸Á¶
    Çö´ëÀÇ ±â¾÷»çȸ¿¡¼­ ¿ä±¸ÇÏ´Â º¹ÀâÇÑ Á¤º¸¸¦ È¿°úÀûÀ¸·Î Ç¥ÇöÇÒ ¼ö°¡ ÀÖ´Ù. À̰ÍÀº Data AbstractionÀ¸·Î °¡´ÉÇÏ´Ù.
  • ÀûÀÀ¼º(adaptability)ÀÇ Çâ»ó
    ¼öÁ¤À» °¡Çصµ ±× ¿µÇâÀÌ ±¹¼ÒÈ­ µÇ¹Ç·Î ÇÊ¿äÇÑ ºÎºÐ¸¸À» °íÃÄ ½±°Ô »õ·Î¿î ½ºÅÛ¿¡ Àû¿ë½Ãų ¼ö ÀÖ´Ù.

3.4.2 ´ÜÁ¡

  • Object-Oriented ¹æ¹ýÀÇ ¹Ì ¼º¼÷
    ¾î´À Á¤µµ ±âº»ÀûÀÎ °ÍÀº °®Ãß¾î Á³Áö¸¸ Object-Oriented ¹æ¹ýÀº ¾ÆÁ÷ Á¦´ë·Î ¼º¼÷µÇÁö ¸øÇß´Ù. ÀÌ ¹æ¹ýÀ» ¹Ï°í »ç¿ëÇϴµ¥¿¡ ¾î·Á¿òÀÌ µû¸¥´Ù.
  • Ç¥ÁØÀÇ Çʿ伺
    Programming Language¿¡ ´ëÇÑ Ç¥ÁØÀÌ Á¦´ë·Î µÇ¾î ÀÖÁö ¾Ê±â ¶§¹®¿¡ ÇÁ·Î±×·¥À» À̽ÄÇϴµ¥¿¡ ¹®Á¦Á¡ÀÌ ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é ¼ÒÇÁÆ®¿þ¾î¸¦ °°Àº ȸ»ç¿¡¼­ ±¸ÀÔÇØ¾ß ÇÏ°í ´Ù¸¥ ȸ»çÀÇ °ÍÀº ¼¯¾î¼­ »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù. À̰ÍÀº Å« ¹®Á¦Á¡À» ¾ß±âÇÒ ¼ö ÀÖ´Ù. ¸¸¾à °Å·¡ ȸ»ç°¡ ¸ÁÇß´Ù°í ÇÏÀÚ. ¾î¶»°Ô ÇÒ °ÍÀΰ¡?
  • ´õ ³ªÀº µµ±¸(tool)ÀÇ Çʿ伺
    Object-Oriented ¹æ¹ýÀ» ¹ÙÅÁÀ¸·Î ½Ã½ºÅÛÀ» ±¸ÃàÇϴµ¥ ÇÊ¿äÇÑ Tool µéÀº ¸î°¡Áö°¡ ÀÖ´Ù. Object¸¦ ½±°Ô ¼³°èÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °Í, Reusable ObjectµéÀÇ Library¸¦ À¯ÁöÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °Í, Data Input Form°ú Ãâ·ÂÀ» ¼È°èÇϰí À¯ÁöÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍµéÀÌ ÀÖ´Ù. »õ·Î¿î ¹æ¹ý·Ð¿¡ ºñÇØ ±×°ÍÀ» Áö¿øÇØ ÁÙ ¼ö ÀÖ´Â Tool µéÀº ´Ê°Ô¼­¾ß ¸¸µé¾îÁö±â ¸¶·ÃÀÌÁö¸¸, Object-Oriented ¹æ¹ýÀº ±âÁ¸ÀÇ °Í°ú »óÀÌÇÏ°Ô ´Ù¸£±â ¶§¹®¿¡ ±×µéÀ» ÀÌ¿ëÇϱâ Èûµé´Ù´Âµ¥ ¹®Á¦°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é, ÇöÀç Class Library Management Tool µéÀº ±â²¯ÇØ¾ß °£´ÜÇÑ Browser Á¤µµ¸¸ Á¦°øÇÒ »ÓÀÌ´Ù. ±×µéÀÇ Ã¼°èÀûÀÎ ºÐ·ù, »ç¿ë ¸ñÀû, »ç¿ë ¹æ¹ý µî¿¡ °üÇÑ °ÍÀº ÃæºÐÈ÷ Áö¿øÇÏÁö ¸øÇϰí ÀÖ´Ù.
  • ´À¸° °³¹ß ¼Óµµ
    °´Ã¼ÁöÇâÀº ó¸®ÇϰíÀÚ ÇÏ´Â ÀÏ¿¡ ´ëÇÑ ¸íÈ®ÇÑ ÀÌÇØ¸¦ ÇÊ¿ä·Î ÇÑ´Ù. Àüü¿¡ ´ëÇÑ À߸øµÈ ÀÌÇØ ȤÀº ºÐ¼®ÀÌ ºÎÁ·ÇÑ »óÅ¿¡¼­ ÀÏÀ» ½ÃÀÛÇÏ°Ô µÇ¸é ÇÁ·Î±×·¥ ±¸Á¶ÀÚü¿¡ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù. Ãʱ⼳°è¿¡ ¸¹Àº ½Ã°£ÀÌ ¼Ò¸ðµÈ´Ù.
  • ´À¸° ½ÇÇà ¼Óµµ
    Object-Oriented Language·Î ¸¸µç ¼ÒÇÁÆ®¿þ¾îµéÀº ´ëüÀûÀ¸·Î ½ÇÇà¼Óµµ°¡ ´À¸®´Ù. Ãß»óÈ­¿¡´Â ¸¹Àº ÄÄÇ»ÆÃÆÄ¿ö°¡ ¼Ò¸ðµÈ´Ù. ±â´ÉÀÌ °­·ÂÇÏ°í ¸¹Àº ¸¸Å­ ¼Óµµ°¡ »ó´ëÀûÀ¸·Î ´À¸° °ÍÀº ´ç¿¬ÇÏ´Ù ÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸ Object-Oriented ¹æ¹ý ÀÚü°¡ ½ÇÇà ¼Óµµ¸¦ Áß½ÉÀ¸·Î ¼³°èµÈ °ÍÀº ¾Æ´Ï±â ¶§¹®¿¡ ¼Óµµ´Â Å« ¹®Á¦°¡ ¾Æ´Ò ¼öµµ ÀÖ´Ù.
  • Conversion¿¡ »ç¿ëµÇ´Â ºñ¿ë
    ±âÁ¸ÀÇ ¹æ¹ý·ÐÀ» Object-Oriented ¹æ¹ýÀ¸·Î ¹Ù²Ù´Â °£´ÜÇÑ ¹®Á¦°¡ ¾Æ´Ï´Ù. »õ·Î¿î Programming Language, DBMS »Ó¸¸ ¾Æ´Ï¶ó ±×¿¡ ÇØ´çÇÏ´Â ¿©·¯°¡Áö Tool µé, Graphics°¡ Áö¿øµÇ´Â Hardware System µéÀÌ OOP¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ±×·¯¹Ç·Î ±âÁ¸ÀÇ ÆÐ·¯´ÙÀÓÀ» OOP·Î ¹Ù²Ù´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, Conversion¿¡ ¼Ò¿äµÇ´Â ºñ¿ëÀ» °£°úÇÒ ¼ö´Â ¾ø´Ù. ¶ÇÇÑ ¹°¸®ÀûÀÎ ºñ¿ë »Ó¸¸ÀÌ ¾Æ´Ï¶ó, Programmer¿Í ¼³°èÀÚ, Manager¿¡°Ô µé¾î°¡´Â ±³À°ºñ¿ë¶ÇÇÑ »ó´çÇÏ´Ù.

3.4.3 Àå´ÜÁ¡ÀÇ ÀûÀýÇÑ Á¶È­

  • ¼º¼÷¼º
    SmalltalkÀ̳ª C++, ±×¿ÜÀÇ ±âÁ¸ Programming Language¿¡µµ Object-Oriented ¹æ¹ýÀÌ Ãß°¡µÇ¾î »õ·Ó°Ô µîÀåÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº OOPLÀ» »ç¿ëÇÏ´Â µ¥¿¡´Â Å« ºÒÆíÇÔÀÌ ¾ø´Ù. ¶ÇÇÑ ÀÌ »õ·Î¿î °³³äÀ» Àü¹®ÀûÀ¸·Î Ãë±ÞÇÏ´Â ¿¬±¸´Üü³ª ±â¾÷ÀÌ Á¡Á¡ ´Ã¾î³ª°í ÀÖÀ¸¸ç ÀÌ·¯ÇÑ ¿¬±¸´Üü³ª ±â¾÷µéÀdzë·ÂÀ¸·Î ´ÜÁ¡À» ÃæºÐÈ÷ ÆÄ¾ÇÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.

    ±âÁ¸ÀÇ ¹æ¹ý·Ð°ú ºñ±³ÇØ º¸°í ½ÍÀ¸¸é µ¿ÀÏÇÑ ApplicationÀ» ±âÁ¸ÀÇ ¹æ¹ýÀ» ÀÌ¿ëÇÏ´Â ¶Ç´Ù¸¥ Team¿¡°Ô ¸Ã°Üº¸¸é µÈ´Ù. ¾Æ¸¶µµ ¼¼°¡Áö Á¤µµÀÇ ApplicationÀ» ¿Ï¼ºÇÒ ¶§ Âë µÇ¸é Object-Oriented ¹æ¹ýÀÇ Àå´ÜÁ¡À» ¸íÈ®ÇÏ°Ô ÆÄ¾ÇÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À̶§ ÁÖÀÇÇÒ Á¡Àº, Team ±¸¼º¿ø ´©±¸¿¡°Ôµµ ÀڽŵéÀÌ ½ÃÇèÀÇ ´ë»óÀÌ µÇ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë°ÔÇØ¼­´Â ¾ÈµÈ´Ù´Â °ÍÀÌ´Ù. Heroic Effect(ÀڽŵéÀÌ ½ÃÇèÀÇ ´ë»óÀÌ µÇ°í ÀÖ´Ù´Â »ç½ÇÀÌ Æò¼Òº¸´Ù ´õ ¿­½ÉÈ÷ ÇѴٵ簡 ÇÏ´Â µîÀÇ ¿µÇâ¿ä¼Ò·Î ÀÛ¿ëÁ¦·Î ApplicationÀ» °³¹ßÇÒ ¶§º¸´Ù ¼öÁ¤ÇÏ´Â °æ¿ì¿¡ ºñ¿ëÀÌ ´õ ¸¹ÀÌ ¼Ò¿äµÇ´Â °æ¿ì)°¡ Á¾Á¾ Àֱ⠶§¹®ÀÌ´Ù.

  • °´Ã¼ÁöÇâÀº ÆÐ·¯´ÙÀÓÀÇ º¯È­¸¦ ¿ä±¸ÇÏ°Ô µÈ´Ù. ÀÌ ÆÐ·¯´ÙÀÓÀÇ ÀÌÇØµµ¿¡ µû¶ó¼­ °³¹ßÀÚ°£¿¡ Ä¿¹Â´ÏÄÉÀÌ¼Ç Çϴµ¥ ¾î·Á¿òÀÌ »ý±æ ¼ö ÀÖ´Ù. ÀÌÂ÷ÀÌ´Â °³¹ßÀÚÀÇ ÄÚµù´É·Â°ú´Â º°°³´Ù. ½Ê¼ö³âÀÇ °æ·ÂÀ» °¡Áö°í ÀÖ´Ù°í ÇÏ´õ¶óµµ °´Ã¼ÁöÇâÀûÀ¸·Î ÇÁ·Î±×·¥À» ¸¸µé¾î¿ÀÁö ¾Ê¾Ò´Ù¸é Ä¿¹Â´ÏÄÉÀ̼ǿ¡ ¾î·Á¿òÀÌ »ý±æ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °³¹ßÀÚ°£ Ä¿¹Â´ÏÄÉÀ̼ÇÀÇ ¹®Á¦Á¡Àº ÆÐÅÏ¿¡ ´ëÇÑ ÇнÀÀ» ¼±ÇàÇÔÀ¸·Î½á »ó´çºÎºÐ ÇØ°á °¡´ÉÇÏ´Ù.

4 °ü·Ã±Û

ÅÂ±× :


Cache Error
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.