1-3.°³¹ßÅø

1-3-°¡.ÄÄÆÄÀÏ·¯

ÇÁ·Î±×·¥À» §´Ù´Â °ÍÀº »ç¿ëÇÏ´Â ¾ð¾îÀÇ ¹®¹ý¿¡ ¸Â°Ô ¸í·ÉµéÀ» ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù. °¡·É 1+2¸¦ °è»êÇÏ¿© °á°ú¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù¸é "1+2¸¦ °è»êÇ϶ó", "Ãâ·ÂÇ϶ó"¶ó´Â ¸í·ÉÀ» ÀÛ¼ºÇؼ­ ÆÄÀÏ·Î ÀúÀåÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô ¾ð¾îÀÇ ¹®¹ý¿¡ ¸Â°Ô ¸í·ÉµéÀ» ±â¼úÇÑ ÆÄÀÏÀ» ¿ø½Ã ÆÄÀÏ(Source File)À̶ó°í ÇÏ¸ç ¿ø¹® ±×´ë·Î ¼Ò½º¶ó°í ºÎ¸¥´Ù.

¼Ò½º´Â °í±Þ ¾ð¾î·Î ÀÛ¼ºµÇ¾î Àֱ⠶§¹®¿¡ ÄÄÇ»ÅͰ¡ ¹Ù·Î ÀÌÇØÇÒ ¼ö ¾øÀ¸¸ç µû¶ó¼­ ½ÇÇàÇÒ ¼öµµ ¾ø´Ù. ÄÄÇ»ÅÍ´Â ¿À·ÎÁö ÀÌÁø¼ö·Î µÈ ±â°è¾î¹Û¿¡ ¾Ë¾ÆµèÁö ¸øÇÑ´Ù. ±×·¡¼­ ¼Ò½º¸¦ ÄÄÇ»ÅͰ¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â ±â°è¾î ÄÚµå·Î ¹ø¿ªÇØ¾ß Çϴµ¥ ÀÌ µ¿ÀÛÀ» ÄÄÆÄÀÏ(Compile)À̶ó°í ÇÑ´Ù. ÄÄÆÄÀÏÀ̶õ ¼Ò½º¿¡ ÀÛ¼ºµÈ ¸í·ÉµéÀ» ÄÄÇ»ÅÍ ¾ð¾îÀÎ ±â°è¾î·Î ¹ø¿ªÇÏ´Â ÀÛ¾÷À̸ç ÄÄÆÄÀÏÀ» ÇÏ´Â ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ·¯(Compiler)¶ó°í ºÎ¸¥´Ù.

ÄÄÆÄÀÏ·¯´Â ¼Ò½º ÆÄÀÏ¿¡ ÀÛ¼ºµÈ °í±Þ ¾ð¾î ¸í·ÉÀ» ÇØ¼®ÇÏ¿© ±â°è¾î ÄÚµå·Î ¹Ù²Ù°í ±× °á°ú¸¦ ¸ñÀû ÆÄÀÏ(Object File)¿¡ ½á ³Ö´Â´Ù. Áï ÄÄÆÄÀÏ·¯´Â ¼Ò½º ÆÄÀÏÀ» ¸ñÀû ÆÄÀÏ·Î ¹Ù²Ù´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¸ñÀû ÆÄÀÏÀº ¼Ò½ºÀÇ ¸í·ÉµéÀ» ¹ø¿ªÇÑ ±â°è¾î Äڵ带 °¡Áø ÆÄÀÏÀÌµÇ ÀÌ ÆÄÀϵµ °ð¹Ù·Î ½ÇÇàÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇϸé ÇÁ·Î±×·¥Àº ±â°è¾î ÄÚµå¿Ü¿¡µµ ¿î¿µÃ¼Á¦°¡ ¿ä±¸ÇÏ´Â Äڵ带 Ãß°¡·Î °¡Á®¾ß Çϱ⠶§¹®ÀÌ´Ù.

¸ñÀû ÆÄÀÏÀ» ½ÇÇà ÆÄÀÏ·Î ¹Ù²Ù±â À§Çؼ­´Â ÀÌ ½ÇÇà ÆÄÀÏÀÌ ¿î¿µÃ¼Á¦ÀÇ ¿ä°Ç¿¡ ¸Âµµ·Ï ÇüŸ¦ Á¶±Ý ¹Ù²Ù°í ½ºÅ¸Æ®¾÷(StartUp)À̶ó´Â Ãß°¡ Äڵ带 °¡Á®¾ß ÇÑ´Ù. ¸ñÀû ÆÄÀÏ¿¡ ÀÌ·± 󸮸¦ ÇÏ¿© ½ÇÇà ÆÄÀÏ·Î ¸¸µå´Â µ¿ÀÛÀ» ¸µÅ©(Link)¶ó°í ÇÏ¸ç ¸µÅ©¸¦ ÇØ ÁÖ´Â ÇÁ·Î±×·¥À» ¸µÄ¿(Linker)¶ó°í ºÎ¸¥´Ù. ÇϳªÀÇ ÇÁ·Î±×·¥ÀÌ ÀÛ¼ºµÇ´Â °úÁ¤Àº ´ÙÀ½°ú °°ÀÌ ±×¸± ¼ö ÀÖ´Ù.

¼Ò½º ÆÄÀÏÀº ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÄÄÆÄÀÏµÇ¾î ¸ñÀû ÆÄÀÏÀÌ µÇ¸ç ¸ñÀû ÆÄÀÏÀº ¸µÄ¿¿¡ ÀÇÇØ ¸µÅ©µÇ¾î ÃÖÁ¾ÀûÀ¸·Î ½ÇÇà °¡´ÉÇÑ ½ÇÇà ÆÄÀÏÀÌ µÈ´Ù. ÀÌ·¸°Ô ÄÄÆÄÀϰú ¸µÅ©¸¦ ÅëÇØ ½ÇÇà ÆÄÀÏÀ» ¸¸µå´Â °úÁ¤À» ºôµå(Build)¶ó°í ÇÑ´Ù. ¼Ò½º ÆÄÀÏÀ» ¹ø¿ªÇÏ¿© °ð¹Ù·Î ½ÇÇà ÆÄÀÏÀ» ¸¸µéÁö ¾Ê°í ¸ñÀû ÆÄÀÏÀ̶ó´Â Áß°£ °úÁ¤À» °ÅÄ¡´Â ÀÌÀ¯´Â ¿©·¯ °³ÀÇ ¼Ò½º¸¦ ÇÕÃÄ ÇϳªÀÇ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î³¾ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ÇϳªÀÇ ¼Ò½º¿¡ ÇÊ¿äÇÑ ¸ðµç ¸í·ÉÀ» ´Ù ±â¼úÇÒ ¼ö ¾øÀ¸¹Ç·Î ¼Ò½º¸¦ ¿©·¯ °³ ÀÛ¼ºÇϰí À̰ÍÀ» ¸ðµÎ ¿¬°áÇÏ¸é ¿ÏÀüÇÑ ½ÇÇà ÆÄÀÏ Çϳª°¡ ³ª¿Â´Ù.

A.cpp¸¦ ÄÄÆÄÀÏÇÏ¿© A.obj¸¦ ¸¸µé°í B.cpp, C.cpp´Â °¢°¢ B.obj, C.obj¸¦ ¸¸µç´Ù. °¢ ¸ñÀû ÆÄÀÏÀº ¼Ò½º ÆÄÀÏÀÇ ¸í·ÉÀ» ¹ø¿ªÇÑ ±â°è¾î Äڵ带 °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¸°Ô °³º° ¼Ò½º¸¦ ÄÄÆÄÀÏÇØ¼­ ¸¸µé¾îÁø ¼¼ °³ÀÇ ¸ñÀû ÆÄÀÏÀ» ¿¬°áÇϸé ÇϳªÀÇ ½ÇÇà ÆÄÀÏÀÌ µÇ¸ç ¸µÅ© ´Ü°è¿¡¼­ ÀÌ¹Ì ¸¸µé¾îÁø ¶óÀ̺귯¸®µµ °áÇյȴÙ. ÀÌ·± ½ÄÀ¸·Î ¼Ò½º¸¦ ¿©·¯ °³ ÀÛ¼ºÇؼ­ ÃÖÁ¾ÀûÀ¸·Î ¸µÅ©ÇÏ´Â ¹æ½ÄÀ» ºÐÇÒ ÄÄÆÄÀÏÀ̶ó°í Çϴµ¥ ¿©·¯ »ç¶÷ÀÌ °°ÀÌ ÀÛ¾÷Çϰųª ±â´Éº°·Î ¸ðµâÀ» °³¹ßÇÒ ¶§ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.

¸ñÀû ÆÄÀÏÀº °³¹ß ¾ð¾î¿¡ µ¶¸³ÀûÀÎ Çü½ÄÀ» °¡Áö°í Àֱ⠶§¹®¿¡ ÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â µ¥ ¿©·¯ °³ÀÇ ¾ð¾î¸¦ °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î À§ ±×¸²¿¡¼­ A.cpp´Â C·Î ÀÛ¼ºÇϰí B.cpp´Â ÆÄ½ºÄ®·Î, C.cpp´Â º£ÀÌÁ÷À¸·Î ÀÛ¼ºÇß´Ù°í ÇÏÀÚ. À̶§ °¢ ¾ð¾îÀÇ ÄÄÆÄÀÏ·¯´Â ÀÚ½ÅÀÇ ¼Ò½º¸¦ ÇØ¼®ÇÏ¿© ¸ñÀû ÆÄÀÏÀ» ¸¸µé °ÍÀ̰í ÀÌ·¸°Ô ¸¸µé¾îÁø ¸ñÀû ÆÄÀÏÀº ¸µÄ¿¿¡ ÀÇÇØ ¿¬°áµÇ¾î ÇϳªÀÇ ¿Ï¼ºµÈ ½ÇÇà ÆÄÀÏÀÌ µÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î ¿©·¯ °³ÀÇ ¾ð¾î¸¦ °°ÀÌ »ç¿ëÇÏ´Â ¹æ½ÄÀ» È¥ÇÕ ÇÁ·Î±×·¡¹ÖÀ̶ó°í Çϴµ¥ °¡´ÉÀº ÇÏÁö¸¸ ¹ø°Å·Î¿î ¹®Á¦°¡ ¸¹±â ¶§¹®¿¡ ±×¸® ÀϹÝÀûÀÌÁö´Â ¾Ê´Ù.

ÇϳªÀÇ ½ÇÇà ÆÄÀÏÀ» ¸¸µé·Á¸é ÆíÁý±â·Î ¸í·ÉµéÀ» ±â¼úÇÏ¿© ¼Ò½º¸¦ ¸¸µé°í ÀÌ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ¿© ¸ñÀû ÆÄÀÏ·Î ¸¸µç ÈÄ ´Ù½Ã ¸µÅ© °úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù. ºÒ°ú ¾ó¸¶Àü±îÁö¸¸ ÇØµµ ÇÁ·Î±×·¡¸Ó´Â ÀÌ ¹ø°Å·Î¿î °úÁ¤À» °ÅÃľ߸¸ ½ÇÇà ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ¾ú´Âµ¥ ¿©·¯ ´Ü°è¸¦ °ÅÃÄ¾ß Çϱ⠶§¹®¿¡ ¹«Ã´ ºÒÆíÇß´Ù. ¾ÆÁ÷µµ ÀϺΠ¸®´ª½º, À¯´Ð½º ȯ°æ¿¡¼­´Â ÀÌ ¹æ¹ý´ë·Î °³¹ßÇÑ´Ù.

ÃÖ±ÙÀÇ °³¹ßÅøµéÀº ÀÚü¿¡ ÆíÁý±â, ÄÄÆÄÀÏ·¯, ¸µÄ¿¸¦ ¸ðµÎ ³»ÀåÇϰí Àֱ⠶§¹®¿¡ ÇÑ ¹ø¿¡ ¼Ò½º¸¦ ½ÇÇà ÆÄÀÏ·Î ¹Ù²Ü ¼ö ÀÖ´Ù. »Ó¸¸ ¾Æ´Ï¶ó µð¹ö°Å, ÇÁ·ÎÆÄÀÏ·¯, ¸®¼Ò½º ÆíÁý±â µî °³¹ß¿¡ ÇÊ¿äÇÑ ÆíÀÇ ±â´É±îÁö °°ÀÌ Á¦°øÇϴµ¥ ÀÌ·± ȯ°æÀ» ÅëÇÕ °³¹ß ȯ°æ(IDE, Integrated Development Environment)À̶ó°í ºÎ¸¥´Ù. ½±°Ô ¸»Çؼ­ Á¾ÇÕ ¼±¹° ¼¼Æ®Âë µÈ´Ù. °³¹ß ȯ°æ ³»¿¡¼­ ÆíÁý, °³¹ß, µð¹ö±ë, ÃÖÀûÈ­±îÁö ´Ù ÇÒ ¼ö Àֱ⠶§¹®¿¡ ¹«Ã´ Æí¸®ÇÏ¸ç »ý»ê¼º Çâ»ó¿¡ Å©°Ô ±â¿©Çϰí ÀÖ´Ù.

¿ë¾îÀÇ ¿ø·¡ ¶æ¸¸À¸·Î º»´Ù¸é ÄÄÆÄÀÏ·¯¶õ ¼Ò½º ÆÄÀÏÀ» ¸ñÀû ÆÄÀÏ·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥À» ÀǹÌÇϴµ¥ ¿äÁòÀº ÅëÇÕ °³¹ß ȯ°æÀÌ ¿ö³« ÀϹÝÈ­µÇ¾ú±â ¶§¹®¿¡ °³¹ß ȯ°æ ÀÚü¸¦ ÄÄÆÄÀÏ·¯¶ó°í ºÎ¸¥´Ù. ¹®¼­ ÀÛ¾÷½Ã¿¡ ¿öµå ÇÁ·Î¼¼¼­¸¦ »ç¿ëÇÏ°í °è»êÀ» ÇÒ ¶§ ½ºÇÁ·¹µå ½¬Æ® ÇÁ·Î±×·¥À» ¾²´Â °Íó·³ °³¹ß ÀÛ¾÷À» ÇÒ ¶§´Â ÁÖ·Î ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÑ´Ù.