°³¶ËÀ̳׿¡¼ ÆÇ¸ÅµÈ "C & C++ ½ÃÅ¥¾î ÄÚµù" Á¤°¡ 45,000¿ø Æò±ÕÇÒÀΰ¡
|
|
|
1Àå. °¡À§µé°í ¶Ù±â 1.1 À§Çù ¾Ë¾Æº¸±â ¼Õ½Ç ºñ¿ëÀº ¾ó¸¶Àΰ¡? ´©°¡ À§ÇùÇϴ°¡? ¼ÒÇÁÆ®¿þ¾î º¸¾È 1.2 º¸¾È °³³ä º¸¾È Á¤Ã¥ º¸¾È °áÇÔ Ãë¾àÁ¡ ÀͽºÇ÷ÎÀÕ ¿ÏÈ 1.3 C¿Í C++ °£·«ÇÑ ¿ª»ç C ¾ð¾î¿¡¼ÀÇ ¹®Á¦Á¡ ·¹°Å½Ã ÄÚµå ±âŸ ¾ð¾î 1.4 °³¹ß Ç÷§Æû ¿î¿µÃ¼Á¦ ÄÄÆÄÀÏ·¯ 1.5 Á¤¸® 1.6 Ãß°¡ Âü°í ÀÚ·á 2Àå. ¹®ÀÚ¿ 2.1 ¹®ÀÚ¿ ¹®ÀÚ¿ µ¥ÀÌÅÍ Çü UTF-8 È®Àå ¹®ÀÚ¿ ¹®ÀÚ¿ ¸®ÅÍ·² C++¿¡¼ÀÇ ¹®ÀÚ¿ ¹®ÀÚÇü int unsigned char wchar t ¹®ÀÚ¿ Å©±â ÁöÁ¤ 2.2 ÀÏ¹Ý ¹®ÀÚ¿ ó¸® ¿¡·¯ ±æÀÌ Á¦ÇÑ ¾ø´Â ¹®ÀÚ¿ º¹»ç 1¹ÙÀÌÆ® ¿À¹öÇ÷Π¿¡·¯ null Á¾·á ¿¡·¯ ¹®ÀÚ¿ À߸² ÇÔ¼ö ¾øÀÌ ¹ß»ýÇÏ´Â ¹®ÀÚ¿ ¿¡·¯ 2.3 ¹®ÀÚ¿ Ãë¾àÁ¡°ú ÀͽºÇ÷ÎÀÕ ¿À¿°µÈ µ¥ÀÌÅÍ º¸¾È °áÇÔ: IsPasswordOK ¹öÆÛ ¿À¹öÇ÷ΠÇÁ·Î¼¼½º ¸Þ¸ð¸® Á¶Á÷ ½ºÅà °ü¸® ½ºÅà ½º¸Å½Ì ÄÚµå ÀÎÁ§¼Ç ¾ÆÅ© ÀÎÁ§¼Ç º¹±Í ÁöÇâ ÇÁ·Î±×·¡¹Ö 2.4 ¹®ÀÚ¿¿¡ ´ëÇÑ ¿ÏÈ Àü·« ¹®ÀÚ¿ ó¸® C11 Annex K °æ°è Á¡°Ë ÀÎÅÍÆäÀ̽º µ¿Àû ÇÒ´ç ÇÔ¼ö C++ std::basic string ¹®ÀÚ¿ °´Ã¼ ÂüÁ¶ÀÇ ¹«È¿È basic string »ç¿ë¿¡¼ÀÇ ±âŸ ÀϹÝÀû ½Ç¼ö 2.5 ¹®ÀÚ¿ ó¸® ÇÔ¼ö gets() C99 C11 Annex K °æ°è Á¡°Ë ÀÎÅÍÆäÀ̽º: gets s() µ¿Àû ÇÒ´ç ÇÔ¼ö strcpy()¿Í strcat() C99 strncpy()¿Í strncat() memcpy()¿Í memmove() strlen() 2.6 ·±Å¸ÀÓ ¹æÁö Àü·« °ËÃâ°ú º¹±¸ ÀÔ·Â À¯È¿È °´Ã¼ Å©±â Á¡°Ë ºñÁÖ¾ó ½ºÆ©µð¿À ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÏ´Â ·±Å¸ÀÓ Á¡°Ë ½ºÅà ī³ª¸®¾Æ ½ºÅà ½º¸Å½Ì ÇÁ·ÎÅØÅÍ(ÇÁ·ÎÆú¸®½º) ¿î¿µÃ¼Á¦ Àü·« °ËÃâ°ú º¹±¸ ºñ½ÇÇà ½ºÅà W^X PaX ÇâÈÄ ¹æÇâ 2.7 ÁÖ¸ñÇÒ ¸¸ÇÑ Ãë¾àÁ¡ ¿ø°Ý ·Î±×ÀÎ Ä¿¹ö·Î½º 2.8 Á¤¸® 2.9 Ãß°¡ Âü°í ÀÚ·á 3Àå. Æ÷ÀÎÅÍ º¯Á¶ 3.1 µ¥ÀÌÅÍ À§Ä¡ 3.2 ÇÔ¼ö Æ÷ÀÎÅÍ 3.3 °´Ã¼ Æ÷ÀÎÅÍ 3.4 ¸í·É Æ÷ÀÎÅÍ ¼öÁ¤ 3.5 Àü¿ª ¿ÀÇÁ¼Â Å×À̺í 3.6 .dtors ¼½¼Ç 3.7 °¡»ó Æ÷ÀÎÅÍ 3.8 atexit()¿Í on exit() ÇÔ¼ö 3.9 longjmp() ÇÔ¼ö 3.10 ¿¹¿Ü ó¸® ±¸Á¶Àû ¿¹¿Ü ó¸® ½Ã½ºÅÛ ±âº» ¿¹¿Ü ó¸® 3.11 ¿ÏÈ Àü·« ½ºÅà ī³ª¸®¾Æ W^X ÇÔ¼ö Æ÷ÀÎÅÍÀÇ ÀÎÄÚµù/µðÄÚµù 3.12 Á¤¸® 3.13 Ãß°¡ Âü°í ÀÚ·á 4Àå. µ¿Àû ¸Þ¸ð¸® °ü¸® 4.1 C ¸Þ¸ð¸® °ü¸® C Ç¥ÁØ ¸Þ¸ð¸® °ü¸® ÇÔ¼ö Á¤·Ä alloca()°ú °¡º¯ Å©±â ¹è¿ 4.2 ÀϹÝÀûÀÎ C ¸Þ¸ð¸® °ü¸® ¿¡·¯ ÃʱâÈ ¿¡·¯ ¹Ýȯ °ª Á¡°Ë »ý·« NullÀ̳ª ºÎÀûÀýÇÑ Æ÷ÀÎÅÍÀÇ ¿ªÂüÁ¶ ÇØÁ¦µÈ ¸Þ¸ð¸® ÂüÁ¶ ¸Þ¸ð¸®ÀÇ ¿©·¯ ¹ø ÇØÁ¦ ¸Þ¸ð¸® ´©¼ö 0 ±æÀÌ ÇÒ´ç DR #400 4.3 C++ µ¿Àû ¸Þ¸ð¸® °ü¸® ÇÒ´ç ÇÔ¼ö ÇÒ´ç ÇØÁ¦ ÇÔ¼ö °¡ºñÁö ÄÝ·º¼Ç 4.4 ÀϹÝÀûÀÎ C++ ¸Þ¸ð¸® °ü¸® ¿¡·¯ ÇÒ´ç ½ÇÆи¦ ¿Ã¹Ù·Î ó¸® ¸øÇÔ Â¦ÀÌ À߸øµÈ ¸Þ¸ð¸® °ü¸® ÇÔ¼ö ¸Þ¸ð¸® ¿©·¯ ¹ø ÇØÁ¦ ÇÒ´ç ÇØÁ¦ ÇÔ¼öÀÇ ¿¹¿Ü ó¸® 4.5 ¸Þ¸ð¸® °ü¸®ÀÚ 4.6 ´õ±× ¸®ÀÇ ¸Þ¸ð¸® ÇÒ´çÀÚ Èü¿¡¼ÀÇ ¹öÆÛ ¿À¹öÇ÷Π4.7 ÀÌÁß ÇØÁ¦ Ãë¾àÁ¡ ÇØÁ¦µÈ ¸Þ¸ð¸®¿¡ ¾²±â RtlHeap ¹öÆÛ ¿À¹öÇ÷Î(¸®´ö½º) 4.8 ¿ÏÈ Àü·« Null Æ÷ÀÎÅÍ ÀÏ°ü¼º ÀÖ´Â ¸Þ¸ð¸® °ü¸® ½À°ü phkmalloc ¹«ÀÛÀ§È OpenBSD jemalloc ¸Þ¸ð¸® °ü¸®ÀÚ Á¤Àû ºÐ¼® ·±Å¸ÀÓ ºÐ¼® µµ±¸ 4.9 Áß¿äÇÑ Ãë¾àÁ¡ CVS ¹öÆÛ ¿À¹öÇ÷ΠÃë¾àÁ¡ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® µ¥ÀÌÅÍ ¾×¼¼½º ÄÄÆ÷³ÍÆ®(MDAC) CVS ¼¹öÀÇ ÀÌÁß ÇØÁ¦ MIT Ä¿¹ö·Î½º 5ÀÇ Ãë¾àÁ¡ 4.10 Á¤¸® 5Àå. Á¤¼ö º¸¾È 5.1 Á¤¼ö º¸¾È ¼Ò°³ 5.2 Á¤¼ö µ¥ÀÌÅÍ Çü ºÎÈ£ ¾ø´Â Á¤¼öÇü ·¦¾î¶ó¿îµå ºÎÈ£ ÀÖ´Â Á¤¼öÇü ºÎÈ£ ÀÖ´Â Á¤¼öÇüÀÇ ¹üÀ§ Á¤¼ö ¿À¹öÇ÷Π¹®ÀÚÇü µ¥ÀÌÅÍ ¸ðµ¨ ±âŸ Á¤¼öÇü 5.3 Á¤¼ö º¯È¯ Á¤¼ö º¯È¯ Á¤¼ö º¯È¯ ¼øÀ§ Á¤¼ö ÇÁ·Î¸ð¼Ç º¸ÅëÀÇ »ê¼ú º¯È¯ ºÎÈ£ ¾ø´Â Á¤¼öÇüÀÇ º¯È¯ ºÎÈ£ ÀÖ´Â Á¤¼öÇüÀÇ º¯È¯ ¾Ï½ÃÀû º¯È¯ 5.4 Á¤¼ö ¿¬»ê ´ëÀÔ µ¡¼À »¬¼À °ö¼À ³ª´°¼À°ú ³ª¸ÓÁö ½ÃÇÁÆ® 5.5 Á¤¼ö Ãë¾àÁ¡ Ãë¾àÁ¡ ·¦¾î¶ó¿îµå º¯È¯°ú À߸² ¿¡·¯ ¿¹¿Ü°¡ ¾Æ´Ñ Á¤¼ö ·ÎÁ÷ ¿¡·¯ 5.6 ¿ÏÈ Àü·« Á¤¼öÇü ¼±Åà Ãß»ó µ¥ÀÌÅÍ Çü ÀÓÀÇ Á¤È® ¿¬»ê ¹üÀ§ Á¡°Ë ¼±Çà Á¶°Ç°ú ÈÄÇà Á¶°Ç °Ë»ç ½ÃÅ¥¾î Á¤¼ö ¶óÀ̺귯¸® ¿À¹öÇ÷Π°ËÃâ ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ·±Å¸ÀÓ °Ë»ç ÀÔÁõ °¡´ÉÇÑ ¹üÀ§ ³» ¿¬»ê AIR Á¤¼ö ¸ðµ¨ °Ë»ç¿Í ºÐ¼® 5.7 Á¤¸® 6Àå. Çü½ÄÈµÈ Ãâ·Â 6.1 ¹è¸®¾îµñ ÇÔ¼ö 6.2 Çü½ÄÈµÈ Ãâ·Â ÇÔ¼ö Çü½Ä ¹®ÀÚ¿ GCC ºñÁÖ¾ó C++ 6.3 Çü½ÄÈµÈ Ãâ·Â ÇÔ¼ö °ø°Ý ¹öÆÛ ¿À¹öÇ÷ΠÃâ·Â ½ºÆ®¸² ÇÁ·Î±×·¥ÀÇ ºñÁ¤»óÀû Á¾·á ½ºÅà ³»¿ë º¸±â ¸Þ¸ð¸® ³»¿ë º¸±â ¸Þ¸ð¸® µ¤¾î¾²±â ±¹Á¦È È®Àå ¹®ÀÚ Çü½Ä ¹®ÀÚ¿ Ãë¾àÁ¡ 6.4 ½ºÅà ¹«ÀÛÀ§È ½ºÅà ¹«ÀÛÀ§È ¾ø¾Ö±â µÎ °³ÀÇ ¿öµå·Î ÁÖ¼Ò ±â·Ï Á÷Á¢ ÀÎÀÚ Á¢±Ù 6.5 ¿ÏÈ Àü·« Çü½Ä ¹®ÀÚ¿¿¡¼ »ç¿ëÀÚ ÀÔ·Â ¹èÁ¦ Á¤Àû ³»¿ëÀÇ µ¿Àû »ç¿ë ±â·ÏµÉ ¹ÙÀÌÆ® Á¦ÇÑ C11 Annex K °æ°è Á¡°Ë ÀÎÅÍÆäÀ̽º iostream°ú stdio °Ë»ç ÄÄÆÄÀÏ·¯ Á¡°Ë Á¤Àû ¿À¿° ºÐ¼® ¹è¸®¾îµñ ÇÔ¼ö ±¸Çö ¼öÁ¤ Exec ½Çµå Æ÷¸Ë°¡µå Á¤Àû ¹ÙÀ̳ʸ® ºÐ¼® 6.6 ÁÖ¸ñÇÒ ¸¸ÇÑ Ãë¾àÁ¡ ¿ö½ÌÅÏ ´ëÇÐÀÇ FTP µ¥¸ó CDE ÅøÅäÅ© ÀÌÅÍĸ ¹öÀü NG-0.7.2 6.7 Á¤¸® 6.8 Ãß°¡ Âü°í ÀÚ·á 7Àå. µ¿½Ã¼º 7.1 ¸ÖƼ½º·¹µù 7.2 º´·Ä ó¸® µ¥ÀÌÅÍ º´·Ä ó¸® ÀÛ¾÷ º´·Ä ó¸® 7.3 ¼º´É ¸ñÇ¥ ¾Ï´ÞÀÇ ¹ýÄ¢ 7.4 ÀϹÝÀûÀÎ ¿¡·¯ °æÇÕ »óÅ ¼Õ»óµÈ °ª Èֹ߼º °´Ã¼ 7.5 ¿ÏÈ Àü·« ¸Þ¸ð¸® ¸ðµ¨ µ¿±âÈ ±âº» ¿¬»ê ½º·¹µå ¿ªÇÒ ºÐ¼®(¿¬±¸) ºÒº¯ µ¥ÀÌÅÍ ±¸Á¶ ÇöÀç ÄÚµå ¼ºÁú 7.6 ¿ÏÈ ÇÔÁ¤ ±³Âø »óÅ ÀÏÂï ÇØÁ¦ÇÑ Àá±Ý ÀïÅ» ABA ¹®Á¦ 7.7 ÁÖ¸ñÇÒ ¸¸ÇÑ Ãë¾àÁ¡ ¸ÖƼÄÚ¾î DRAM ½Ã½ºÅÛ¿¡¼ÀÇ DoS °ø°Ý ½Ã½ºÅÛ È£Ãâ ·¡ÆÛ¿¡¼ÀÇ µ¿½Ã¼º Ãë¾àÁ¡ 7.8 Á¤¸® 8Àå. ÆÄÀÏ I/O 8.1 ÆÄÀÏ I/O ±âº» ÆÄÀÏ ½Ã½ºÅÛ Æ¯¼ö ÆÄÀÏ 8.2 ÆÄÀÏ I/O ÀÎÅÍÆäÀ̽º µ¥ÀÌÅÍ ½ºÆ®¸² ÆÄÀÏ ¿°í ´Ý±â POSIX C++¿¡¼ÀÇ ÆÄÀÏ I/O 8.3 Á¢±Ù Á¦¾î À¯´Ð½º ÆÄÀÏ ±ÇÇÑ ÇÁ·Î¼¼½º Ư±Ç Ư±Ç º¯°æ Ư±Ç °ü¸® ±ÇÇÑ °ü¸® 8.4 ÆÄÀÏ ½Äº° µð·ºÅ丮 À̵¿ µ¿ÀÏ ¿¡·¯ ½Éº¼¸¯ ¸µÅ© Á¤±ÔÈ ÇÏµå ¸µÅ© ÀåÄ¡ ÆÄÀÏ ÆÄÀÏ ¼Ó¼º 8.5 °æÇÕ »óÅ Á¡°Ë ½Ã°£, »ç¿ë ½Ã°£ ±³Ã¼ ¾øÀÌ »ý¼º ¹èŸÀû Á¢±Ù °øÀ¯ µð·ºÅ丮 8.6 ¿ÏÈ Àü·« °æÇÕ À©µµ¿ì ´Ý±â °æÇÕ °´Ã¼ Á¦°Å °æÇÕ °´Ã¼¿¡ ´ëÇÑ Á¢±Ù Á¦¾î °æÇÕ °ËÃâ µµ±¸ 8.7 Á¤¸® 9Àå. ±Ç°í °üÇà 9.1 º¸¾È °³¹ß »ý¸íÁÖ±â TSP ½ÃÅ¥¾î °èȹ°ú ÃßÀû Ç°Áú °ü¸® 9.2 º¸¾È ÈÆ·Ã 9.3 ¿ä±¸ »çÇ× ½ÃÅ¥¾î ÄÚµù Ç¥ÁØ º¸¾È Ç°Áú ¿ä±¸ °øÇÐ À¯Áî/¹Ì½ºÀ¯Áî ÄÉÀ̽º 9.4 ¼³°è ½ÃÅ¥¾î ¼ÒÇÁÆ®¿þ¾î °³¹ß ¿øÄ¢ À§Çù ¸ðµ¨¸µ °ø°Ý¸é ºÐ¼® ±âÁ¸ ÄÚµåÀÇ Ãë¾àÁ¡ ½ÃÅ¥¾î ·¡ÆÛ ÀÔ·Â °ËÁõ ½Å·Ú °æ°è ºí·¢¸®½ºÆà ÈÀÌÆ®¸®½ºÆà °Ë»ç 9.5 ±¸Çö ÄÄÆÄÀÏ·¯ º¸¾È ±â´É ¹«ÇÑ ¹üÀ§ Á¤¼ö ¸ðµ¨ ¾ÈÀüÇÑ ½ÃÅ¥¾î C/C++ Á¤Àû ºÐ¼® ¼Ò½ºÄÚµå ºÐ¼® ½ÇÇè±â öÀúÇÑ ¹æ¾î 9.6 °ËÁõ Á¤Àû ºÐ¼® ħÅõ Å×½ºÆà ÆÛÁî °Ë»ç ÄÚµå °¨»ç °³¹ßÀÚ Áöħ°ú Á¡°ËÇ¥ µ¶¸³ º¸¾È ¸®ºä °ø°Ý¸é ¸®ºä 9.7 Á¤¸® 9.8 Âü°í ÀÚ·á
ÀÌ Ã¥Àº ¼ÒÇÁÆ®¿þ¾î Ãë¾àÁ¡ÀÇ ±Ùº» ¿øÀÎÀ» ¼³¸íÇÏ°í ħÅõ¸¦ ¸·±â À§ÇØ ÃëÇÒ ¼ö ÀÖ´Â ´ëÃ¥À» ¾Ë·ÁÁØ´Ù. ´õ¿íÀÌ ÀÌ Ã¥À» ÅëÇØ ÇÁ·Î±×·¡¸Ó´Â ´çÀå ¿À´Ã¸¸ÀÌ ¾Æ´Ï¶ó ¹Ì·¡ÀÇ °ø°ÝÀ¸·ÎºÎÅÍ ¼ÒÇÁÆ®¿þ¾î¸¦ º¸È£ÇÏ´Â ÃÖ»óÀÇ º¸¾È ¾÷¹« äÅðú º¸¾È »ç°í ¹æ½ÄÀ» ¹ßÀü½Ãų ¼ö ÀÖ´Ù. ·Î¹öÆ® ½ÃÄÚµå´Â CERT º¸°í¼¿Í °á·ÐÀ» È°¿ëÇØ ÇÁ·Î±×·¥ ¿¡·¯°¡ ´ëºÎºÐ º¸¾È ±¸¸ÛÀÌ µÇ´Â °ÍÀ» ü°èÀûÀ¸·Î È®ÀÎÇÏ°í, ±× º¸¾È ±¸¸ÛÀÌ ¾î¶»°Ô ¹«´Ü ÀÌ¿ëµÉ ¼ö ÀÖ´ÂÁö¸¦ º¸À̸ç, °¡´ÉÇÑ °á°ú¸¦ °íÂûÇغ¸°í ¾ÈÀüÇÑ ¹æ¹ýÀ» ³»³õ´Â´Ù. ÀÌ Ã¥¿¡´Â À©µµ¿ì¿Í ¸®´ª½º¿¡¼ ±¸ÇöÇÑ ¼ö¹é °³ÀÇ ¾ÈÀüÇÑ ÄÚµå, ºÒ¾ÈÀüÇÑ ÄÚµå, ÀͽºÇ÷ÎÀÕ ¿¹Á¦°¡ µé¾îÀÖ´Ù. ¾ÈÀüÇÑ C ¶Ç´Â C++ ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé(¶Ç´Â ¾ÈÀüÇÏ°Ô Áöų) Ã¥ÀÓÀÌ ÀÖ´Ù¸é ÀÌ Ã¥¿¡¼ °¡Àå ÀÚ¼¼ÇÏ°í Àü¹®ÀûÀÎ Áö¿øÀ» ¾òÀ» ¼ö ÀÖ´Ù.
ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë - C³ª C++ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Àüü º¸¾ÈÀ» Çâ»ó½Ãų ¼ö ÀÖ´Â ¹æ¹ý - ºÒ¾ÈÀüÇÑ Á¶ÀÛ ·ÎÁ÷À» ¹«´Ü ÀÌ¿ëÇÏ´Â ¹öÆÛ ¿À¹öÇ÷Î, ½ºÅà ½º¸Å½Ì, ¹Ýȯ ÁöÇâÀû ÇÁ·Î±×·¡¹Ö °ø°Ý µîÀ» ¹«·ÂȽÃų ¹æ¹ý - µ¿Àû ¸Þ¸ð¸® °ü¸® ÇÔ¼öÀÇ À߸øµÈ »ç¿ëÀ¸·Î ¹ß»ýÇÏ´Â Ãë¾àÁ¡°ú º¸¾È ÇãÁ¡À» ¿¹¹æÇÏ´Â ¹æ¹ý - ºÎÈ£ Á¤¼ö ¿À¹öÇ÷Î, ¹«ºÎÈ£ Á¤¼ö ·¡ÇÎ, À߸² ¿¡·¯·Î ÀÎÇØ ¹ß»ýÇÏ´Â Á¤¼ö °ü·Ã ¹®Á¦¸¦ Á¦°ÅÇÏ´Â ¹æ¹ý - ½ÃÅ¥¾î I/O¸¦ ¼öÇàÇØ ÆÄÀÏ ½Ã½ºÅÛ Ãë¾àÁ¡À» ¿¹¹æÇÏ´Â ¹æ¹ý - Çü½Ä ¹®ÀÚ¿ Ãë¾àÁ¡À» ¸¸µéÁö ¾Ê°í Çü½ÄÈµÈ Ãâ·Â ÇÔ¼ö¸¦ ¿Ã¹Ù¸£°Ô »ç¿ëÇÏ´Â ¹æ¹ý - µ¿½Ã ¹ß»ý Äڵ带 °³¹ßÇÏ´Â µ¿¾È¿¡ °æÇÕ »óÅÂ¿Í ±âŸ ¹«´Ü ÀÌ¿ë °¡´ÉÇÑ Ãë¾àÁ¡À» ¿¹¹æÇÏ´Â ¹æ¹ý - C11¿Í C++11¿¡ ´ëÇÑ ³»¿ë ¾÷µ¥ÀÌÆ® - ¹®ÀÚ¿, µ¿Àû ¸Þ¸ð¸® °ü¸®, Á¤¼ö º¸¾È °ü·Ã ³»¿ë ¾÷µ¥ÀÌÆ® - µ¿½Ã ¹ß»ý¿¡ ´ëÇÑ »õ·Î¿î ´Ü¿ø Ãß°¡
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ÀÌ Ã¥Àº C¿Í C++·Î ¼ÒÇÁÆ®¿þ¾î °³¹ß°ú À¯Áö º¸¼ö¿¡ Á¾»çÇÏ´Â »ç¶÷¿¡°Ô À¯¿ëÇÏ´Ù.
- C/C++ ÇÁ·Î±×·¡¸Ó¶ó¸é ¼ÒÇÁÆ®¿þ¾î Ãë¾àÁ¡ÀÌ µÇ´Â Åë»óÀûÀÎ ÇÁ·Î±×·¡¹Ö ¿¡·¯¸¦ È®ÀÎÇÏ°í ÀÌ·¯ÇÑ ¿¡·¯°¡ ¾î¶»°Ô ¹«´Ü ÀÌ¿ëµÇ´ÂÁö¸¦ ÀÌÇØÇÏ¸ç ¾ÈÀü ¹æ½ÄÀ¸·Î ÇØ°áÃ¥À» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¾Ë ¼ö ÀÖ´Ù. - ¼ÒÇÁÆ®¿þ¾î ÇÁ·ÎÁ§Æ® °ü¸®ÀÚ¶ó¸é ¼ÒÇÁÆ®¿þ¾î Ãë¾àÁ¡ÀÇ Á߿伺°ú À§ÇèÀ» ½Äº°ÇØ ½ÃÅ¥¾î ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ÅõÀÚ ÇØ¾ß ÇÒÁö¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. - ÄÄÇ»ÅÍ°øÇаú ÇлýÀ̶ó¸é ³ª»Û ½À°üÀÌ µå´Â °ÍÀ» ¸·¾ÆÁÖ¸ç ÇÁ·Î Á÷¾÷ÀÎÀÌ µÅ¼ ½ÃÅ¥¾î ÇÁ·Î±×·¥À» °³¹ßÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö ½Ç±â¸¦ ÀÍÈú ¼ö ÀÖ´Ù. - º¸¾È ºÐ¼®°¡¶ó¸é ÀÏ»óÀûÀÎ Ãë¾àÁ¡¿¡ ´ëÇØ ¼¼ºÎÀûÀÎ ¼³¸íÀ» ÀÌÇØÇÏ°í ÀÌ·¯ÇÑ Ãë¾àÁ¡À» ¹ß°ßÇÏ´Â ¹æ¹ýÀ» ¾Ë°Ô µÇ¸ç ½ÇÁ¦ÀûÀÎ ¿¹¹æ Àü·«À» ÀÍÈú ¼ö ÀÖ´Ù.
ÀÌ Ã¥ÀÇ ±¸¼º 1Àå, '°¡À§µé°í ¶Ù±â'¿¡¼´Â ¹®Á¦ÀÇ °³·«À» Á¦°øÇÏ°í, º¸¾È ¿ë¾î¿Í °³³äÀ» ¼Ò°³ÇÏ¸ç ±×Åä·Ï ¸¹Àº Ãë¾àÁ¡ÀÌ C¿Í C++ ÇÁ·Î±×·¥¿¡¼ ¹ß°ßµÇ´Â ÀÌÀ¯¸¦ ¾Ë·ÁÁØ´Ù.
2Àå, '¹®ÀÚ¿'¿¡¼´Â C¿Í C++¿¡¼ÀÇ ¹öÆÛ ¿À¹öÇÃ·Î¿Í ½ºÅà ½º¸Å½Ì °°Àº ¹®ÀÚ¿ Á¶ÀÛ, Åë»óÀûÀÎ º¸¾È °áÇÔ, ±× °á°ú·Î ³ªÅ¸³ª´Â Ãë¾àÁ¡À» ¼³¸íÇÑ´Ù. ÄÚµå ÀÎÁ§¼Ç°ú ¾ÆÅ© ÀÎÁ§¼Ç ÀͽºÇ÷ÎÀÕÀ» ¸ðµÎ ¾Ë¾Æº»´Ù.
3Àå, 'Æ÷ÀÎÅÍ º¯Á¶'¿¡¼´Â °ø°ÝÀÚ°¡ ¸Þ¸ð¸®ÀÇ ¾î´À À§Ä¡¿¡¼µç ÁÖ¼Ò¸¦ ¾µ ¼ö ÀÖ´Â ÀÓÀÇ ¸Þ¸ð¸® ¾²±â ÀͽºÇ÷ÎÀÕÀ» ¼Ò°³ÇÏ°í, ÀÌ·± ÀͽºÇ÷ÎÀÕÀÌ µé¾î°£ ¸Ó½Å¿¡¼ ÀÓÀÇ Äڵ带 ½ÇÇàÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ÀÓÀÇ ¸Þ¸ð¸® ¾²±â·Î ¹ß»ýÇÑ Ãë¾àÁ¡Àº ÀÌÈÄÀÇ Àå¿¡¼ ´Ù·é´Ù.
4Àå, 'µ¿Àû ¸Þ¸ð¸® °ü¸®'¿¡¼´Â µ¿Àû ¸Þ¸ð¸® °ü¸®¸¦ ¼³¸íÇÑ´Ù. µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¹öÆÛ ¿À¹öÇ÷Î, ÇØÁ¦µÈ ¸Þ¸ð¸®¿¡ ¾²±â, ÀÌÁß ÇØÁ¦ Ãë¾àÁ¡À» ¼³¸íÇÑ´Ù.
5Àå, 'Á¤¼ö º¸¾È'¿¡¼´Â Á¤¼ö ¿À¹öÇ÷Î, ºÎÈ£ ¿¡·¯, À߸² ¿¡·¯ µîÀÇ Çʼö º¸¾È ¹®Á¦(Á¤¼ö¸¦ Ãë±ÞÇÏ´Â º¸¾È ¹®Á¦)¸¦ ´Ù·é´Ù.
6Àå, 'Çü½ÄÈµÈ Ãâ·Â'¿¡¼´Â Çü½ÄÈµÈ Ãâ·Â ÇÔ¼öÀÇ ÀûÀýÇϰųª ºÎÀûÀýÇÑ »ç¿ëÀ» ¼³¸íÇÑ´Ù. À̵é ÇÔ¼öÀÇ ºÎÀûÀýÇÑ »ç¿ëÀ¸·Î ÀÎÇÑ Çü½Ä ¹®ÀÚ¿°ú ¹öÆÛ ¿À¹öÇ÷ΠÃë¾àÁ¡ ¸ðµÎ¸¦ ¼³¸íÇÑ´Ù.
7Àå, 'µ¿½Ã¼º'¿¡¼´Â ±³Âø »óÅÂ, °æÇÕ »óÅÂ, ºÎÀûÀýÇÑ ¸Þ¸ð¸® Á¢±Ù ¼ø¼·Î ÀÎÇØ ¹ß»ýÇÏ´Â µ¿½Ã¼º°ú Ãë¾àÁ¡¿¡ ÃÊÁ¡À» ¸ÂÃá´Ù.
8Àå, 'ÆÄÀÏ I/O'¿¡¼´Â ÆÄÀÏ I/O¿Í °ü·ÃµÈ Åë»óÀûÀÎ Ãë¾àÁ¡À» ¼³¸íÇϴµ¥, ¿©±â¿¡´Â °æÇÕ »óÅÂ¿Í TOCTOU Ãë¾àÁ¡ÀÌ Æ÷ÇԵȴÙ.
9Àå, '±Ç°í °üÇà'¿¡¼´Â C/C++ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Àüü º¸¾ÈÀ» Çâ»ó½ÃÅ°±â À§ÇØ Æ¯Á¤ °³¹ß °üÇàÀ» ±Ç°íÇÑ´Ù. ÀÌ·± ±Ç°í¾ÈÀº ƯÁ¤ Ãë¾àÁ¡ ºÎ·ùÀÇ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ °¢ Àå¿¡ ÀÖ´Â ±ÇÀå »çÇ׵鿡 À̾îÁö´Â °ÍÀÌ´Ù.
|
|
|
|
|