ÄÄÇ»ÅÍ´Â ¾ÆÁÖ ´Ü¼øÇÑ Áö½Ã»çÇ×(ÀÌÇÏ,instruction)À» ¸Å¿ì ºü¸£°Ô ¼öÇàÇÏ´Â ±â°èÀÔ´Ï´Ù. ÀνºÆ®·°¼ÇÀº 0°ú 1·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. ÀÌ·± ÇüÅÂÀÇ ÀνºÆ®·°¼ÇÀ» ±â°è¾î(machine code)¶ó ÇÕ´Ï´Ù. ±×·± ÄÚµå´Â ±â°è¸¸ ÀÌÇØÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.
1°ú 0Àº ÄÄÇ»ÅÍ ³»ºÎÀÇ Àü±â ½ÅÈ£ Áß Çϳª·Î, ÄÑÁö¸é 1, ²¨Áö¸é 0ÀÔ´Ï´Ù. ÀÌ ½ÅÈ£µéÀº 0 ¶Ç´Â 1 °¡¿îµ¥ ÇϳªÀÇ °ªÀ» °®´Â´Ù°í ÇØ¼ 'ÀÌÁø (binary)'À̶ó ÇÕ´Ï´Ù. ±×¸®°í ±× °ªÀ» 'ºñÆ®(bit)'¶ó ÇÕ´Ï´Ù. bit´Â 'binary digit(ÀÌÁø¼ö)'ÀÇ ¾àÀÚÀÔ´Ï´Ù.
1940-1950³â´ëÀÇ ÄÄÇ»ÅÍ´Â »ç½Ç»ó ÇÁ·Î±×·¡¹Ö ÇÑ´Ù´Â °ÍÀÌ ºÒ°¡´É¿¡ °¡±î¿ü½À´Ï´Ù. ±× ¹°°ÇµéÀº '¹è¼± (wiring)'À» ÅëÇØ Á¶ÀýµÇ¾úÁÒ. ±âÆÇ»ó¿¡ ÀÖ´Â ÀÛÀº Àü¼±µéÀ» Á¶ÀÛÇØ¼ ¿¬°áÀÌ ÀÌ·ç¾îÁø °÷Àº 1À», ¿¬°áÀÌ ¾ø´Â °÷Àº 0À» ³ªÅ¸³»°Ô ÇØ³õÀº °ÍÀÔ´Ï´Ù. Àü¼± ¿¬°áÀÇ Á¶ÇÕÀÌ ´ç½ÃÀÇ ÇÁ·Î±×·¡¹ÖÀ̾ú½À´Ï´Ù. ÀÌ·± ÇüÅÂÀÇ ¹è¼±Àº ¸¸µå´Â µ¥ ¾ÆÁÖ ½Ã°£ÀÌ ¿À·¡ °É¸®°í, Çϱ⵵ Èûµé »Ó ¾Æ´Ï¶ó, ¹º°¡ ¹®Á¦°¡ »ý°åÀ» ¶§ ¿¡·¯¸¦ ã¾Æ³½´Ù´Â °ÍÀÌ °ÅÀÇ ºÒ°¡´É Çß½À´Ï´Ù. ¾î¶² ¹®Á¦°¡ »ý±â¸é, ¹®ÀÚ ±×´ë·Î Àü¼± ÇϳªÇϳª¸¦ µû¶ó°¡¸ç ¾î´À ¼±¿¡¼ ¹®Á¦°¡ »ý°å´ÂÁö¸¦ ã¾Æ³»¾ß Çß½À´Ï´Ù. ¹®Á¦´Â Àü¼±ÀÌ ¼öõ, ¼ö¸¸ °³°¡ ¾ôÇô ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. »õ·Î¿î ÇÁ·Î±×·¥À» Ãß°¡ÇÏ´Â °Íµµ ÀÏÀÏÀÌ »õ·Î¿î ¹è¼±À» ÇØÁÖ¾î¾ß ÇÏ´Â Áö·çÇϱâ ¦ÀÌ ¾ø´Â ÀÛ¾÷À̾ú½À´Ï´Ù.
¹ö±×(bug)¶ó´Â ´Ü¾î°¡ À̶§ À¯·¡µÇ¾ú´Ù´Â Àü¼³µµ ÀÖ½À´Ï´Ù. ´ç½ÃÀÇ °Å´ëÇÑ ÄÄÇ»ÅÍ ¾È¿¡¼ ¾î½½·· °Å¸®´Ù°¡ Àå·ÄÇÏ°Ô Àü»çÇÑ ÁøÂ¥ '¹ú·¹'ÀÇ ½Ãü°¡ Àü¼±°ú Àü¼± »çÀÌ¿¡ ¶Ç ´Ù¸¥ ¿¬°áÀ» ¸¸µé¾î¼ ¿¡·¯¸¦ ³»¾ú´Ù´Â °ÍÀÔ´Ï´Ù. ¹ú·¹ ¶§¹®¿¡ ¹®Á¦°¡ ÀÏ¾î³ °Í ÀÚü´Â »ç½ÇÀ̾ú½À´Ï´Ù. ÇÏÁö¸¸ '¹ö±×'¶ó´Â ´Ü¾î°¡ À̷κÎÅÍ À¯·¡µÇ¾ú´Ù´Â ÁÖÀåÀº µµ½Ã¹ÎµéÀÇ ¼Ò¹ÚÇÑ »ó»ó·ÂÀÇ ¼Ò»êÀÔ´Ï´Ù. '¹ö±×'¶ó´Â ¿ë¾î´Â 1940³â´ë ÈξÀ ÈξÀ ÀÌÀüºÎÅÍ ÀÖ¾î¿Ô°í, ÄÄÇ»ÅͰ¡ ž±â 100 ³â ÀüºÎÅÍ ±â°è·ù¿¡¼ ¾î¶² ¹®Á¦°¡ »ý±ä °æ¿ì º¸ÆíÀûÀ¸·Î »ç¿ëµÇ´ø ´Ü¾î¿´½À´Ï´Ù. ±× ¿¾³¯ ±â°èµéµµ ¹ú·¹°¡ ¾î½½··°Å¸®´Ù°¡ ±â°è ³»ºÎ·Î Ãß¶ôÇÑ °æ¿ì ¾û¸ÁÀÌ µÇ¾î¹ö·È±â ¶§¹®ÀÔ´Ï´Ù. (ƯÈ÷ Åé´Ï¹ÙÄû°¡ ¸¹Àº ½Ã°è³ª ¹ÂÁ÷¹Ú½º °°Àº) ÄÄÇ»ÅÍ ¹ö±×´Â ÀÌ·± ¿À·£ ¿ë¾î »ç¿ëÀÇ °üÇàÀÌ À̾îÁø °ÍÀÏ »ÓÀÔ´Ï´Ù.
Á¶±Ý ½Ã°£ÀÌ Áö³ªÀÚ ±â°è¾î´Â Á÷Á¢ ¹è¼±À» ÇØÁÖ¾î¾ß ÇÏ´Â ¼öÁØÀº ¹þ¾î³ª°Ô µÇ¾ú½À´Ï´Ù. ´ë½Å '¸Þ¸ð¸®'³»ÀÇ °ª(value)À» ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ°Ô µË´Ï´Ù.(1950-60³â´ë) »õ·Î¿î ¹æ½ÄÀº ¿¹ÀüÀÇ ¹«½ÄÇÑ ¹æ½Äº¸´Ù´Â ºÐ¸í Çâ»óµÈ °ÍÀ̾ú°í, ºü¸¥ ÇÁ·Î±×·¥ ¼öÁ¤À» °¡´ÉÄÉ ÇØÁÖ¾úÁö¸¸ ¼ö¸¹Àº 0°ú 1·Î ÀÌ·ç¾îÁø ÆÐÅϰú ¾¾¸§ÇÏ´Ù º¸¸é ¸¹Àº ¿¡·¯°¡ ³ª´Â °ÍÀº ¸¶Âù°¡Áö¿´½À´Ï´Ù. »ç¶÷µéÀº º¸´Ù ½±°Ô ±â¾ïÇϱâ À§ÇØ 0°ú 1·Î ÀÌ·ç¾îÁø ºñÆ® ÆÐÅÏ ´ë½Å ¾î´À Á¤µµ ÀÌÇØ°¡ µÇ´Â ÀÏÁ¾ÀÇ ¾à¾î(mnemonics)¸¦ »ç¿ëÇϱ⠽ÃÀÛÇß½À´Ï´Ù.
¾à¾î´Â ºñÆ® ÆÐÅÏÀÇ ±â´É ¼³¸íÀ¸·Î ºÎÅÍ ¸¸µé¾îÁø ¿ë¾î¿´½À´Ï´Ù. ¿¹¸¦ µé¸é move, jump, branch°°Àº ½ÄÀÔ´Ï´Ù. ÀÌµé ¸í·É¾î´Â ¾î¼Àºí·¯(assembler)¶ó ºÒ¸®¿ì´Â ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÌÁø¼ö ÆÐÅÏ ÇüÅ·Π¹Ù²ò´Ï´Ù. ÀÌ·¸°Ô Ãà¾à¾î·Î ÀÌ·ç¾îÁø ¾ð¾î¸¦ ¾î¼Àºí¸®¾î(assembly language)¶ó°í ÇÕ´Ï´Ù. ¾î¼Àºí·¯°¡ º¯È¯À» ´ã´çÇÑ µ¥¼ À¯·¡µÈ À̸§ÀÔ´Ï´Ù.
¾î¼Àºí¸®¾î¿Í ±â°è¾î´Â ´ë´ÜÈ÷ »ó¼¼ÇÏ°Ô ÄÄÇ»ÅͰ¡ ÃëÇÒ µ¿ÀÛÀ» ±ÔÁ¤ÇÕ´Ï´Ù. °¢°¢ÀÇ ÀνºÆ®·°¼ÇÀº ±×¾ß¸»·Î ´Ü¼øÇÑ ÀÛ¾÷À» Áö½ÃÇÏ´Â °ÍÀÔ´Ï´Ù. ¸î °³ÀÇ ½ºÀ§Ä¡ »óŸ¦ ¹Ù²Û´ÙµçÁö Àü±âÀûÀ¸·Î¸¸ Àǹ̰¡ ÀÖ´Â ¹Ì¹¦ÇÑ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. ±×·¯¹Ç·Î ¾î¶² ¹®Á¦Á¡À» ÇØ°áÇϱâ À§ÇØ ÇÁ·Î±×·¥À» ¸ðµ¨¸µÇÏ´Â µ¥ °ð¹Ù·Î »ç¿ëµÇ±â¿¡´Â ¹«¸®°¡ ÀÖ¾ú½À´Ï´Ù. ¾î¼Àºí¸®¾î·Î ÀÌ·ç¾îÁö´Â ÇÁ·Î±×·¡¹ÖÀº ¸î¸î ÇÁ·Î±×·¥¿¡ ±¹ÇѵǾî ÀÌ·ç¾îÁö°Ô µË´Ï´Ù.
¾î¼Àºí¸®¾î°¡ ¾ó¸¶³ª ¼¼¼¼ÇÏ°Ô ±ÔÁ¤Çϰí ÀÖ´ÂÁö´Â ¿¹¸¦ µé¾îº¸¸é µÉ °ÍÀÔ´Ï´Ù. ´©±º°¡¿¡°Ô '¸Ô¾î¶ó'´Â ¿äûÀ» ÇÑ´Ù¸é ¾î¼Àºí¸®¾î·Î ÀÌ·¸°Ô Ç¥ÇöµË´Ï´Ù.
'´ç½Å ¿À¸¥ÆÈ¿¡ ºÙÀº ¿À¸¥¼ÕÀ» »¸Ãļ ±× ¿À¸¥¼Õ¿¡ ºÙ¾îÀÖ´Â ¼Õ°¡¶ôÀ» ÀÌ¿ëÇØ¼ Æ÷Å©¸¦ Àâ¾Æ¶ó. ±×¸®°í À½½Ä¹°À» ÀÚ¸£°Å³ª ÆÄ³»¾î¼ ¾Õ¿¡¼ ¸»ÇÑ Æ÷Å©À§¿¡ ¾ñ¾î¶ó. ÀÔÀ» ¹ú¸®°í ¿À¸¥ÆÈÀ» ±¸ºÎ·Á¼ ÀÔÂÊÀ¸·Î °¡Á®°¡¶ó. ÀÔÀ» ÇâÇÑ ¹æÇâÀ¸·Î À½½Ä¹°ÀÌ ÀÔ¿¡ ³Ö¾îÁú ¶§±îÁö ¿À¸¥ÆÈÀ» °è¼Ó ¿òÁ÷¿©¶ó. À½½Ä¹°ÀÌ µµÂøÇÒ ½ÃÁ¡¿£ Æ÷Å© ¿òÁ÷ÀÌ´Â °ÍÀ» ¸ØÃç¶ó.(Æ÷Å©°¡ ´ç½Å ¸Ó¸® µÚ¸¦ °üÅëÇÏÁö ¾Êµµ·Ï) Æ÷Å© µÑ·¹·Î ÀÔÀ» ´Ý°í(³Ê¹« ¼¼°Ô ¸»°í), Æ÷Å©¸¦ »©³»¶ó. À§ °úÁ¤À» Á¢½Ã°¡ ºñ¿öÁú ¶§±îÁö ¹Ýº¹Ç϶ó..'
À̰͵µ ±×´ÙÁö »ó¼¼ÇÏ°Ô ¹¦»çÇÑ °ÍÀº ¾Æ´ÏÁö¸¸, ¾î¼Àºí¸®¾î·Î ÇÁ·Î±×·¡¹ÖÇÑ´Ù´Â °ÍÀÌ ¾î¶² °ÍÀÎÁö ´ë·« ÁüÀÛÇÒ ¼ö ÀÖÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù.
±×·± ½ÄÀ¸·Î 10-20³â Á¤µµ ÄÄÇ»Å͸¦ ´Ù·ç´Ùº¸´Ï ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸ÓµéÀº ´Ü¾î Àǹ̿¡ ´ë´ÜÈ÷ öÀúÁö°Ô µÇ¾ú½À´Ï´Ù. (³Ê¹« °úÇÏ°Ô Ã¶ÀúÇØÁ³½À´Ï´Ù) ÀÌ Á¡À» È®ÀÎÇØ º¸°í ½ÍÀ¸¸é ÂüÀ»¼º ¸¹Àº ¿ì¸® ¿ÍÀÌÇÁ¿¡°Ô ¹°¾îº¸¼¼¿ä. ³»°¡ ÅÚ¸®ºñÁ¯À» °¡¸®°í ÀÖ¾î¼ ¾Æ³»°¡ 'move'¶ó°í ¸»ÇÑ °æ¿ì ³ª´Â ¹®ÀÚ ±×´ë·Î »ì¦ ¿òÁ÷ÀÌ°í ¸¿´Ï´Ù. Á¤È®ÇÏ°Ô ÅÚ¸®ºñÁ¯À¸·ÎºÎÅÍ ºñ۶ó°í ¾ê±âÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌÁÒ. ¶Ç´Â ³» ÁÖº¯¿¡ ÀÖ´Â »ç¶÷µé¿¡°Ô ¹°¾îºÁµµ µË´Ï´Ù. °£´ÜÇÑ Áú¹®À» ÇÑ µÚ ¸î ÆäÀÌÁö¿¡ À̸£´Â ´ë´äÀ» µéÀº »ç¶÷À» ¾î·ÆÀó°Ô ãÀ» ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. -_-;;
¾î¼Àºí¸®¾î´Â '·Î-·¹º§' ¾ð¾î·Î ¾Ë·ÁÁö°Ô µÇ¾ú½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó°¡ ÄÄÇ»ÅÍ¿Í ¸Å¿ì ÇÏÀ§ ¼öÁØ¿¡¼ ¾ê±â¸¦ ³ª´©±â ¶§¹®ÀÔ´Ï´Ù. (½ÇÁ¦ ÄÄÇ»ÅͰ¡ ÀÌÇØÇÏ´Â ¾ð¾î¸¦ ¸»Çϰí ÀÖ´Â °Í°ú ¸¶Âù°¡ÁöÀÔ´Ï´Ù.) ¾î¼Àºí¸®¾îÀÇ ±î´Ù·Î¿î Á¡µéÀ» °³¼±Çϰí ÇÁ·Î±×·¡¸ÓÀÇ »ý»ê¼ºÀ» ³ôÀ̱â À§ÇØ º¸´Ù '»óÀ§'¿¡ Á¸ÀçÇÏ´Â ¾ð¾î°¡ 1960-1970³â´ë¿¡ ¸¸µé¾îÁ® ³ª¿À°Ô ³ª¿É´Ï´Ù.
Æ÷Æ®¶õ(Fortran; FORmular TRANslator)ÀÌ Ãʱ⿡ ³ª¿Â ÇÏÀÌ ·¹º§ ¾ð¾îÀÇ ´ëÇ¥ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ÇÏÀÌ ·¹º§ ¾ð¾î´Â ÇÁ·Î±×·¡¸Ó°¡ Áö³ªÄ¡°Ô ¼¼¼¼ÇÑ ÀνºÆ®·°¼ÇÀ» ³»¸®Áö ¾Ê¾Æµµ µÇµµ·Ï µðÀÚÀÎ µÇ¾ú½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â º¸´Ù ´õ »ý»êÀûÀÌ µÉ ¼ö ÀÖ¾ú°í, º¸´Ù ±Ô¸ð°¡ Å« º¹ÀâÇÑ ÇÁ·Î±×·¥À» ¿ëÀÌÇÏ°Ô ¸¸µé¾î ³¾ ¼ö ÀÖ¾ú½À´Ï´Ù. ÇÏÁö¸¸ ¸ðµç ÄÚµå´Â Á¤È®ÇÏ°Ô ÇÁ·Î±×·¡¸ÓÀÇ Á¶Á÷È Á¤µµ¸¸Å¸¸ ü°èÀûÀ̾ú½À´Ï´Ù. ±×¸®°í ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸Ó´Â ±×´ÙÁö Á¶Á÷ÀûÀ¸·Î »ç°íÇϰí ÀÖÁö´Â ¾Ê¾Ò½À´Ï´Ù. ÇÁ·Î±×·¡¹Öµµ ÀÏÁ¾ÀÇ »õ·Î¿î ±â¼úÀε¥ ¾ÆÁ÷ ÃæºÐÇÑ Æ®·¹ÀÌ´×À» ÇÒ ½Ã°£ÀÌ ¾ø¾ú½À´Ï´Ù. ¸î¸î ÄÚµåµéÀº »ó´çÈ÷ ¿ì¾ÆÇÏ°Ô Àß ¸¸µé¾îÁ³Áö¸¸, ³ª¸ÓÁö´Â À¯Ä¡¿ø»ýÀÌ ÇÇÄ«¼Ò ±×¸²À» Èä³»³½ °Í°ú ºñ½ÁÇß½À´Ï´Ù.
ÀÌ·¸°Ô ¼öÁØÀÌ ¶³¾îÁö´Â ÇÁ·Î±×·¡¸ÓµéÀÌ ¸¸µç Äڵ带 '½ºÆÄ°ÔƼ ÄÚµå(spaghetti code)'¶ó°í ÇÕ´Ï´Ù. ½ºÆÄ°ÔƼ ¸é¹ßÀ» ´õµë¾î °¡´Â °Íó·³ ÇÁ·Î±×·¥ È帧ÀÌ ¹Ì·Îó·³ ¾ôÇô ÀÖ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ¿©±âÀú±â·Î À̵¿ÇÏ´Ù°¡ ¾ôÇô¹ö¸³´Ï´Ù. ÇÏÀÌ ·¹º§ ¾ð¾î¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¡¹ÖÀÌ º¸ÆíÈµÇ¸é¼ ±Ô¸ð°¡ Å©°í ÈξÀ º¹ÀâÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾î³¾ ¼ö ÀÖ¾úÁö¸¸ ±× º¹À⼺ ÀÚü°¡ ¹®Á¦°¡ µË´Ï´Ù. ÇÁ·Î±×·¥ÀÌ ³Ê¹«³ª Ä¿Áö°í º¹ÀâÇØÁ®¼ À¯Áö °ü¸®³ª ¿¡·¯ ¼öÁ¤ÀÌ »ó´çÈ÷ °ï¶õÇß½À´Ï´Ù. À̰ÍÀº °Å´ëÇÑ À¯Áö °ü¸®ºñ·Î ±Í°áµÇ¾ú½À´Ï´Ù ±×·± ÇüÅÂÀÇ ºØ±«´Â º¸´Ù ´ú ÀϾ°í´Â ÀÖÁö¸¸ ¿À´Ã³¯¿¡µµ µå¹® ÀÏÀº ¾Æ´Õ´Ï´Ù.
ÃÊâ±â ÇÏÀÌ ·¹º§ ¾ð¾îÀÇ ¹®Á¦Á¡ Áß Çϳª´Â ¸Å¿ì ÇÑÁ¤µÈ Á¾·ùÀÇ µ¥ÀÌŸ À¯Çü¸¸À» ´Ù·ê ¼ö ÀÖ´Ù´Â Á¡À̾ú½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â ¿ø½ÃÀûÀÎ µ¥ÀÌŸ ŸÀÔ¸¸À» ÀÌ¿ëÇØ¼ ¸ðµç °ÍÀ» ±¸¼ºÇØ º¸·Á Çß½À´Ï´Ù. º¹ÀâÇÑ ÇüÅÂÀÇ µ¥ÀÌŸÇü(Data Type)À» ÀÛ¼ºÇϱâ À§Çؼ´Â ¿ø½ÃÀû µ¥ÀÌŸÇüÀ¸·Î ÀÌ·ç¾îÁø ¹è¿(array)À» ³²¿ëÇÒ ¼ö¹Û¿¡ ¾ø¾ú½À´Ï´Ù. ÇÁ·Î±×·¥ ¿©±âÀú±â¼ ¹è¿À» ¸¸µé¾ú´Ù Ç®¾ú´Ù ÇØ¾ß Çß°í, ÇÑ ¹ø ¿¡·¯°¡ ³ª¸é °ð Ä¡¸íÀûÀÎ °á°ú·Î À̾îÁ³½À´Ï´Ù. ¶ÇÇÑ goto ¶ó´Â ¸í·É¾î¸¦ »ç¿ëÇØ¼ ÇÁ·Î±×·¥ ¿©±âÀú±â¸¦ ¶Ù¾î´Ù´Ï°í Àֱ⵵ Çߴµ¥, goto ¸í·É¾îÀÇ ³²¹ßÀº ½ºÆÄ°ÔƼ Äڵ尡 ´õ¿í ±â½ÂÀ» ºÎ¸®´Â µ¥ ±â¿©ÇÏ°Ô µË´Ï´Ù. ¸ðµÎµé ¹º°¡ °³¼±Ã¥ÀÌ ÇÊ¿äÇÏ´Ù°í ´À³¢±â ½ÃÀÛÇß½À´Ï´Ù.
½ºÆÄ°ÔƼ ÄÚµåÀÇ ¹®Á¦Á¡À» ÇØ°áÇϱâ À§ÇØ ÀýÂ÷Àû ÄÚµå¿Í µ¥ÀÌŸ ±¸Á¶Ã¼°¡ µîÀåÇÕ´Ï´Ù. óÀ½¿¡´Â »õ·Î¿î ¾ð¾î¸¦ ¸¸µêÀ¸·Î½á ½ºÆÄ°ÔƼ ÄÚµå ¹®Á¦¸¦ ÇØ¼ÒÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó°í »ý°¢Çß¾ú½À´Ï´Ù. °á°úÀûÀ¸·Î ÀÌ´Â ½ÇÆÐÇß½À´Ï´Ù. ½ºÆÄ°ÔƼ ÄÚµå´Â ¾ð¾î ÀÚüÀÇ ¹®Á¦Á¡¿¡¼ ºñ·ÔµÇ¾ú´Ù±â º¸´Ù´Â 90% ÀÌ»óÀÌ ÇÁ·Î±×·¡¸ÓÀÇ ÀÚÁú ºÎÁ·À̳ª ºÎ½ÇÇÑ µðÀÚÀο¡¼ ºñ·ÔµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ÇÏÁö¸¸ »õ·Î¿î ¾ð¾î°¡ µµ¿òÀÌ µÈ ¸éµµ ÀÖ±â´Â Çß½À´Ï´Ù. ´Ù¼ÒÀÇ µµ¿òÀ» ÁØ »õ·Î¿î ¾ð¾îµéÀº ÀÚü³»¿¡ µ¥ÀÌŸ ±¸Á¶Ã¼¿Í ÀýÂ÷Àû µðÀÚÀÎÀ» °®Ãß°í ÀÖ¾ú½À´Ï´Ù. ÀýÂ÷Àû ¾ð¾îµéÀº 1970 ³â´ë¿¡¼ 80 ³â´ë¿¡ °ÉÃÄ À¯ÇàµË´Ï´Ù. ´ëÇ¥Àû ÀýÂ÷Àû ¾ð¾î°¡ ÆÄ½ºÄ®(Pascal) °ú C¾ð¾îÀÔ´Ï´Ù.
ÇÁ·Î½ÃÁ®·² Äڵ尡 µîÀåÇϱâ ÀüÀÇ ÇÁ·Î±×·¥Àº ´ÜÁö ±æ°Ô ´Ã¿©¶ß·¯ ³õÀº Äڵ忴½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â ³ª¿µÈ ÄÚµå ¿©±âÀú±â¸¦ ¿Å°Ü´Ù´Ï±â´Â ÇßÁö¸¸, ÇÁ·Î±×·¥³»¿¡ °¢ ÆÄÆ®¸¦ ±¸ºÐÁö¿öÁÖ´Â ¾î¶² °æ°èµµ ¾ø¾ú½À´Ï´Ù. (¿¹¸¦ µéÀÚ¸é °í´ëÀÇ µÑµÑ ¸»¸° ¾çÇÇÁö¿¡ ±â·ÏµÈ ¹®¼¸¦ ¶°¿Ã¸®¸é µË´Ï´Ù.) ÇÁ·Î±×·¡¹Ö Áß¿¡ ¾î´À ÇѰ÷¿¡¼ ´Ù¸¥ °÷À¸·Î À̵¿ÇÏ·Á¸é ±ä ÄÚµå Àüü¸¦ µÚÁ®¾ß¸¸ ÇÏ´Â °íÅ뽺·± °úÁ¤À» °ÅÃÄ¾ß Çß½À´Ï´Ù. ÀýÂ÷(Procedures)´Â Äڵ带 ¸î °³ ´ÜÀ§·Î ±¸ºÐÁö¿öÁÖ´Â ¹æ¹ýÀÔ´Ï´Ù. (¿À´Ã³¯ÀÇ Ã¥µéÀÌ °¢ éÅÍ¿Í ÆäÀÌÁö·Î ±¸ºÐµÇ¾î ÀÖ´Â °Íó·³.) ¾Æ¹« °èÅë ¾øÀÌ Âß ½á³»·Á°£ ³»¿ë ¼Ó¿¡¼ Çì¸Å´ø Á¾·¡ÀÇ ¹æ½Ä´ë½Å ÇÁ·Î±×·¥À» Àß Â¥¿©Áø éÅÍ·Î ±¸ºÐÁþ°í, éÅͳ» °¢ ÆäÀÌÁö·Î º¸´Ù ¿ëÀÌÇÏ°Ô Ã£¾Æ°¥ ¼ö ÀÖ°Ô ¸¸µç °ÍÀÔ´Ï´Ù.
±â¼úÀûÀ¸·Î À̾߱âÇÏÀÚ¸é, ÀýÂ÷Àû ¾ð¾î°¡ µîÀåÇϱâ Àü¿¡µµ 'procedure'°¡ ÀÖ±â´Â Çß½À´Ï´Ù. ÇÏÁö¸¸ ÀýÂ÷¸¦ Ç¥ÁØÈÇÏ°í º¸´Ù ¿¹Ãø°¡´ÉÇÑ ÇüÅ·Π¾²ÀÏ ¼ö ÀÖ°Ô ¸¸µé¾î¼ º¸ÆíÈµÈ °ÍÀº ÀýÂ÷Àû ¾ð¾î µîÀå ÀÌÈÄÀÔ´Ï´Ù.
µ¥ÀÌŸ ±¸Á¶Ã¼(Data structure)´Â º¹ÀâÇÑ µ¥ÀÌŸ ¼¼Æ®¸¦ ÇϳªÀÇ ±×·ì ¶Ç´Â ±¸Á¶·Î ¹¾îÁØ °ÍÀÔ´Ï´Ù. ÃÊâ±â¿¡ Çß´ø ¹æ½Äó·³ ¿ø½ÃÀûÀÎ µ¥ÀÌŸ ÇüÀ¸·Î ÀÌ·ç¾îÁø ¼ö¹é °³ÀÇ ¹è¿À» ³²¹ßÇÏ´Â ´ë½Å ¿©·¯ °³ÀÇ µ¥ÀÌŸÇüÀ» ÇϳªÀÇ ±¸Á¶(structure)·Î ÅëÇÕÇÑ ´ÙÀ½ ¾îµð¼µç ¼Õ½±°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô Çß½À´Ï´Ù. ºñÀ¯¸¦ ÇÏÀÚ¸é, ÃÊâ±â ¹æ½ÄÀº ¸ðµç µ· °è»êÀ» ÀÏ ¿ø Â¥¸®·Î¸¸ Çϰí ÀÖ´Â °ÍÀÌ°í µ¥ÀÌŸ ±¸Á¶´Â 10 ¿ø, 100 ¿ø, 1000 ¿ø, 10000 ¿ø±ÇÀ» »ç¿ëÇϰųª Á¤È®ÇÑ ¾×¼ö¸¦ ±âÀÔÇÑ ¼öÇ¥¸¦ ÀÌ¿ëÇÏ´Â ¹æ½ÄÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
'Æ÷Æ®¶õ ÇÁ·Î±×·¡¸Ó´Â ¾î¶² ¾ð¾î¸¦ ¾²´õ¶óµµ Æ÷Æ®¶õ½ÄÀ¸·Î ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖ´Ù'´Â ³ó´ãÀÌ ÀÖ½À´Ï´Ù. ¹Ù²ã ¸»Çϸé, ¾ð¾î°¡ ¹Ù²î¾ú´Ù´Â »ç½Ç¸¸À¸·Î ¾ð¾î »ç¿ë ¾çÅÂÀÇ º¯È±îÁö À¯µµÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ÀÚÁúÀÌ ¶³¾îÁö´Â ÇÁ·Î±×·¡¸Ó´Â »õ·Î¿î ¾ð¾î·Îµµ ¾ó¸¶µçÁö ½ºÆÄ°ÔƼ Äڵ带 ¸¸µé¾î ³¾ ¼ö ÀÖ¾ú½À´Ï´Ù. ¿¹ÀüÀÇ ±æ°Ô ´Ã¾î ³õÀº ÄÚµå´ë½Å Á¶ÀâÇÑ Ã©ÅÍ¿Í ³»ðÇÑ ÆäÀÌÁö·Î ±¸ºÐµÈ °Í¿¡ ºÒ°úÇÑ Äڵ带 ¸¸µé¾î³¾ ¼ö ÀÖ¾ú½À´Ï´Ù.
¹Ý¸é, ÈǸ¢ÇÑ ÇÁ·Î±×·¡¸Ó´Â ¾ð¾î°¡ ¿¾³¯ °ÍÀ̵ç ÃֽаÍÀ̵ç Ç×»ó ±ò²ûÇϰí Àß Â¥¿©Áø Äڵ带 ÀÛ¼ºÇس½À´Ï´Ù. ºÒÇàÈ÷µµ Á¶±Ý '¶³¾îÁö´Â' ÇÁ·Î±×·¡¸Ó¿Í ÈǸ¢ÇÑ ÇÁ·Î±×·¡¸Ó ¼öÀÇ ºñÀ²Àº Ç×»ó ÀÏÁ¤ÇÏ°Ô À¯ÁöµÇ°í ÀÖ´Â °Íó·³ º¸ÀÔ´Ï´Ù. ¾ð¾î ÀÚüÀÇ ¹ßÀüÀÌ ¾î´ÀÁ¤µµ µµ¿òÀ» ÁÖ±â´Â ÇßÁö¸¸ ±â´ëÇß´ø ¸¸ÅÀÇ º¯È´Â °¡Á®¿ÀÁö ¸øÇß½À´Ï´Ù.
ÄÄÇ»ÅÍ ¾ð¾î µðÀÚÀ̳ʵéÀº ´Ù½Ã Çѹø ÇÁ·Î±×·¡¹Ö »ý»ê¼ºÀ» ³ôÀÏ ¼ö ÀÖ´Â ¹æ¹ýÀ» ã¾Æ ³ª¼·´Ï´Ù. À̹ø ½Ãµµ´Â ±âÁ¸ÀÇ ½Ãµµº¸´Ù ÈξÀ ´õ ±¤¹üÀ§ÇÑ Àǹ̸¦ °¡Áö´Â, ½ÉÁö¾î ÇÁ·Î±×·¥ÀÇ ÆÐ·¯´ÙÀÓ Àüȯ¸¶Àú ¿ä±¸ÇÏ´Â °ÍÀ̾ú½À´Ï´Ù. Á¾·¡¿¡´Â ÄÚµå¶ó´Â ¸»ÀÌ ¼øÂ÷ÀûÀ¸·Î ³ª¿µÈ ÀνºÆ®·°¼Ç ¸ðÀ½À» ¹¾îµÐ ÀýÂ÷¸¦ °¡¸£Å°´Â °ÍÀ̾úÁö¸¸, À̸¦ Çã¹°°í ÇÁ·Î±×·¥À» »õ·Ó°Ô ÀçÁ¤ÀÇÇß½À´Ï´Ù. ÀÌ·± »õ·Î¿î ÇÁ·Î±×·¡¹Ö µðÀÚÀÎÀ» OOP(Object Oriented Programming, °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö)¸¦ ÀÌ¿ëÇÑ OOD(0bject 0riented Design)¶ó°í ÇÕ´Ï´Ù. OOP¿¡ »ç¿ëµÇ´Â »õ·Î¿î ¾ð¾î¿¡´Â ObjectPascal°ú C++, Java µîÀÌ ÀÖ½À´Ï´Ù.
°´Ã¼ ÁöÇâÀº Äڵ带 ÀýÂ÷·Î ±×·ìÁþ´Â °Í¿¡¼ ÇÑ °ÉÀ½ ´õ ³ª¾Æ°¡ ÀýÂ÷¸¦ ¶Ç ´Ù½Ã °´Ã¼(object)·Î ±×·ìÁþ´Â °ÍÀÔ´Ï´Ù. °´Ã¼´Â ƯÁ¤ÀÛ¾÷À» ¼öÇàÇØÁÖ´Â ÄÚµå »Ó¸¸ ¾Æ´Ï¶ó ±× ÀÛ¾÷¿¡¼ ´Ù·ç´Â ¸ðµç µ¥ÀÌŸµµ Æ÷ÇÔÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ±×·ìÁþ±â °³³äÀ» ÀÎĸ½¶·¹À̼Ç(encapsulation)À̶ó°í ÇÕ´Ï´Ù. Äڵ忡¼ ¿øÇÏ´Â ³»¿ëÀ» ã´Â °ÍÀÌ ÈξÀ ´õ ¿ëÀÌÇØÁ³½À´Ï´Ù.
°´Ã¼ ÁöÇâ ¹æ½Ä ÀÌÀü¿¡´Â ÄÚµå ¿©±âÀú±â¸¦ ÀÚÀ¯·ÎÀÌ ¶Ù¾î ´Ù´Ò ¼ö ÀÖ¾ú½À´Ï´Ù. °¢ Äڵ尡 ÇÁ·Î±×·¥³»ÀÇ ¸ðµç µ¥ÀÌŸ¸¦ ¸¶À½´ë·Î º¯°æ½Ãų ¼ö ÀÖ¾ú½À´Ï´Ù. °´Ã¼ÁöÇâ ¹æ½Ä¿¡¼´Â ¸ðµç Äڵ带 ±× Äڵ尡 ´Ù·ê µ¥ÀÌŸ¿Í ÇÔ²² ¹¾î °´Ã¼·Î ±¸ºÐÇØ¼ µ¶¸³½ÃÄ×½À´Ï´Ù. °¢ °´Ã¼´Â ¿ÀÁ÷ ÀÚ½ÅÀÇ µ¥ÀÌŸ¸¸À» ¹Ù²Ü ¼ö ÀÖ°í, ´Ù¸¥ °´Ã¼ÀÇ µ¥ÀÌŸ´Â º¯°æ½Ãų ¼ö ¾ø½À´Ï´Ù. ÁÖ °¢ °´Ã¼ ³»¿¡¼´Â ÀÚÀ¯·Ó°Ô À̵¿ÇÒ ¼ö ÀÖÁö¸¸ ´Ù¸¥ °´Ã¼·Î °Ç³Ê ¶Û ¼ö ¾ø½À´Ï´Ù. ´ë½Å °¢ °´Ã¼´Â º¸´Ù °ø½ÄÈµÈ ¹æ½ÄÀ¸·Î¸¸ »óÈ£ÀÛ¿ëÀ» ÇÒ ¼ö ÀÖ°Ô Çß½À´Ï´Ù. ÀÌ·± °´Ã¼°£ Ä¿¹Â´ÏÄÉÀÌ¼Ç ¹æ½ÄÀ» ÀÏÄÃ¾î ¸Þ½Ã¡(messaging)À̶ó ÇÕ´Ï´Ù. À§¿Í °°Àº ¹æ½ÄÀº ¹ö±×°¡ ¹ß»ýÇÑ °æ¿ì¿¡µµ ±¹¼ÒÀûÀ¸·Î Á¦ÇÑµÇ°í ½±°Ô ã¾Æ³¾ ¼ö ÀÖ´Ù´Â Á¡¿¡¼ ÇÁ·ÎÅØ¼Ç(protection)À̶ó°í ºÒ¸®¿ì±âµµ ÇÕ´Ï´Ù. ÇÑ °´Ã¼ÀÇ µ¥ÀÌŸ¿¡ ¹®Á¦°¡ »ý±ä´Ù¸é ±× °´Ã¼ ¾ÈÀÇ Äڵ常 »ìÆìº¸¸é µË´Ï´Ù. °´Ã¼ ÁöÇâ ¹æ½ÄÀº ȹ±âÀûÀÎ ºñ¿ë Àý°¨À» °¡Á®¿É´Ï´Ù.
OOD°¡ µîÀåÇϱâ Àü¿¡´Â ´Ù¸¥ »ç¶÷ÀÌ ¸¸µç Äڵ带 ÀÌ¿ëÇÑ´Ù´Â °ÍÀÌ ±×¸® ÈçÇÑ ÀÏÀº ¾Æ´Ï¾ú½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â ¾Æ¸¶µµ °øÅëÀûÀ¸·Î ¿î¿µÃ¼°è¸¦ ÀÌ¿ëÇÏ°í ¸î¸î ¶óÀ̺귯¸®µéÀ» »ç¿ëÇϰí ÀÖ¾ú°ÚÁö¸¸ °¢°¢ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå´Â µ¶ÀÚÀûÀ¸·Î È®½ÇÈ÷ ±¸ºÐÀÌ µÇ¾î ÀÖ¾ú½À´Ï´Ù. ÀÌ·± ¹æ½ÄÀº ¸Å¿ì ºñÈ¿À²ÀûÀÎ °ÍÀ¸·Î, ºñ½ÁÇÑ ±â´ÉÀ» ÇÏ´Â Äڵ尡 ÀÌ¹Ì ´Ù¸¥ ÇÁ·Î±×·¡¸Ó¿¡ ÀÇÇØ ¿Ï¼ºµÇ¾î ÀÖÀ½¿¡µµ ºÒ±¸ÇÏ°í ¶Ç ´Ù½Ã ¼Õ¼ö ÀÛ¼ºÇØ¾ß ÇÏ´Â ¹ø°Å·Î¿òÀ» ¾È°ÜÁÖ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ºñÀ¯¸¦ ÇÏÀÚ¸é °´Ã¼¿Í OOD´Â ÄÚµå Á¶¸³ »ý»ê¶óÀο¡ Ç¥ÁØÈµÈ ºÎǰ(component)À» µµÀÔÇÏ¿©, '»ê¾÷Çõ¸í'À» °¡Á®¿Â °Í°ú °°½À´Ï´Ù. °¢ Äڵ带 ±â´Éº°·Î °´Ã¼ÈÇØ¼ ¿Ï¼ºÇØ µÎ¾ú±â ¶§¹®¿¡ Ç¥ÁØÈµÈ ºÎǰó·³ ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ǵµ ¼Õ½±°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. º¸´Ù ¸¹Àº ÄÚµåµéÀÌ Àç»ç¿ëµÉ ¼ö ÀÖ´Ù´Â Á¡Àº »ý»ê¼ºÀÇ ±ÞÁõ°ú ºñ¿ëÀÇ ±Þ°¨À» ÀǹÌÇÕ´Ï´Ù.
°Ô´Ù°¡ OOD´Â ÇÑ °´Ã¼°¡ ´Ù¸¥ °´Ã¼ÀÇ ¸¹Àº Ư¡À»(ÄÚµå¿Í µ¥ÀÌŸ ¸ðµÎ) »ó¼Ó(inherit)ÇÒ ¼ö ÀÖ¾î¼ »õ °´Ã¼ ŸÀÔ¿¡¼´Â ´Þ¶óÁö´Â ºÎºÐ¸¸ ÄÚµùÇÏ¸é µÇ´Â Æú¸®¸ôÇÇÁò(polymorphism)À̶ó´Â ȹ±âÀûÀÎ °³³ä±îÁö °®Ãß°í ÀÖ¾ú½À´Ï´Ù. ¹ö±×°¡ »ý±ä °æ¿ì¿¡µµ »õ °´Ã¼ÀÇ ¼öÁ¤µÈ ºÎºÐ¸¸ »ìÆìº¸¸é µË´Ï´Ù. ÄÚµå Àç»ç¿ëÀ²Àº ´õ¿í ³ô¾ÆÁý´Ï´Ù.
±×·¯¸é °´Ã¼µéÀÇ ¸ðÀ½Àº ¹«¾ùÀ̶ó°í ÇÒ±î¿ä? ƯÈ÷ ¹Ì¸® ÆÐŰÁãµÈ °´Ã¼ ¸ðÀ½À» ÀÏÄ´ ¸»Àº ¹«¾ùÀϱî¿ä? ´äÀº ÇÁ·¹ÀÓ¿÷(Framework)ÀÔ´Ï´Ù. ÇÁ·¹ÀÓ¿÷Àº ÀÏÁ¾ÀÇ ¼öÆÛ ¶óÀ̺귯¸®¶ó°í ÇÒ ¼ö ÀÖ°ÚÁö¸¸, ÀÎĸ½¶·¹À̼ǰú Æú¸®¸ôÇÇÁòÀÌ °¡´ÉÇϱ⠶§¹®¿¡ ÈξÀ ´õ Áõ°µÈ »ý»ê¼º°ú ÆÄ¿ö¸¦ °®°í ÀÖ½À´Ï´Ù. ¿î¿µÃ¼°èÀÇ ºÎºÐºÎºÐµµ ÇÁ·¹ÀÓ¿÷½º·Î ¹Ì¸® ÆÐŰÁãÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹Ì¸® ÀÛ¼ºµÈ ¸¹Àº ¾ÖÇø®ÄÉÀÌ¼Ç ½©µéÀº ¿ÏÀüÇÑ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÇÊ¿äÇÑ ±â´É¸¸ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿÷(Application Framework) À̶ó°í ÇÕ´Ï´Ù. ±× ¿Ü¿¡µµ ÇÁ·Î±×·¡¸ÓµéÀÇ »ý»ê¼ºÀ» ³ô¿©ÁÙ ¸¹Àº Á¾·ùÀÇ ÇÁ·¹ÀÓ¿÷½ºµéÀÌ ³ª¿ÍÀÖ½À´Ï´Ù.
Áß¿äÇѰÍÀº º¸´Ù ¸¹Àº Äڵ尡 ´©±º°¡ ´Ù¸¥ »ç¶÷¿¡ ÀÇÇØ ÀÛ¼ºµÉ ¼ö ÀÖ°Ô µÊ¿¡ µû¶ó ´õ¿í ÈǸ¢ÇÑ ÄÚµåµéÀÌ ¸¹ÀÌ ¸¸µé¾îÁö°Ô µÇ¾ú°í, °¢ ÇÁ·Î±×·¡¸Ó´Â ´õ¿í ÀûÀº ¾çÀÇ Äڵ常À¸·Î ´õ¿í ÈǸ¢ÇÑ °á°ú¸¦ ¸¸µé ¼ö ÀÖ°Ô µÇ¾ú´Ù´Â Á¡ÀÔ´Ï´Ù. ½Ã°£Àº Àû°Ô °É¸®¸é¼µµ ´õ¿í ¸¹Àº ÀÏÀ» ÇØ³¾ ¼ö ÀÖ°Ô µÈ °ÍÀÔ´Ï´Ù. À̰ÍÀÌ ¹Ù·Î OOD°¡ °¡Á®´Ù ÁØ º¯ÈÀ̸ç, ÇÁ·Î±×·¡¸Ó¿¡°Ô ÇÁ·¹ÀÓ¿÷½º´Â ÇϳªÀÇ ÃູÀ̶ó°í±îÁö ÀÏÄþîÁö´Â ÀÌÀ¯ÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸Ó¿¡°Ô ÇýÅÃÀÌ Å©¸é Ŭ¼ö·Ï ±× °á°ú´Â ¸ðµÎ »ç¿ëÀÚ¿¡°Ô µ¹¾Æ°©´Ï´Ù.
