 |
|
 |
Effective C : Àü¹®ÀûÀÎ C ÇÁ·Î±×·¡¹Ö ÀÔ¹®¼
|
|
|
·Î¹öÆ® C. ½ÃÄÚµå
¤Ó
¿¡ÀÌÄÜÃâÆÇ
¤Ó
Effective C
|
|
|
|

- Á¦ÈÞ¸ô ÁÖ¹® ½Ã °í°´º¸»ó, ÀϺΠÀ̺¥Æ® Âü¿© ¹× ÁõÁ¤Ç° ÁõÁ¤, ÇÏ·ç/´çÀÏ ¹è¼Û¿¡¼ Á¦¿ÜµÇ¹Ç·Î Âü°í ¹Ù¶ø´Ï´Ù.
-
-
-
½Ã°£ÀÌ Áö³ªµµ º¯ÇÏÁö ¾Ê°í ÄÄÇ»ÆÃ ¼¼°èÀÇ ±â¹ÝÀ» °ÈÇÏ´Â µ¥ µµ¿òÀÌ µÇ´Â Àü¹®ÀûÀÌ°í ¾ÈÀüÇϸç ÀÌ½Ä °¡´ÉÇÑ C Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ÀúÀÚÀÇ °æÇèÀ» ¹ÙÅÁÀ¸·Î ¼³¸íÇÑ´Ù. C¿Í C Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ¸ð¹ü »ç·Ê¿Í »ç¿ë Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ¿À·ù µîÀ» ¼³¸íÇÑ´Ù. C ÇÁ·Î±×·¥À» µð¹ö±ëÇϰí Å×½ºÆ®ÇÏ°í ºÐ¼®ÇÏ´Â ¹æ¹ýµµ ¼Ò°³ÇÑ´Ù.
-
-
¢Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¢Â
¡ß C ÇÁ·Î±×·¥¿¡¼ Á¤ÀǵÇÁö ¾ÊÀº µ¿ÀÛÀ» ½Äº°Çϰí ó¸®ÇÏ´Â ¹æ¹ý
¡ß Á¤¼ö ¹× ºÎµ¿ ¼Ò¼öÁ¡ °ªÀÇ ¹üÀ§ ¹× Ç¥Çö
¡ß µ¿Àû ¸Þ¸ð¸® ÇÒ´çÀÌ ÀÛµ¿ÇÏ´Â ¹æ¹ý°ú ºñÇ¥ÁØ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ý
¡ß ¹®ÀÚ ÀÎÄÚµù ¹× Çü½ÄÀ» »ç¿ëÇÏ´Â ¹æ¹ý
¡ß C Ç¥ÁØ ½ºÆ®¸² ¹× POSIX ÆÄÀÏ ¼³¸íÀÚ¸¦ »ç¿ëÇØ Å͹̳ΰú ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ I/O¸¦ ¼öÇàÇÏ´Â ¹æ¹ý
¡ß C ÄÄÆÄÀÏ·¯ÀÇ º¯È¯ ´Ü°è¿Í Àü󸮱âÀÇ ¿ªÇÒÀ» ÀÌÇØÇÏ´Â ¹æ¹ý
¡ß C ÇÁ·Î±×·¥À» Å×½ºÆ®ÇÏ°í µð¹ö±×ÇÏ¸ç ºÐ¼®ÇÏ´Â ¹æ¹ý
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
C ¾ð¾î¿¡ ´ëÇÑ ÀÔ¹®¼·Î C ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ì°íÀÚ ÇÏ´Â ¸ðµç »ç¶÷ÀÌ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ÀÛ¼ºÇß´Ù. Áï, ´Ù¸¥ ¸¹Àº ÀÔ¹®¼¿Í °ÁÂó·³ C ÇÁ·Î±×·¡¹ÖÀ» Áö³ªÄ¡°Ô ´Ü¼øÈÇÏÁö ¾Ê¾Ò´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
1Àå, ¡®C·Î ½ÃÀÛÇϱ⡯¿¡¼´Â main ÇÔ¼ö »ç¿ë¿¡ Àͼ÷ÇØÁöµµ·Ï °£´ÜÇÑ C ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù. ¶ÇÇÑ ÆíÁý±â¿Í ÄÄÆÄÀÏ·¯¿¡ ´ëÇÑ ¸î °¡Áö ¿É¼ÇÀ» »ìÆìº»´Ù.
2Àå, ¡®°³Ã¼¿Í ÇÔ¼ö, Çü½Ä¡¯¿¡¼´Â º¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ðÇÏ´Â °Í°ú °°Àº ±âº»ÀûÀÎ ³»¿ëÀ» ¾Ë¾Æº»´Ù. ¶ÇÇÑ ±âº» Çü½ÄÀ» »ç¿ëÇÏ´Â ¿øÄ¢µµ ¼Ò°³ÇÑ´Ù.
3Àå, ¡®»ê¼ú Çü½Ä¡¯¿¡¼´Â µÎ Á¾·ùÀÇ »ê¼ú Çü½ÄÀÎ Á¤¼ö Çü½Ä°ú ºÎµ¿ ¼Ò¼öÁ¡ Çü½Ä¿¡ °üÇØ ¾Ë¾Æº»´Ù.
4Àå, ¡®½Ä°ú ¿¬»êÀÚ¡¯¿¡¼´Â ¿¬»êÀÚ¿Í ´Ù¾çÇÑ °³Ã¼ Çü½Ä¿¡ ´ëÇÑ ¿¬»êÀ» ¼öÇàÇϱâ À§ÇØ °£´ÜÇÑ ½ÄÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.
5Àå, ¡®È帧 Á¦¾î¡¯¿¡¼´Â °¢ ¹®(statement)ÀÌ Æò°¡µÇ´Â ¼ø¼¸¦ Á¦¾îÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ¸ÕÀú ¼öÇàÇÒ ÀÛ¾÷À» Á¤ÀÇÇϴ ǥÇö¹®(expression statements)°ú º¹ÇÕ¹®(compound statements)À» ¾Ë¾Æº»´Ù. ±×·± ´ÙÀ½ ½ÇÇàÇÒ ÄÚµå ºí·ÏÀ» °áÁ¤ÇÏ´Â ¼±ÅÃ(selection)°ú ¹Ýº¹(iteration), Á¡ÇÁ(jump) ¼¼ Á¾·ùÀÇ ¹®À» »ìÆìº»´Ù.
6Àå, ¡®µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®¡¯¿¡¼´Â ·±Å¸ÀÓ¿¡ Èü(heap)¿¡¼ ÇÒ´çµÇ´Â µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®(dynamically allocated memory)¿¡ °üÇØ ¾Ë¾Æº»´Ù. µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®´Â ·±Å¸ÀÓ Àü¿¡ ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤È®ÇÑ ½ºÅ丮Áö ¿ä±¸ »çÇ×À» ¾Ë ¼ö ¾ø´Â °æ¿ì¿¡ À¯¿ëÇÏ´Ù.
7Àå, ¡®¹®ÀÚ¿Í ¹®ÀÚ¡¯¿¡¼´Â ASCII¿Í À¯´ÏÄڵ带 Æ÷ÇÔÇÑ ´Ù¾çÇÑ ¹®ÀÚ¿ ÁýÇÕÀ» ¾Ë¾Æº»´Ù. C Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ·¹°Å½Ã(legacy) ÇÔ¼ö¿Í °æ°è È®ÀÎ ÀÎÅÍÆäÀ̽º(bounds-checked interfaces), ±×¸®°í POSIX¿Í Windows API¸¦ »ç¿ëÇØ ¹®ÀÚ¿À» Ç¥ÇöÇϰí Á¶ÀÛÇÏ´Â ¹æ¹ýÀ» »ìÆìº»´Ù.
8Àå, ¡®ÀÔ·Â/Ãâ·Â¡¯¿¡¼´Â Å͹̳Π¹× ÆÄÀÏ ½Ã½ºÅÛ(filesystem)¿¡¼ µ¥ÀÌÅ͸¦ Àаųª ¾²±â À§ÇØ ÀÔ·Â/Ãâ·Â(ÀÔÃâ·Â, Input/Output) ¿¬»êÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ÀÔÃâ·ÂÀº Á¤º¸°¡ ÇÁ·Î±×·¥¿¡ µé¾î¿À°í ³ª°¡´Â ¸ðµç ¹æ¹ýÀ» Æ÷ÇÔÇϸç, ÀÔÃâ·ÂÀ» ÇÏÁö ¸øÇϸé ÇÁ·Î±×·¥Àº ¾µ¸ð°¡ ¾ø´Ù. C Ç¥ÁØ ½ºÆ®¸²(stream)°ú POSIX ÆÄÀÏ ¼³¸íÀÚ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.
9Àå, ¡®Àü󸮱⡯¿¡¼´Â Àü󸮱⸦ »ç¿ëÇØ ÆÄÀÏÀ» Æ÷ÇÔÇϰí, °³Ã¼ °°Àº ¸ÅÅ©·Î¿Í ÇÔ¼ö °°Àº ¸ÅÅ©·Î¸¦ Á¤ÀÇÇϰí, ±¸Çöü¿¡ Á¤ÀÇµÈ ±â´É¿¡ µû¶ó Äڵ带 Á¶°ÇºÎ·Î Æ÷ÇÔÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
10Àå, ¡®ÇÁ·Î±×·¥ ±¸Á¶¡¯¿¡¼´Â ÇÁ·Î±×·¥À» ¼Ò½º ÆÄÀϰú Æ÷ÇÔ(include) ÆÄÀÏ·Î ±¸¼ºµÈ ¿©·¯ º¯È¯ ´ÜÀ§·Î ±¸Á¶ÈÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ¶ÇÇÑ ¿©·¯ °³Ã¼ ÆÄÀÏÀ» ÇÔ²² ¿¬°áÇØ ¶óÀ̺귯¸®¿Í ½ÇÇà ÆÄÀÏÀ» ¸¸µå´Â ¹æ¹ýµµ »ìÆìº»´Ù.
11Àå, ¡®µð¹ö±ë°ú Å×½ºÆ®, ºÐ¼®¡¯¿¡¼´Â ÄÄÆÄÀÏ Å¸ÀÓ°ú ·±Å¸ÀÓ ¾î¼³¼Ç(assertion), µð¹ö±ë, Å×½ºÆ®, Á¤Àû ºÐ¼® ±×¸®°í µ¿Àû ºÐ¼®À» Æ÷ÇÔÇØ Á¤È®Çϰí È¿°úÀûÀÌ¸ç ¾ÈÀüÇÏ°í º¸¾È¼ºÀ» Á¦°øÇÏ¸ç °°ÇÇÑ ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ µµ±¸¿Í ±â¼úÀ» ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß ÇÁ·Î¼¼½ºÀÇ ¿©·¯ ´Ü°è¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÄÄÆÄÀÏ·¯ Ç÷¡±×¿¡ ´ëÇØ¼µµ ¾Ë¾Æº»´Ù.
¢Â ¿Å±äÀÌÀÇ ¸» ¢Â
»çÀ̹ö º¸¾È °ü·Ã ÀÏÀ»... Çϱ⠽ÃÀÛÇÏ¸é¼ C ¾ð¾î·Î ÀÛ¼ºµÈ Äڵ忡¼ »ç¼ÒÇÑ ¿À·ù·Î ÀÎÇØ Å« º¸¾È »ç°í°¡ ¹ß»ýÇÏ´Â °ÍÀ» Á÷Á¢ ¸ñ°ÝÇß½À´Ï´Ù. ÀÌ·Î ÀÎÇØ ½ÃÅ¥¾î ÄÚµùÀ̶ó´Â °³³äÀ» Á¢ÇÏ°Ô µÆ°í, ÀÌÁ¦´Â ½ÃÅ¥¾î ÄÚµùÀ» ÄÚµå ÀÛ¼º ÃʱâºÎÅÍ Àû¿ëÇÏ´Â °ÍÀÌ ±âº»ÀÌ µÆ½À´Ï´Ù.
ÀÌ Ã¥Àº ´Ù¸¥ C ¾ð¾î ÇÁ·Î±×·¡¹Ö ÀÔ¹®¼¿Í´Â ´Ù¸¨´Ï´Ù. Ç¥ÁØ C ¾ð¾î ¹®¹ýºÎÅÍ ½ÃÅ¥¾î ÄÚµù¿¡ ÇÊ¿äÇÑ µð¹ö±ë, Á¤Àû ºÐ¼® ¹× µ¿Àû ºÐ¼®¿¡ À̸£±â±îÁö Æø³ÐÀº ³»¿ëÀ» ´ã°í ÀÖ½À´Ï´Ù. ±×·¡¼ Ãʺ¸ÀÚ¿¡°Ô´Â ´Ù¼Ò ¾î·Á¿ï ¼ö Àִµ¥, ƯÈ÷ ¾ÈÀüÇÑ ÄÚµå ÀÛ¼º¿¡ ÇÊ¿äÇÑ Ãë¾àÁ¡¿¡ °üÇÑ ³»¿ëÀÌ ³ª¿À°í, ¹ö±×°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ÄÚµåÀÇ ¿¹¿Í À̸¦ ÇØ°áÇÒ ¹æ¹ý±îÁöµµ Á¦½ÃÇÕ´Ï´Ù.
C ¾ð¾îÀÇ ±âº» ¹®¹ýÀ» ¾î´À Á¤µµ ¾Ë°í ÀÖ´Â µ¶ÀÚ¶ó¸é Ã¥ µÞºÎºÐ¿¡ ³ª¿À´Â ¸Þ¸ð¸® ÇÒ´ç°ú ÀÔÃâ·Â, ÇÁ·Î±×·¥ ±¸Á¶, µð¹ö±ë, ´ÜÀ§ Å×½ºÆ® ±×¸®°í Á¤Àû ºÐ¼® ¹× µ¿Àû ºÐ¼®ÀÇ ³»¿ëÀ» ²Ä²ÄÇÏ°Ô ÀÍÈ÷±æ ¹Ù¶ø´Ï´Ù. ÀüºÎ ½ÃÅ¥¾î ÄÚµù¿¡ ÇÊ¿äÇÑ ¿ä¼ÒÀÔ´Ï´Ù.
ÀúÀÚ´Â ¼º´ÉÀÌ ¿ì¼öÇϸ鼵µ ¾ÈÀüÇÏ¸ç º¸¾È¼ºÀ» °®Ãá Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀ» °Á¶ÇÕ´Ï´Ù. C ÇÁ·Î±×·¥¿¡¼ Á¤ÀǵÇÁö ¾ÊÀº µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â °ÍÀ» ¸·À» ¼ö ÀÖµµ·Ï ÀúÀÚ°¡ ¼Ò°³ÇÏ´Â ¸ðµç ¹æ¹ý°ú µµ±¸¸¦ Ȱ¿ëÇØ ½ÃÅ¥¾î ÄÚµùÀ» ÀÍÈú ¼ö ÀÖ±æ ¹Ù¶ø´Ï´Ù.
-
-
1Àå. C ½ÃÀÛÇϱâ
__ù ¹øÂ° C ÇÁ·Î±×·¥ °³¹ßÇϱâ
____ÇÁ·Î±×·¥ ÄÄÆÄÀÏ ¹× ½ÇÇà
____Àü󸮱â Áö½Ã¹®
____main ÇÔ¼ö
____ÇÔ¼ö ¹Ýȯ °ª È®ÀÎ
____Ãâ·Â Çü½Ä
__ÆíÁý±â ¹× ÅëÇÕ °³¹ß ȯ°æ
__ÄÄÆÄÀÏ·¯
____GNU ÄÄÆÄÀÏ·¯ ¸ðÀ½
____Clang
____¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Visual Studio
__À̽ļº
____±¸Çö Á¤ÀÇ µ¿ÀÛ
____¹ÌÁöÁ¤ µ¿ÀÛ
____¹ÌÁ¤ÀÇ µ¿ÀÛ
____·ÎÄÉÀÏ º° µ¿ÀÛ ¹× °øÅë È®Àå
__¿ä¾à
2Àå. °³Ã¼¿Í ÇÔ¼ö, Çü½Ä
__°³Ã¼¿Í ÇÔ¼ö, Çü½Ä, ±×¸®°í Æ÷ÀÎÅÍ
__º¯¼ö ¼±¾ð
____°ª ¹Ù²Ù±â (ù ¹øÂ° ½Ãµµ)
____°ª ¹Ù²Ù±â (µÎ ¹øÂ° ½Ãµµ)
__¹üÀ§
__½ºÅ丮Áö ±â°£
__¸ÂÃã
__°³Ã¼ Çü½Ä
____ºÎ¿ï Çü½Ä
____¹®ÀÚ Çü½Ä
____¼ýÀÚ Çü½Ä
____void Çü½Ä
__ÇÔ¼ö Çü½Ä
__ÆÄ»ýµÈ Çü½Ä
____Æ÷ÀÎÅÍ Çü½Ä
____¹è¿
____±¸Á¶Ã¼
____°ø¿ëü
__ű×
__Çü½Ä ÇÑÁ¤ÀÚ
____const
____volatile
____restrict
__¿¬½À ¹®Á¦
__¿ä¾à
3Àå. »ê¼ú Çü½Ä
__Á¤¼ö
____ÆÐµù°ú Á¤¹Ðµµ
____¡´limits.h¡µ Çì´õ ÆÄÀÏ
____Á¤¼ö ¼±¾ðÇϱâ
____ºÎÈ£°¡ ¾ø´Â Á¤¼ö
____ºÎÈ£°¡ ÀÖ´Â Á¤¼ö
____Á¤¼ö »ó¼ö
__ºÎµ¿ ¼Ò¼öÁ¡
____ºÎµ¿ ¼Ò¼öÁ¡ Çü½Ä
____ºÎµ¿ ¼Ò¼öÁ¡ »ê¼ú
____ºÎµ¿ ¼Ò¼öÁ¡ °ª
____ºÎµ¿ ¼Ò¼öÁ¡ »ó¼ö
__»ê¼ú º¯È¯
____Á¤¼ö º¯...ȯ ¼øÀ§
____Á¤¼ö È®Àå
____ÀÏ¹Ý »ê¼ú º¯È¯
____¾Ï½ÃÀû º¯È¯ÀÇ ¿¹
____¾ÈÀüÇÑ º¯È¯
__¿ä¾à
4Àå. ½Ä°ú ¿¬»êÀÚ
__´Ü¼ø ÇÒ´ç
__Æò°¡
__ÇÔ¼ö È£Ãâ
__Áõ°¡ ¹× °¨¼Ò ¿¬»êÀÚ
__¿¬»êÀÚ ¿ì¼±¼øÀ§ ¹× °áÇÕ¼º
__Æò°¡ ¼ø¼
____ºñ¼øÂ÷Àû Æò°¡¿Í ±ÔÁ¤µÇÁö ¾ÊÀº ¼øÂ÷Àû Æò°¡
____½ÃÄö½º Æ÷ÀÎÆ®
__sizeof ¿¬»êÀÚ
__»ê¼ú ¿¬»êÀÚ
____´ÜÇ× ¿¬»êÀÚ +¿Í -
____³í¸® ºÎÁ¤ ¿¬»êÀÚ
____°öÇϱ⠿¬»êÀÚ
____´õÇϱ⠿¬»êÀÚ
__ºñÆ® ¿¬»êÀÚ
____º¸¼ö ¿¬»êÀÚ
____½ÃÇÁÆ® ¿¬»êÀÚ
____ºñÆ® AND ¿¬»êÀÚ
____ºñÆ® ¹èŸÀû OR ¿¬»êÀÚ
____ºñÆ® Æ÷°ýÀû OR ¿¬»êÀÚ
__³í¸® ¿¬»êÀÚ
__ij½ºÆ® ¿¬»êÀÚ
__Á¶°ÇºÎ ¿¬»êÀÚ
___Alignof ¿¬»êÀÚ
__°ü°èÇü ¿¬»êÀÚ
__º¹ÇÕ ÇÒ´ç ¿¬»êÀÚ
__½°Ç¥ ¿¬»êÀÚ
__Æ÷ÀÎÅÍ »ê¼ú
__¿ä¾à
5Àå. È帧 Á¦¾î
__½Ä ¹®
__º¹ÇÕ ¹®
__¼±Åà ¹®
____if ¹®
____switch ¹®
__¹Ýº¹¹®
____while ¹®
____do...while
____for ¹®
__Á¡ÇÁ ¹®
____goto ¹®
____continue ¹®
____break ¹®
____return ¹®
__¿¬½À ¹®Á¦
__¿ä¾à
6Àå. µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®
__½ºÅ丮Áö ±â°£
____Èü°ú ¸Þ¸ð¸® °ü¸®ÀÚ
____µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °æ¿ì
__¸Þ¸ð¸® °ü¸® ÇÔ¼ö
____malloc ÇÔ¼ö
____aligned_alloc ÇÔ¼ö
____calloc ÇÔ¼ö
____realloc ÇÔ¼ö
____reallocarray ÇÔ¼ö
____free ÇÔ¼ö
__¸Þ¸ð¸® »óÅÂ
__À¯¿¬ÇÑ ¹è¿ ¸â¹ö
__µ¿ÀûÀ¸·Î ÇÒ´çµÈ ´Ù¸¥ ½ºÅ丮Áö
____alloca ÇÔ¼ö
____°¡º¯ ±æÀÌ ¹è¿
__ÇÒ´çµÈ ½ºÅ丮Áö ¹®Á¦ µð¹ö±ëÇϱâ
____Dmalloc
____¾ÈÀüÀÌ Áß¿äÇÑ ½Ã½ºÅÛ
__¿¬½À ¹®Á¦
__¿ä¾à
7Àå. ¹®ÀÚ¿Í ¹®ÀÚ¿
__¹®ÀÚ
____ASCII
____À¯´ÏÄÚµå
____¼Ò½º ¹× ½ÇÇà ¹®ÀÚ ÁýÇÕ
____µ¥ÀÌÅÍ Çü½Ä
____¹®ÀÚ »ó¼ö
____À̽ºÄÉÀÌÇÁ ¹®ÀÚ
____Linux
____Windows
____¹®ÀÚ º¯È¯
__¹®ÀÚ¿
____¹®ÀÚ¿ ¸®ÅÍ·²
__¹®ÀÚ¿ ó¸® ÇÔ¼ö
____¡´string.h¡µ¿Í ¡´wchar.h¡µ
____ºÎ¼Ó¼ K °æ°è °Ë»ç ÀÎÅÍÆäÀ̽º
____POSIX
____Microsoft
__¿ä¾à
8Àå. ÀÔÃâ·Â
__Ç¥ÁØ ÀÔÃâ·Â ½ºÆ®¸²
____½ºÆ®¸² ¹öÆÛ¸µ
____¹Ì¸® Á¤ÀÇµÈ ½ºÆ®¸²
____½ºÆ®¸² ¹æÇâ
____ÅØ½ºÆ® ¹× ÀÌÁø ½ºÆ®¸²
__ÆÄÀÏ ¿±â ¹× ¸¸µé±â
____fopen ÇÔ¼ö
____POSIX open ÇÔ¼ö
__ÆÄÀÏ ´Ý±â
____fclose ÇÔ¼ö
____POSIX close ÇÔ¼ö
__¹®ÀÚ¿Í ÁÙÀ» ÀÐ°í ¾²±â
__½ºÆ®¸² Ç÷¯½Ì
__ÆÄÀÏ¿¡¼ À§Ä¡ ¼³Á¤Çϱâ
__ÆÄÀÏ »èÁ¦ÇÏ±â ¹× À̸§ ¹Ù²Ù±â
__Àӽà ÆÄÀÏ »ç¿ëÇϱâ
__Çü½ÄÀÌ ÀÖ´Â ÅØ½ºÆ® ½ºÆ®¸² Àбâ
__ÀÌÁø ½ºÆ®¸²¿¡¼ ÀÐ±â ¹× ¾²±â
__¿ä¾à
9Àå. Àü󸮱â
__ÄÄÆÄÀÏ °úÁ¤
__ÆÄÀÏ Æ÷ÇÔ
____µû¿ÈÇ¥ ¹× ȬȻì°ýÈ£ Æ÷ÇÔ ¹®ÀÚ¿
__Á¶°ÇºÎ Æ÷ÇÔ
____¿À·ù ¸¸µé±â
____Çì´õ º¸È£±â »ç¿ëÇϱâ
__¸ÅÅ©·Î Á¤ÀÇ
____¸ÅÅ©·Î ´ëü
____Çü½Ä Á¦³×¸¯ ¸ÅÅ©·Î
____¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î
__¿ä¾à
10Àå. ÇÁ·Î±×·¥ ±¸Á¶
__±¸¼º ¿ä¼ÒÈÀÇ ¿øÄ¢
____°áÇÕµµ¿Í ÀÀÁýµµ
____ÄÚµå Àç»ç¿ë
____µ¥ÀÌÅÍ Ãß»óÈ
____ºÒÅõ¸í Çü½Ä
__½ÇÇà ÆÄÀÏ
__¸µÅ©
__°£´ÜÇÑ ÇÁ·Î±×·¥ ±¸Á¶ÈÇϱâ
__ÄÚµå ºôµåÇϱâ
__¿ä¾à
11Àå. µð¹ö±ë°ú Å×½ºÆ®, ºÐ¼®
__¾î¼³¼Ç
____Á¤Àû ¾î¼³¼Ç
____·±Å¸ÀÓ ¾î¼³¼Ç
__ÄÄÆÄÀÏ·¯ ¼³Á¤ ¹× Ç÷¡±×
____GCC ¹× Clang
____Visual C++
__µð¹ö±ë
__´ÜÀ§ Å×½ºÆ®
__Á¤Àû ºÐ¼®
__µ¿Àû ºÐ¼®
____AddressSanitizer
__¿¬½À ¹®Á¦
__¿ä¾à
-
-
 |
·Î¹öÆ® C. ½ÃÄÚµå [Àú]
|
 |
-
Ä«³×±â¸á·Ð´ëÇб³(Carnegie Mellon University)ÀÇ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ ¿¬±¸¼Ò(SEI, Software Engineering Institute CERT) ºÎ¼ÀÇ ¾ÈÀüÇÑ ÄÚµù ±â¼ú Ã¥ÀÓÀÚ´Ù. Ä«³×±â¸á·Ð´ëÇб³ÀÇ Á¤º¸ ³×Æ®¿öÅ· ¿¬±¸¼Ò¿Í ÄÄÇ»ÅÍ °úÇÐ ÇкÎÀÇ Á¶±³¼öÀ̱⵵ ÇÏ´Ù. ÇöÀç±îÁö ¡ºC & C++ ½ÃÅ¥¾î ÄÚµù¡»(¿¡ÀÌÄÜ, 2015), ¡ºÀÚ¹Ù ½ÃÅ¥¾î ÄÚµù °¡À̵å¶óÀΡ»(ÀÎÇÇ´ÏÆ¼ºÏ½º, 2017)À» Æ÷ÇÔÇØ ÃÑ 8±ÇÀÇ Ã¥À» ½è´Ù. ¼ÒÇÁÆ®¿þ¾î º¸¾È°ú ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ, À¥ ±â¹Ý ½Ã½ºÅÛ ¼³°è, ±¸ ½Ã½ºÅÛÀÇ Çö´ëÈ, ÄÄÆ÷³ÍÆ® ÀúÀå¼Ò¿Í °Ë»ö ¿£Áø, »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ¹× °³¹ß µî°ú °ü·ÃÇØ ÃÑ 40ÆíÀÇ ³í¹®À» ¹ßÇ¥Çß´Ù. 2005³âºÎÅÍ »ê¾÷ ±â°ü°ú ±³À° ±â°ü, Á¤ºÎ ±â°ü µî¿¡ C¿Í C++ ¾ð¾î·Î µÈ ¾ÈÀüÇÑ ÄÚµùÀ» °ÀÇÇϰí ÀÖ´Ù. 1982³â IBM¿¡¼ Àü¹®ÀûÀÎ ÇÁ·Î±×·¡¹ÖÀ» ½ÃÀÛÇßÀ¸¸ç Åë½Å°ú ¿î¿µÃ¼Á¦ ¼ÒÇÁÆ®¿þ¾î, ÇÁ·Î¼¼¼ °³¹ß, ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ µî ´Ù¹æ¸é¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϰí ÀÖ´Ù. X ÄÁ¼Ò½Ã¾ö(X Consortium)¿¡¼ ÀÏÇßÀ¸¸ç ´ç½Ã °øÅë µ¥½ºÅ©Åé ȯ°æ°ú X À©µµ¿ì ½Ã½ºÅÛ °³¹ß°ú ÄÚµå À¯Áö º¸¼ö Áö¿øÀ» Çß´Ù. C ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ Ç¥ÁØÈ¸¦ À§ÇÑ ISO/IEC JTC1/SC22/WG14¿¡¼ Ä«³×±â ¸á·Ð ´ëÇÐÀÇ ´ëÇ¥ ¸â¹ö·Î Ȱµ¿Çϰí ÀÖ´Ù.
-
-
Àüü 0°³ÀÇ ±¸¸ÅÈıⰡ ÀÖ½À´Ï´Ù.

 |
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹Ýǰ¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óǰÀ̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝǰÀº ¹«·á·Î ¹Ýǰ µË´Ï´Ù. |
|
±³È¯ ¹× ¹ÝǰÀÌ °¡´ÉÇÑ °æ¿ì |
»óǰÀ» °ø±Þ ¹ÞÀº ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´É
°ø±Þ¹ÞÀ¸½Å »óǰÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ù À̳», ȤÀº ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳»
»óǰ¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óǰÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´É |
|
±³È¯ ¹× ¹ÝǰÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
±¸¸ÅÈ®Á¤ ÀÌÈÄ(¿ÀǸ¶ÄÏ»óǰ¿¡ ÇÑÇÔ)
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óǰ µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
(´Ü, »óǰÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü)
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆÇ¸Å°¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì
Æ÷Àå °³ºÀµÇ¾î »óǰ °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì |
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹Ýǰ ȯºÒ |
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝǰÀ» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
1°³ Áö¿ªÀÇ ¹ÝǰÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝǰÀ» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
Áß°í»óǰÀÇ ±³È¯ |
Áß°í»óǰÀº Á¦ÇÑµÈ Àç°í ³»¿¡¼ ÆÇ¸Å°¡ ÀÌ·ç¾îÁö¹Ç·Î, ±³È¯Àº ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
¿ÀǸ¶ÄÏ »óǰÀÇ È¯ºÒ |
¿ÀǸ¶ÄÏ»óǰ¿¡ ´ëÇÑ Ã¥ÀÓÀº ¿øÄ¢ÀûÀ¸·Î ¾÷ü¿¡°Ô ÀÖÀ¸¹Ç·Î, ±³È¯/¹Ýǰ Á¢¼ö½Ã ¹Ýµå½Ã ÆÇ¸ÅÀÚ¿Í ÇùÀÇ ÈÄ ¹Ýǰ Á¢¼ö¸¦ ÇϼžßÇϸç, ¹ÝǰÁ¢¼ö ¾øÀÌ ¹Ý¼ÛÇϰųª, ¿ìÆíÀ¸·Î º¸³¾ °æ¿ì »óǰ È®ÀÎÀÌ ¾î·Á¿ö ȯºÒÀÌ ºÒ°¡´ÉÇÒ ¼ö ÀÖÀ¸´Ï À¯ÀÇÇϽñ⠹ٶø´Ï´Ù. |
|
|
 |
¹è¼Û¿¹Á¤ÀÏ ¾È³» |
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óǰ¿¡ ´ëÇØ ¹è¼Û¿Ï·á¿¹Á¤ÀÏÀ» À¥»çÀÌÆ®¿¡ Ç¥½ÃÇϰí ÀÖ½À´Ï´Ù.
|
<ÀÎÅÍÆÄÅ© Á÷¹è¼Û »óǰ> |
»óǰÀº ¿ù~Åä¿äÀÏ ¿ÀÀü 10½Ã ÀÌÀü ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ´çÀÏ Ãâ°í/´çÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óǰÀÔ´Ï´Ù. |
»óǰÀº ¼¿ïÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀº ´çÀÏ Ãâ°í/ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇϸç,
¼¿ï¿ÜÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀÇ °æ¿ì´Â ¿ÀÈÄ 6½Ã±îÁö ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óǰÀÔ´Ï´Ù.
(´Ü, ¿ù¿äÀÏÀº 12½Ã±îÁö ÁÖ¹®¿¡ ÇÑÇÔ)
|
»óǰÀº, ÀÔ°í¿¹Á¤ÀÏ(Á¦Ç°Ãâ½ÃÀÏ)+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù. |
~
»óǰÀº À¯ÅëÆ¯¼º»ó ÀÎÅÍÆÄÅ©¿¡¼ Àç°í¸¦ º¸À¯ÇÏÁö ¾ÊÀº »óǰÀ¸·Î ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø±âÁØÃâ°íÀÏ:ÀÎÅÍÆÄÅ©°¡ »óǰÀ» ¼ö±ÞÇÏ¿© ¹°·ùâ°í¿¡¼ Æ÷Àå/Ãâ°íÇϱâ±îÁö ¼Ò¿äµÇ´Â ½Ã°£
|
|
<¾÷ü Á÷Á¢¹è¼Û/¿ÀǸ¶ÄÏ »óǰ> |
~
»óǰÀº ¾÷ü°¡ ÁÖ¹®À» È®ÀÎÇϰí, Ãâ°íÇϱâ±îÁö °É¸®´Â ½Ã°£ÀÔ´Ï´Ù. ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(2ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø5ÀÏÀ̳» Ãâ°í°¡ ½ÃÀÛµÇÁö ¾ÊÀ»½Ã, ¿ÀǸ¶ÄÏ »óǰÀº ÀÚµ¿À¸·Î ÁÖ¹®ÀÌ Ãë¼ÒµÇ¸ç, °í°´´Ô²² ǰÀýº¸»ó±ÝÀ» Áö±ÞÇØ µå¸³´Ï´Ù.
|
|
|
¹è¼Ûºñ ¾È³» |
µµ¼(Áß°íµµ¼ Æ÷ÇÔ)¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
À½¹Ý/DVD¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
ÀâÁö/¸¸È/±âÇÁÆ®¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í À½¹Ý/DVD¸¦ ÇÔ²² ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø 1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í ÀâÁö/¸¸È/±âÇÁÆ®/Áß°íÁ÷¹è¼Û»óǰÀ» ÇÔ²² ±¸¸ÅÇϽøé : 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
¾÷üÁ÷Á¢¹è¼Û»óǰÀ» ±¸¸Å½Ã : ¾÷üº°·Î »óÀÌÇÑ ¹è¼Ûºñ Àû¿ë
* ¼¼Æ®»óǰÀÇ °æ¿ì ºÎºÐÃë¼Ò ½Ã Ãß°¡ ¹è¼Ûºñ°¡ ºÎ°úµÉ ¼ö ÀÖ½À´Ï´Ù.
* ºÏīƮ¿¡¼ ¹è¼Ûºñ¾ø¾Ö±â ¹öưÀ» Ŭ¸¯Çϼż, µ¿ÀϾ÷ü»óǰÀ» Á¶±Ý ´õ ±¸¸ÅÇϽøé, ¹è¼Ûºñ¸¦ Àý¾àÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
|
ÇØ¿Ü¹è¼Û ¾È³» |
ÀÎÅÍÆÄÅ©µµ¼¿¡¼´Â ±¹³»¿¡¼ ÁÖ¹®ÇϽðųª ÇØ¿Ü¿¡¼ ÁÖ¹®ÇÏ¿© ÇØ¿Ü·Î ¹è¼ÛÀ» ¿øÇÏ½Ç °æ¿ì DHL°ú Ư¾àÀ¸·Î Ã¥Á¤µÈ ¿ä±ÝÇ¥¿¡
ÀÇÇØ °³ÀÎÀÌ ÀÌ¿ëÇÏ´Â °æ¿ìº¸´Ù ¹è¼Û¿ä±ÝÀ» Å©°Ô ³·Ã߸ç DHL(www.dhl.co.kr)·Î ÇØ¿Ü¹è¼Û ¼ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù.
ÇØ¿Ü¹è¼ÛÀº µµ¼/CD/DVD »óǰ¿¡ ÇÑÇØ ¼ºñ½ºÇϰí ÀÖÀ¸¸ç, ´Ù¸¥ »óǰÀ» ºÏīƮ¿¡ ÇÔ²² ´ãÀ¸½Ç °æ¿ì ÇØ¿Ü¹è¼ÛÀÌ ºÒ°¡ÇÕ´Ï´Ù.
ÇØ¿ÜÁÖ¹®¹è¼Û ¼ºñ½º´Â ÀÎÅÍÆÄÅ© µµ¼ ȸ¿ø °¡ÀÔÀ» Çϼž߸¸ ½Åû °¡´ÉÇÕ´Ï´Ù. |
|
¾Ë¾ÆµÎ¼¼¿ä!!! |
µµ¸Å»ó ¹× Á¦ÀÛ»ç »çÁ¤¿¡ µû¶ó ǰÀý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
¿ÀǸ¶ÄϾ÷üÀÇ ¹è¼ÛÁö¿¬½Ã ÁÖ¹®ÀÌ ÀÚµ¿À¸·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óǰÀ» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
À¯ÅëÀÇ Æ¯¼º»ó Ãâ°í±â°£Àº ¿¹Á¤º¸´Ù ¾Õ´ç°ÜÁö°Å³ª ´ÊÃçÁú ¼ö ÀÖ½À´Ï´Ù.
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù. |
|
 |
|
|