C/C++¿Í ÀÚ¹Ù ¾ð¾îÀÇ ºñ±³ (generic definition)


[ Follow Ups ] [ Post Followup ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]

Posted by ±è´öÅ on August 11, 1997 at 19:29:48:


±è Çü ±¹ wrote:
>
> ½ã(Sun Microsystems)»ç°¡ ¸ÁÇÏÁö ¾Ê´Â ÀÌ»ó
> Á» ÀÖÀ¸¸é ÀÚ¹Ù¿¡ generic definition ±â´ÉÀÌ Ãß°¡µË´Ï´Ù.
> (³Ê¹« È®½Å¿¡ Âù ¹ß¾ðÀΰ¡ ?...)


Àú´Â ±×·± Á¤º¸¸¦ º» ÀûÀÌ ¾ø½À´Ï´Ù.
¾îµð¼­ ±×·± Á¤º¸¸¦ ¾òÀ¸¼Ì´ÂÁö ¸ð¸£°ÚÁö¸¸, ´ÜÁö ÃßÃøÀÌ
¾Æ´Ï½Ã¶ó¸é, Á¤º¸ ¼Ò½º¸¦ ¾Ë·ÁÁֽñ⠹ٶø´Ï´Ù.
±×·± ÀÏÀÌ ÀϾ °¡´É¼ºÀÌ ¸Å¿ì Èñ¹ÚÇÏ´Ù°í »ý°¢ÇÏ°í Àֱ⶧¹®ÀÔ´Ï´Ù.
¿ì¼±, generic definitionÀ̶õ °ÍÀÌ Á¤È®È÷ ¾î¶² °ÍÀ» ÀǹÌÇÏ´Â °ÍÀ¸·Î
»ç¿ëÇϽŠ°ÍÀÎÁö´Â ¸ð¸£°ÚÀ¸³ª, #define, typedef¿Í °°Àº alias±â´É°ú
C++ÀÇ template°ú °°Àº generic type definition 2°¡Áö¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Î
º¸°Ú½À´Ï´Ù.


1. #defineÀÇ ±â´É
- »ó¼ö¸¦ Á¤ÀÇÇÏ´Â ¿ëµµ
ÀÚ¹ÙÀÇ Å¬·¡½º »ó¼ö·Î ÃæºÐ


- ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â ¿ëµµ (º¸Åë ¼Óµµ¶§¹®)
ÀÚ¹ÙÀÇ º¸Åë ¸Þ½îµå·Î ÃæºÐ (¼Óµµ¸¦ ¿Ã¸®±âÀ§Çؼ­´Â final·Î
¸Þ½îµå¸¦ ¼±¾ðÇÏ°í, ÄÄÆÄÀÏÇÒ ¶§ javac -OÀ¸·Î ÄÄÆÄÀÏÇϸé
º¸Åë inlineÀÌ µÇ¾î ¸ÅÅ©·Î¿Í °°Àº ¼Óµµ °³¼± È¿°ú¸¦ °¡Áö³ª,
ÀÌ´Â ÀÚ¹ÙÀÇ HotSpot ±â¼ú°ú °°Àº ½ÇÇà½Ã¿¡
ÃÖÀûÈ­ÇÏ´Â ±â¼úÀÌ ÀϹÝÈ­µÉ ¶§´Â ±×·² ÇÊ¿ä°¡ ¾ø¾îÁý´Ï´Ù.
µû¶ó¼­, C/C++ ¼³°è ¸¶Àε庸´Ù´Â ÈÙ¾À ´õ Àΰ£ÀûÀÔ´Ï´Ù.
±×·±ÀÏÀº ±Ã±ØÀûÀ¸·Î ÄÄÇ»ÅÍ°¡ ÇØ ÁÙ ÀÏÀÌÁö,
»ç¶÷ÀÌ ÇÒ ÀÏÀÌ ¾Æ´Ï±â¶§¹®ÀÔ´Ï´Ù.)


- ¾ð¾îÀÇ ÀϺΠ¹®¹ýÀ» ¹Ù²Ù¾îÁÖ´Â ±â´É
ÀÌ°ÍÀÌ °ú¿¬ ¹Ù¶øÁ÷ÇÒ±î¿ä?
ÀÌ°É ³²¿ëÇϸé, °ÅÀÇ ´Ù¸¥ ¾ð¾îó·³ º¸¿©¼­ ÀÌÇØÇϱâ
°ï¶õÇÑ ÇÁ·Î±×·¥ÀÌ µÇ¸é¼­µµ, ±× ±â´É¼ºÀº ÃæºÐÇÏÁö ¸øÇÕ´Ï´Ù.
ÀÌ·± ¿ëµµ´Â ÀÚ¹Ù ¾ð¾î¸¦ È®ÀåÇÏ´Â °Íº¸´Ù´Â
ƯÁ¤ ¿ëµµ¿¡ ¸Â´Â ÀÚ¹Ù È®Àå ¹®¹ýÀ» µû·Î Á¤ÀÇÇÏ°í
À̸¦ ó¸®ÇÏ´Â Àü󸮱⸦ ¸¸µé¾î, ÀÌ Àü󸮱⿡ ÀÇÇØ
ÀÚ¹Ù ¼Ò½º Äڵ带 »ý¼ºÇÏ´Â °ÍÀÌ ´õ °­·ÂÇϸç Æí¸®ÇÒ °ÍÀÔ´Ï´Ù.
À̹Ì, ÀÚ¹Ù¿ë ÄÄÆÄÀÏ·¯-ÄÄÆÄÀÏ·¯³ª JDBCº¸´Ù ´õ Æí¸®ÇÑ
ÀÚ¹Ù¿¡¼­ÀÇ embedded SQLÀº ÀÌ·¯ÇÑ ¹æÇâÀ¸·Î ³ª°¡°í ÀÖ½À´Ï´Ù.


2. typedef ±â´É
ÀÌÀü¿¡ Á¦°¡ ¿Ã¸° ¿¹Á¦ ÇÁ·Î±×·¥°ú °°ÀÌ Å¬·¡½º³ª ÀÎÅÍÆäÀ̽º·Î °¡´ÉÇÕ´Ï´Ù.


3. template ±â´É
- C++ÀÇ class template, function templateÀº ±× ±âº»ÀûÀÎ °³³äÀº
»ó´çÈ÷ ±ò²ûÇÏ°í °­·ÂÇϸç, ÄÄÆÄÀϽÿ¡ Á»´õ ¾ö¹ÐÇÏ°Ô Çü°Ë»ç¸¦
ÇÒ ¼ö ÀÖ´Ù´Â µîÀÇ ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¶ÇÇÑ, À̸¦ ÀÌ¿ëÇÏ¿©
¸¸µç STL (Standard Template Library)·Î ÀÎÇØ C++ÀÇ È®»ê¿¡
Áß¿äÇÑ ¿ä¼Ò°¡ µÇ¾ú´Ù°í ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù.
- ±×·¯³ª, ÇöÀçÀÇ templateÀº »ó´çÈ÷ º¹ÀâÇÑ ¹®¹ýÀ» °¡Áö¸ç,
¾î´À ½ÃÁ¡¿¡¼­ template instance¸¦ ¸¸µé¾î³»¾ß ÇÒ °ÍÀΰ¡°¡
¾ö¹ÐÇÏ°Ô Ç¥ÁØÈ­µÇ¾î ÀÖÁö ¾Ê¾Æ¼­, »ç¿ë ȯ°æ¸¶´Ù Àú¸¶´Ù
´Ù¸¥ ¹æ½ÄÀ» »ç¿ëÇÕ´Ï´Ù.
ÀÚ¹Ù¿¡ templateÀÌ µµÀԵȴٸé, ÀÌµé ¹®Á¦°¡ ÇØ°áµÇ¾î¾ß ÇÒ °ÍÀ̳ª,
½¬¿î ¹®Á¦´Â ¾Æ´Ï¶ó°í »ý°¢Çϸç, ±ú²ýÇÑ ÇØ°áÃ¥ÀÌ °ú¿¬ Á¸ÀçÇÏ´Â Áö
Àú·Î¼­´Â Àß ¸ð¸£°Ú½À´Ï´Ù.
- ÀÚ¹Ù¿¡¼­´Â STL¿¡ ´ëÀÀÇÏ°í, ±× ±â´É¼ºÀ» °®´Â, ±×·¯³ª ±âÁ¸ÀÇ
¹®¹ý¸¸À¸·Î ¸¸µç Ç¥ÁØ ÆÐÅ°ÁöÀÎ Collection API¸¦ ÁغñÇÏ°í ÀÖ½À´Ï´Ù.
(java.util¿¡µµ Vector³ª StackµîÀÌ ÀÖÁö¸¸, ¶óÀ̺귯¸® Àü¹®°¡°¡
¸¸µç °ÍÀÌ ¾Æ´ÔÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. Á» Á¶ÀâÇÏÁö¿ä.)
±×·¡¼­, ÀÌ ºÐ¾ß¿¡¼­ µÎ°¢À» ³ªÅ¸³»´Â objectspace»çÀÇ
jgl (Java Generic Library) ÆÐÅ°Áö¸¦ ¸ðµ¨·Î ÇÏ¿© ¼öÁ¤À» °¡ÇÑ ÈÄ,
Ç¥ÁØÈ­ µÉ °ÍÀÔ´Ï´Ù.
µû¶ó¼­, templateÀ» ÀÚ¹Ù¿¡ µµÀÔÇؾ߸¸ ÇÏ´Â Àý´ëÀû Çʿ伺Àº
ÀÏ´Ü ¾ø´Â ¼ÀÀ̹ǷÎ, µµÀÔµÇÁö ¾ÊÀ» °¡´É¼ºÀÌ ³ô´Ù°í º¾´Ï´Ù.
- ÀÚ¹Ù¿¡¼­ template¿¡ ´ëÀÀÇÏ´Â ¹æ¹ýÀº ¸ðµç ¹è¿­°ú °´Ã¼´Â ¸ðµÎ
Object Ŭ·¡½ºÀÇ ÇÏÀ§ ÀÚ·áÇüÀ̶ó´Â °Í°ú À̵é ÂüÁ¶ÇüÀÇ Çüº¯È¯,
½ÇÇà½Ã Çüº¯È¯ °Ë»ç, Integer¿Í °°Àº wrapper Ŭ·¡½º¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.
°¡·É, java.util ÆÐÅ°ÁöÀÇ Vector Ŭ·¡½º´Â Object Ŭ·¡½ºÀÇ °´Ã¼ ¹è¿­À»
°®´Â °´Ã¼¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµÇ³ª, ¾ð±ÞÇÑ ±â´ÉÀ» »ç¿ëÇÏ¿©
Date °´Ã¼ÀÇ Vector, int °ªÀÇ Vector¸¦ ¸ðµÎ ÇϳªÀÇ Å¬·¡½ºÀÎ Vector·Î
ÇØ°áÇÕ´Ï´Ù.
ÀÌ¿Í °°ÀÌ »ç¿ëÇßÀ» ¶§ÀÇ ¹®Á¦Á¡Àº
1. ±âº»ÀÚ·áÇü ÀڷḦ »ç¿ëÇÒ ¶§´Â wrapper Ŭ·¡½º °´Ã¼¸¦ ¸¸µé¾î
º¯È¯½ÃÄÑ¾ß ÇÑ´Ù.
¿¹) Vector vec = new Vector(); vec.addElement(new Integer(3));
2. ÄÄÆÄÀϽÿ¡ ¿ÏÀüÇÏ°Ô ÀÚ·áÇü °Ë»ç°¡ ÀÌ·ç¾îÁöÁö ¾Ê°í, ½ÇÇà½Ã°£¿¡
ÀÚ·áÇü °Ë»ç°¡ ÀÌ·ç¾îÁø´Ù.
¿¹) int i = ((Integer) vec.elementAt(0)).intValue();
// vec.elementAt(0) ÂüÁ¶°ªÀÌ ³ªÅ¸³»´Â °´Ã¼ÀÇ ½ÇÁ¦ ÀÚ·áÇüÀÌ
// Integer°¡ ¾Æ´Ï¸é, ClassCastException ¹ß»ý
3. ¼Ò½º Äڵ忡¼­ Vector¶ó´Â ÀÚ·áÇü¸¸À¸·Î´Â ¾î¶² ÀÚ·áÇüÀÇ
°´Ã¼·Î ÀÌ·ç¾îÁø °ÍÀÎÁö¸¦ ¾Ë±â ¾î·Æ´Ù.
¿¹) vec¿¡´Â ¾î¶² ÀÚ·áÇüÀÇ °´Ã¼°¡ µé¾î°¡ÀÖ´Â °ÍÀϱî?
==> ¹®¼­È­ÇØ¾ß ÇÕ´Ï´Ù.
Vector vec = new Vector(); // IntegerÀÇ Vector
ÀÌ¿Í °°ÀÌ ÇÁ·Î±×·¡¹ÖÇÏ´Â °ÍÀÌ ÀÚ¹Ù¿¡¼­´Â ÀϹÝÈ­µÈ ¹æ¹ýÀÔ´Ï´Ù.
¹®¹ý ÀÚü´Â º¹ÀâÇÏÁö ¾ÊÀ¸¸é¼­µµ °­·ÂÇÏÁö¸¸,
»ç¿ëÇϱ⿣ ´Ù¼Ò ºÒÆíÇÏÁö¿ä.



ÀÚ¹ÙÀÇ Àǹ̷ÐÀÌ C/C++º¸´Ù ½±´Ù¶ó°í ´ÜÁ¤ÀûÀ¸·Î ¸»Çϱâ´Â °ï¶õÇÕ´Ï´Ù.
±×·¯³ª, C/C++¿Í ºñ±³ÇÑ´Ù¸é ´ÙÀ½ °¢ ºÎ·ù¿¡ µû¶ó ´Þ¶óÁú °ÍÀÔ´Ï´Ù.


1. ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ óÀ½ Á¢ÇÏ´Â Ãʺ¸ÀÚ
C/C++´Â Ŭ·¡½º °³³ä¾øÀÌ ¹è¿ì°í, »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç,
ÈÄ¿¡ Ŭ·¡½º¿Í °°Àº OOP°³³äÀ» Ãß°¡ÀûÀ¸·Î ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.
Áï, ´Ü°èÀûÀ¸·Î ¹è¿ï ¼ö ÀÖÀ¸³ª, ÀÚ¹Ù¿¡¼­´Â Ŭ·¡½º, °´Ã¼,
ÂüÁ¶°ªÀÇ °³³ä¿¡ ÀÏÂï Àͼ÷ÇØÁ®¾ß ÇϹǷÎ, ´õ ¿©·Á¿ï ¼ö
ÀÖ½À´Ï´Ù.
±×·¯³ª, ÈÄ¿¡ ºñ½ÁÇÏÁö¸¸ ¾à°£¾¿ ´Ù¸¥ ´Ù¾çÇÑ ¾ð¾î ±â´É ¹× À̸¦ Áö¿øÇÏ´Â
º¹ÀâÇÑ ¹®¹ý ±¸Á¶¿Í ±× Àǹ̿¡ Àͼ÷ÇØÁö´Â µ¥ ¾î·Á¿òÀ»
°Þ°Ô µÉ °ÍÀ̸ç, ¶ÇÇÑ ±×µ¿ÇÑ ¹è¿î ¾ð¾îÀÇ Ç³ºÎÇÑ ±â´É¼ºÀ» Á¦´ë·Î
ÀÌ¿ëÇغ¸Áöµµ ¸øÇÏ´Â °æ¿ì°¡ ¸¹À» °ÍÀÔ´Ï´Ù. (ƯÈ÷, C++)


2. C/C++¿¡ °æÇèÀÌ ÀÖ´Â ÀÚ
C/C++ÀÇ Àǹ̷аú ÀÚ¹ÙÀÇ Àǹ̷ÐÀÇ Â÷ÀÌ°¡ »ó´çÇϱ⠶§¹®¿¡
ÀÚ¹Ù¿¡¼­ÀÇ Å¬·¡½º, °´Ã¼, ÂüÁ¶°ªÀÇ Àǹ̸¦ ÀÚ¼¼È÷
¾Ë ÇÊ¿ä°¡ ÀÖÀ¸¸ç, ±×·¸Áö ¾ÊÀ¸¸é ¹®¹ý»ó °Ñº¸±â¿¡ ºñ½ÁÇÏ´ÙÇÏ¿©
Àǹ̷еµ ºñ½ÁÇÏ´Ù°í »ý°¢ÇÏ¸é »ó´çÈ÷ È¥¶õ¿¡ ºüÁö°Ô µË´Ï´Ù.
ÀÚ¹ÙÀÇ ¸Þ¸ð¸® ¸ðµ¨°ú °´Ã¼µî¿¡ ´ëÇؼ­ Á» ÀÚ¼¼ÇÏ°Ô
¼Ò°³µÈ Ã¥À» ¸ÕÀú º¸½Ã¸é »ó´çÈ÷ ½±°Ô ÀÚ¹Ù¸¦ ÀÌÇØÇÒ ¼ö ÀÖÀ¸³ª,
±×·± Ã¥ÀÌ °ÅÀÇ ¾ø´õ±º¿ä. (Àú ¿ª½Ã, óÀ½¿¡ ÀÚ¹Ù¸¦ Á¢ÇÒ ¶§ À̶§¹®¿¡
»ó´çÈ÷ È¥¶õ½º·¯¿ü½À´Ï´Ù.)
ÀÚ¹ÙÀÇ (³í¸®Àû) ¸Þ¸ð¸® ¸ðµ¨Àº ¾²·¹µå¸¶´Ù ½ºÅÃÀÌ ÀÖ°í,
°¢ ¾²·¹µå°¡ ½ÇÇàÇÏ´Â ¸Þ½îµåÀÇ ¸ðµç Áö¿ªº¯¼ö¿Í ¸Å°³º¯¼ö´Â
ÇØ´ç ½ºÅÿ¡ ÀúÀåµË´Ï´Ù.
»ý¼ºµÈ ¸ðµç °´Ã¼´Â ¹«Á¶°Ç Èü¿¡ ÀúÀåµÇ°í ¾²·¹µå»çÀÌ¿¡ °øÀ¯µË´Ï´Ù.
Ŭ·¡½º º¯¼ö¿Í ¸Þ½îµå ¸öü´Â ¸Þ½îµå ¿µ¿ªÀ̶ó´Â ¿µ¿ª¿¡ µû·Î
ÀúÀåµÇ°í Ŭ·¡½º°¡ ·ÎµåµÇ¸é, ¿ÀÁ÷ Çѹø ÃʱâÈ­µÇ°í, °´Ã¼µé »çÀÌ¿¡
°øÀ¯µË´Ï´Ù.
°´Ã¼¿¡ Á¢±ÙÇϱâ À§Çؼ­´Â ¹Ýµå½Ã ÇØ´ç °´Ã¼ÀÇ Å¬·¡½º, ÀÎÅÍÆäÀ̽º
ÀÚ·áÇüÀÇ ÂüÁ¶°ªÀ» ¾ò¾î¾ß Çϸç, À̸¦ ÅëÇÏ¿© Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ãß»óÀûÀÎ °´Ã¼ ÁöÇâ °³³äÀ» ÀåȲÇÏ°Ô ¼Ò°³Çϴ åº¸´Ù´Â
ÀÌ·± Àǹ̷п¡ ´ëÇØ ±×¸²°ú °çµé¿© ±¸Ã¼ÀûÀ¸·Î ¼Ò°³Çϴ åÀ»
ã¾Æ¼­ °øºÎÇϽʽÿÀ.


3. ¹®¹ý¿¡ Àͼ÷ÇÑ ÀÚ.
C/C++ÀÇ ¹®¹ýÀº ¹®¹ý ÀÚü¸¸À¸·Îµµ ¹è¿ö¾ß ÇÒ °ÍÀÌ ²÷ÀÓ¾ø½À´Ï´Ù.
¾î´À Ã¥¿¡¼±°¡ º»ÀûÀÌ ÀÖ´Â µ¥, ¾Æ¹«¸® C¾ð¾î¿¡ ´É¼÷ÇÑ ÇÁ·Î±×·¡¸Ó¶ó
ÇÒÁö¶óµµ, ¶§·Î´Â ƯÁ¤ C ÇÁ·Î±×·¥ÀÇ °á°ú¿¡ ´ëÇÏ¿© ÀǾÆÇÏ°Ô
»ý°¢ÇÑ´Ù°í ÇÏ´õ±º¿ä. C++´Â ÇÑ ¼ú ´õ ¶å´Ï´Ù.
ÇÏÁö¸¸, À̺¸´Ù ´õ ½É°¢ÇÑ °ÍÀº ±×¸®°í °¡Àå °ñÄ¡¾ÆÇÁ°Ô ÇÏ´Â °ÍÀº
C/C++ ¾ð¾î¿Í Ç¥ÁØ ¶óÀ̺귯¸® »ç¾ç ¹®¼­ÀÇ °÷°÷¿¡ »êÀçÇÏ´Â
`behavior undefined', `implementation dependent'ÀÔ´Ï´Ù. Á¤¸» ½È´õ±º¿ä.
¾ö¹ÐÇÑ Ç¥ÁØ »ç¾ç ¹®¼­¸¦ º¸¾Æµµ È®½ÇÇÏ°Ô ¾î¶»°Ô µ¿ÀÛÇÑ´Ù´Â °ÍÀ»
¾Ë ¼ö ¾øÀ¸¸é, ÀÌÇØÇϱ⠰ï¶õÇÏ°í Ç¥ÁØ »ç¾ç¿¡ ¸ÂÃß¾î
ÇÁ·Î±×·¡¹ÖÇϱ⵵ »ó´çÈ÷ °ï¶õÇϱ⶧¹®ÀÔ´Ï´Ù.
µû¶ó¼­, ¶§·Î´Â ƯÁ¤ ÄÄÆÄÀÏ·¯³ª ½ÇÇàȯ°æ¿¡¼­ ¾î¶»°Ô µ¿ÀÛÇÏ´Â Áö¸¦
µû·Î Á¶»çÇغ¸¾Æ¾ß Çϸç, Á¾Á¾ ÇÁ·Î±×·¥ ¹ö±×ÀÇ Áß¿äÇÑ ¿ä¼Ò°¡ µË´Ï´Ù.
¶ÇÇÑ, Ç¥ÁØ ANSI C, C++ ¶óÀ̺귯¸®´Â ±× ¾çÀÌ ÀûÁö ¾ÊÀ½¿¡µµ ºÒ±¸ÇÏ°í,
ÀÌ°Í ¸¸À¸·Î ÀǹÌÀÖ´Â ÇÁ·Î±×·¡¹ÖÀ» ÇϱⰡ °ÅÀÇ ºÒ°¡´ÉÇÕ´Ï´Ù.
ÀǹÌÀÖ´Â ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§Çؼ­´Â Ç÷§Æû¸¶´Ù µû·Î Á¤ÇÏ´Â
¶óÀ̺귯¸® Ç¥ÁØ¿¡ µû¶ó ÇÁ·Î±×·¡¹ÖÇØ¾ß Çϳª, ¸¹Àº °æ¿ì »ç½Ç»ó ºñ½ÁÇÑ
ÀÏÀ» ÇÏ´Â °ÍÀ» ÀüÇô ´Ù¸£°Ô ÇÁ·Î±×·¡¹ÖÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
¿¹¸¦ µé¾î, MFC, Motif, X Window, POSIX, SVID, BSD, Win32 API µîµîµî
¸Å¿ì ¸¹Áö¿ä.
`¶óÀ̺귯¸®´Â ¾ð¾îÀÌ´Ù'¶ó´Â ¸»ÀÌ ÀÖÀ» ¸¸Å­, ƯÁ¤ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­
ÃæºÐÇÑ ±â´É¼ºÀ» Á¦°øÇϴ ǥÁØ ¶óÀ̺귯¸®ÀÇ Á¸Àç ¿©ºÎ´Â ÇÁ·Î±×·¡¹Ö
Æí¸®¼º, ¿ëÀ̼º, easy to learnÀÇ °üÁ¡¿¡¼­ ¾ð¾îÀÇ ¹®¹ýº¸´Ù ÈÙ¾À ´õ Áß¿äÇÑ
¿ä¼Ò°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
¹°·Ð, ÇϳªÀÇ È¯°æ ¹× ÇϳªÀÇ ÄÄÆÄÀÏ·¯¸¸À» »ç¿ëÇÏ´Â »ç¶÷¿¡°Ô´Â ÀÌ°ÍÀº
±×´ÙÁö Áß¿äÇÑ ¿ä¼Ò°¡ ¾Æ´Ï¶ó°í »ý°¢ÇÒ °ÍÀÔ´Ï´Ù.
±×·¯³ª, `¿ä¶÷¿¡¼­ ¹«´ý±îÁö', `¹è¿ò¿¡¼­ ±¸Çö±îÁö' ÀÌ°ÍÀÌ °¡´ÉÇÒ ±î¿ä?
´õ ¸¹Àº Ç÷§Æû¿¡¼­ µ¿ÀÛÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥, ´Ù¾çÇÑ Ç÷§Æû¿¡¼­
ºÐ»êµÇ¾î ¹«¸®¾øÀÌ µ¿ÀÛÇÏ´Â ÇÁ·Î±×·¥ÀÇ ¿ä±¸°¡ È®»êµÇ´Â Ãß¼¼´Â
À̸¦ ´õ¿í ¾î·Æ°Ô ÇÒ °ÍÀÔ´Ï´Ù.
µû¶ó¼­, ÀÚ¹Ù ¾ð¾î¸¦ ÁÖÃàÀ¸·Î ÇÁ·Î±×·¡¹ÖÇÏ°í,
ÀÚ¹Ù°¡ ÇÒ ¼ö ¾ø´Â °ÍÀº C, C++·Î ÀÛ¼ºÇÏ¿© ³×ÀÌƼºê ¶óÀ̺귯¸®, ȤÀº
³×ÀÌƼºê ÇÁ·Î±×·¥À¸·Î ¸¸µé¾î¼­ ÇÏ´Â ¹æ½ÄÀÌ ¹Ù¶÷Á÷ÇÏ´Ù°í º¾´Ï´Ù.
Áï, C/C++¿¡¼­ °ï¶õÇÑ °ÍÀ» ¶§·Î´Â ¾î½Üºí¸®¾î·Î ÀÛ¼ºÇϵíÀÌ
ÀÚ¹Ù¿¡¼­ °ï¶õÇÑ °ÍÀº C/C++·Î ÀÛ¼ºÇÏ´Â °ÍÀ̸ç, ÀÌ´Â C/C++¸¦
¾î½Üºí¸®¾ð¾î ó·³ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
±×·¸´Ù°í, ¸ðµç ÀÚ¹Ù ÇÁ·Î±×·¡¸Ó°¡ C/C++¸¦ ´É¼÷ÇÏ°Ô ´Ù·ê ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
´ëºÎºÐÀÇ C/C++ ÇÁ·Î±×·¡¸Ó°¡ ¾î½Üºí¸® ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ÇÊ¿ä°¡ ¾øµíÀÌ...
±× ÀÌÀ¯´Â, ¸¹Àº °æ¿ì ƯÁ¤ Ç÷§ÆûÀÇ ¾î½Üºí¸®¿¡ ƯȭµÈ ÇÁ·Î±×·¡¸Ó°¡
¾î½Üºí¸®¾ð¾î¸¦ ¼¯¾î¼­ ¸¸µç C/C++ ¶óÀ̺귯¸®¸¦ Á¦°øÇÏ°í
ÀÏ¹Ý ÇÁ·Î±×·¡¸Ó´Â À̸¦ °¡Á®´Ù »ç¿ëÇÏ´Â °ÍÀ¸·Î ÃæºÐÇϱ⠶§¹®ÀÔ´Ï´Ù.
ÀÌ´Â ÀÚ¹ÙÀÇ °æ¿ì¿¡µµ ¸¶Âù°¡Áö¿©¼­, Ç¥ÁØ ÆÐÅ°Áö¶ó°í ÇÏ´Â °Íµéµµ
´ëºÎºÐ ±× ¹Ø¹ÙÅÁÀº ³×ÀÌƼºê ¶óÀ̺귯¸®·Î ÀÛ¼ºµÇ¾î ÀÖ°í, ÀÌ´Â
ÀÚ¹Ù °¡»ó ¸Ó½®À» ±¸ÇöÇÏ¿© Á¦°øÇÏ´Â ½ã»ç¸¦ ÁÖÃàÀ¸·ÎÇÑ ¿©·¯È¸»ç,
Áý´Ü, °³ÀÎÀÌ ÇØÁÝ´Ï´Ù.
¶Ç, third party ÆÐÅ°Áöµµ ÀÌ¿Í °°ÀÌ ±¸ÇöµÈ °ÍÀÏ ¼ö ÀÖ½À´Ï´Ù.


--
Deogtae Kim (±è´öÅÂ)
CA Lab. CS Dept. KAIST





Follow Ups:



À̾ ±Û¿Ã¸®±â(´äÇϱâ)

À̸§:
E-Mail:
Á¦¸ñ:
³»¿ë:
°ü·Ã URL(¼±ÅÃ):
URL Á¦¸ñ(¼±ÅÃ):
°ü·Ã À̹ÌÁö URL:


[ Follow Ups ] [ Post Followup ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]