- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > ÇÁ·Î±×·¡¹Ö/¾ð¾î > È¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú[Á¦ÀÌÆà]
ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Áö½ÄÀº ¾î´À Á¤µµ ÀÖÁö¸¸,
ÆÄÀ̽ãÀº Àß ¸ð¸£´Â ºÐµéÀ» À§ÇÑ ½ÇõÀû ÀÔ¹®¼!
¡ºÈ¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú¡»Àº ÀÌ·± ºÐµéÀ» À§ÇÑ Àб⠽¬¿ì¸é¼µµ ¾èÁö ¾ÊÀº ÀÔ¹®¼·Î¼ ÆÄÀ̽ãÀ̶ó´Â ¾ð¾îÀÇ »ç¾ç°ú ±× Ư¡ÀûÀÎ ±â´É, Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ÀÖ´Â °ÍÀ» ÁßÁ¡ÀûÀ¸·Î ´Ù·ï À¥ °³¹ß, µ¥ÀÌÅÍ ºÐ¼®, ¸Ó½Å·¯´× µî ºÐ¾ß¸¦ °¡¸®Áö ¾Ê°í È°¿ëÇÒ ¼ö ÀÖ´Ù. °¢ ´Ü°è¸¶´Ù »ùÇà ÄÚµå¿Í ÄÚ¸àÆ®°¡ ¹«¾ùÀ» ÇÏ°í ÀÖ´ÂÁö¸¦ ¸íÈ®È÷ ÆľÇÇÒ ¼ö ÀÖµµ·Ï ÀÚ¼¼ÇÏ°Ô ±â¼úÇÏ¿´°í, ÆÄÀ̽ãÀÇ ±â´É ¼³¸í¿¡¸¸ ±×Ä¡Áö ¾Ê°í ½ÇÁ¦·Î ÀÀ¿ë ÇÁ·Î±×·¥ Á¦ÀÛ±îÁö ´Ù·ç°í ÀÖ´Ù. ?
ÆÄÀ̽ãÀº Àß ¸ð¸£´Â ºÐµéÀ» À§ÇÑ ½ÇõÀû ÀÔ¹®¼!
¡ºÈ¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú¡»Àº ÀÌ·± ºÐµéÀ» À§ÇÑ Àб⠽¬¿ì¸é¼µµ ¾èÁö ¾ÊÀº ÀÔ¹®¼·Î¼ ÆÄÀ̽ãÀ̶ó´Â ¾ð¾îÀÇ »ç¾ç°ú ±× Ư¡ÀûÀÎ ±â´É, Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ÀÖ´Â °ÍÀ» ÁßÁ¡ÀûÀ¸·Î ´Ù·ï À¥ °³¹ß, µ¥ÀÌÅÍ ºÐ¼®, ¸Ó½Å·¯´× µî ºÐ¾ß¸¦ °¡¸®Áö ¾Ê°í È°¿ëÇÒ ¼ö ÀÖ´Ù. °¢ ´Ü°è¸¶´Ù »ùÇà ÄÚµå¿Í ÄÚ¸àÆ®°¡ ¹«¾ùÀ» ÇÏ°í ÀÖ´ÂÁö¸¦ ¸íÈ®È÷ ÆľÇÇÒ ¼ö ÀÖµµ·Ï ÀÚ¼¼ÇÏ°Ô ±â¼úÇÏ¿´°í, ÆÄÀ̽ãÀÇ ±â´É ¼³¸í¿¡¸¸ ±×Ä¡Áö ¾Ê°í ½ÇÁ¦·Î ÀÀ¿ë ÇÁ·Î±×·¥ Á¦ÀÛ±îÁö ´Ù·ç°í ÀÖ´Ù. ?
ÀúÀÚ: ½º¾ß¸¶ ·¹ÀÌ (ÁöÀºÀÌ), ±è¿¬¼ö (¿Å±äÀÌ)
CHAPTER 1 ÆÄÀ̽ãÀ̶õ ¾î¶² ¾ð¾îÀΰ¡? 1
1.1 ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ÀÇ Æ¯Â¡ 3
1.1.1 °£´ÜÇÏ°í Àб⠽¬¿î µ¿Àû ŸÀÔ ¾ð¾î 3
1.1.2 ÇÏÀ§ ȣȯ¼º Á߽à 5
1.1.3 dzºÎÇÑ Ç¥ÁØ ¶óÀ̺귯¸® 6
1.1.4 ´Ù¾çÇÑ ¿ëµµ·Î ÀÌ¿ë 6
1.2 ÆÄÀ̽ãÀÇ ¿ª»ç¿Í ÇöȲ 7
1.2.1 ÆÄÀ̽ã ÀÚüÀÇ ÁøÈ 8
1.2.2 ÆÄÀ̽ãÀ» µÑ·¯½Ñ ȯ°æÀÇ º¯È 9
1.3 ÆÄÀ̽ã Ä¿¹Â´ÏƼÀÇ Æ¯Â¡ 10
1.3.1 Ä¿¹Â´ÏƼ ÁÖü ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾î 10
1.3.2 PEPÀÇ Á¸Àç 11
1.4 Á¤¸® 15
CHAPTER 2 ÆÄÀ̽㠼³Ä¡¿Í °³¹ßÀÚ¸¦ À§ÇÑ Æí¸®ÇÑ ±â´É 17
2.1 ÆÄÀ̽㠼³Ä¡ 19
2.1.1 OS¿¡ ¹Ì¸® ¼³Ä¡µÇ¾î ÀÖ´Â ÆÄÀ̽ã 19
2.1.2 macOS¿¡¼ÀÇ ÀÌ¿ë 19
2.1.3 Windows¿¡¼ÀÇ ÀÌ¿ë 21
2.1.4 Ubuntu¿¡¼ÀÇ ÀÌ¿ë 23
2.1.5 µµÄ¿ ÀÌ¿ë 24
2.2 ÆÄÀ̽㠽ÇÇà 28
2.2.1 ÀÌ Ã¥¿¡¼ ÀÌ¿ëÇÏ´Â ÆÄÀ̽㠸í·É¾î 28
2.2.2 ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍÀÇ µÎ °¡Áö ¸ðµå 28
2.2.3 ´ëÈÇü ¸ðµå ÀÎÅÍÇÁ¸®ÅÍ 29
2.2.4 ´ëÈÇü ¸ðµåÀÇ ±âº» »ç¿ë¹ý 29
2.2.5 ´ëÈÇü ¸ðµå¿¡¼ ÀÚÁÖ »ç¿ëÇÏ´Â ³»Àå ÇÔ¼ö 31
2.2.6 ½ºÅ©¸³Æ® ½ÇÇà 35
2.2.7 python ¸í·É¾î¿Í python3 ¸í·É¾îÀÇ Â÷ÀÌ 37
2.3 Á¤¸® 37
CHAPTER 3 Á¦¾î È帧 39
3.1 ±âº» ¹®¹ý 41
3.1.1 µé¿©¾²±â¸¦ »ç¿ëÇÑ ºí·Ï Ç¥Çö 41
3.1.2 º¯¼ö ÀÌ¿ë 43
3.1.3 ÁÖ¼® 45
3.2 Á¶°Ç ºÐ±â 47
3.2.1 if ¹® ¡ª Á¶°ÇÀ» ÁöÁ¤ÇØ Ã³¸®¸¦ ºÐ±âÇÔ 47
3.3 ·çÇÁ ¡ª ó¸® ¹Ýº¹ 51
3.3.1 for ¹® ¡ª ¿¤¸®¸ÕÆ® ¼ö¸¸Å 󸮸¦ ¹Ýº¹ 51
3.3.2 while ¹® ¡ª Á¶°ÇÀ» ÁöÁ¤ÇØ Ã³¸®¸¦ ¹Ýº¹ 55
3.3.3 break ¹® ¡ª ·çÇÁ¸¦ ¹þ¾î³² 56
3.3.4 continue ¹® ¡ª ´ÙÀ½ ·çÇÁ·Î À̵¿ 57
3.4 ¿¹¿Ü ó¸® 59
3.4.1 try ¹® ¡ª ¿¹¿Ü Æ÷Âø 60
3.4.2 raise ¹® ¡ª ÀǵµÀûÀ¸·Î ¿¹¿Ü¸¦ ¹ß»ý½ÃÅ´ 65
3.4.3 »ç¿ëÀÚ ¿¹¿Ü Á¤ÀÇ 65
3.4.4 with ¹® ¡ª Á¤ÀÇÇÑ Å¬¸°¾÷ 󸮸¦ ¹Ýµå½Ã ½ÇÇàÇÔ 66
3.5 Á¤¸® 67
CHAPTER 4 µ¥ÀÌÅÍ ±¸Á¶ 69
4.1 None ¡ª °ªÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½À» Ç¥Çö 71
4.1.1 Á¶°Ç½Ä¿¡¼ÀÇ None ÀÌ¿ë 71
4.2 ³í¸´°ª ¡ª Âü/°ÅÁþÀ» ´Ù·ë 72
4.2.1 bool ŸÀÔ ¡ª ³í¸´°ªÀ» ´Ù·ç´Â ŸÀÔ 72
4.2.2 ºÒ ¿¬»ê 73
4.3 ¼ýÀã°ª 75
4.3.1 ¼ýÀã°ª³¢¸®ÀÇ ¿¬»ê 75
4.3.2 ¼ýÀã°ªÀ» ´Ù·ç´Â ³»Àå ŸÀÔ 77
4.3.3 Á¶°Ç½Ä¿¡¼ÀÇ ¼ýÀã°ª ÀÌ¿ë 80
4.4 ¹®ÀÚ¿ 81
4.4.1 str ŸÀÔ ¡ª ¹®ÀÚ¿À» ´Ù·ç´Â ŸÀÔ 81
4.4.2 ¹®ÀÚ¿ ¿¬»ê 82
4.4.3 for ¹®¿¡¼ÀÇ ¹®ÀÚ¿ÀÇ µ¿ÀÛ 82
4.4.4 Á¶°Ç½Ä¿¡¼ÀÇ ¹®ÀÚ¿ ÀÌ¿ë 83
4.4.5 ¹®ÀÚ¿ ¾È¿¡¼ÀÇ º¯¼ö ÀÌ¿ë 83
4.4.6 str ŸÀÔ°ú ¸Å¿ì ºñ½ÁÇÑ bytes ŸÀÔ 86
4.5 ¹è¿ ¡ª ¿¤¸®¸ÕÆ®¸¦ 1¿·Î ³ª¿Çؼ ´Ù·ë 87
4.5.1 list ŸÀÔ ¡ª º¯°æÇÒ ¼ö ÀÖ´Â ¹è¿À» ´Ù·ç´Â ŸÀÔ 88
4.5.2 tuple ŸÀÔ ¡ª º¯°æÇÒ ¼ö ¾ø´Â ¹è¿À» ´Ù·ç´Â ŸÀÔ 90
4.5.3 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëµÇ´Â ¹è¿ÀÇ Æ¯¼º 93
4.5.4 Æ©Çðú ¸®½ºÆ®ÀÇ ÀÌ¿ë ±¸ºÐ 94
4.6 µñ¼Å³Ê¸® ¡ª Å°¿Í °ªÀÇ ¼¼Æ®¸¦ ´Ù·ë 94
4.6.1 dict ŸÀÔ ¡ª µñ¼Å³Ê¸®¸¦ ´Ù·ç´Â ŸÀÔ 94
4.6.2 ¿¤¸®¸ÕÆ® Ãß°¡¿Í »èÁ¦ 95
4.6.3 Å°¸¦ ÀÌ¿ëÇÑ ¿¤¸®¸ÕÆ®·ÎÀÇ Á¢±Ù 95
4.6.4 Å°·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ÀÇ Á¶°Ç 96
4.6.5 for ¹®¿¡¼ÀÇ µñ¼Å³Ê¸®ÀÇ µ¿ÀÛ 96
4.6.6 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â µñ¼Å³Ê¸®ÀÇ Æ¯¼º 97
4.7 ÁýÇÕ ¡ª À¯ÀÏÇÑ ¿¤¸®¸ÕÆ®ÀÇ ÁýÇÕÀ» ´Ù·ë 98
4.7.1 set ŸÀÔ ¡ª º¯°æÇÒ ¼ö ÀÖ´Â ÁýÇÕÀ» ´Ù·ç´Â ŸÀÔ 98
4.7.2 frozenset ŸÀÔ ¡ª º¯°æÇÒ ¼ö ¾ø´Â ÁýÇÕÀ» ´Ù·ç´Â ŸÀÔ 100
4.7.3 ÁýÇÕ ¿¬»ê ¡ª ÇÕÁýÇÕ, ±³ÁýÇÕ, Â÷ÁýÇÕ, ´ëĪÂ÷ÁýÇÕ 100
4.7.4 for ¹®¿¡¼ÀÇ ÁýÇÕÀÇ µ¿ÀÛ 101
4.7.5 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÁýÇÕÀÇ Æ¯¼º 102
4.8 ÄÄÇÁ¸®Çî¼Ç ¡ª È¿À²ÀûÀÎ ½ÃÄö½º »ý¼º 103
4.8.1 ¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç ¡ª È¿À²ÀûÀÎ ¸®½ºÆ® »ý¼º 103
4.8.2 ±âŸ ÄÄÇÁ¸®Çî¼Ç 106
4.9 ±× ¿Ü ŸÀÔÀ» ³ªÅ¸³»´Â °³³ä 106
4.9.1 °¡º¯ °´Ã¼ ¡ª Á¤ÀÇ ÈÄ °ªÀ» º¯°æÇÒ ¼ö ÀÖ´Â °´Ã¼ 107
4.9.2 ºÒº¯ °´Ã¼ ¡ª Á¤ÀÇ ÈÄ °ªÀ» º¯°æÇÒ ¼ö ¾ø´Â °´Ã¼ 107
4.9.3 ÄÁÅ×ÀÌ³Ê °´Ã¼ ¡ª ´Ù¸¥ °´Ã¼¿¡ ´ëÇÑ ÂüÁ¶¸¦ °¡Áø °´Ã¼ 107
4.9.4 ÀÌÅÍ·¯ºí °´Ã¼ ¡ª for ¹®¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ 108
4.9.5 È£Ãâ °¡´É °´Ã¼ ¡ª ()¸¦ ºÙ¿© È£ÃâÇÒ ¼ö ÀÖ´Â °´Ã¼ 108
4.10 Á¤¸® 108
CHAPTER 5 ÇÔ¼ö 109
5.1 ÇÔ¼ö ¡ª °ü·ÃµÈ 󸮸¦ ¸ðÀ½ 111
5.1.1 ÇÔ¼ö Á¤ÀÇ¿Í ½ÇÇà 111
5.1.2 Àμö¸¦ ¹Þ´Â ÇÔ¼ö 112
5.1.3 ÇÔ¼ö´Â °´Ã¼ 112
5.1.4 ÇÔ¼öÀÇ ¹Ýȯ°ª 113
5.1.5 ÇÔ¼öÀÇ ´Ù¾çÇÑ Àμö 115
5.1.6 Àμö ¸®½ºÆ® ¾ðÆÑ ¡ª ¸®½ºÆ®³ª µñ¼Å³Ê¸®¿¡ ÀúÀåµÈ °ªÀ» Àμö·Î Àü´Þ 123
5.1.7 ÇÔ¼öÀÇ µ¶½ºÆ®¸µ 123
5.2 lambda ½Ä ¡ª À̸§ÀÌ ¾ø´Â ÇÔ¼ö ÀÛ¼º 125
5.2.1 lambda ½Ä Á¤ÀÇ¿Í ½ÇÇà 125
5.2.2 lambda ½ÄÀ» »ç¿ëÇÒ À§Ä¡ 125
5.3 ŸÀÔ ÈùÆ® 126
5.3.1 ŸÀÔ Á¤º¸¸¦ ºÎ¿©ÇÔÀ¸·Î½á ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡ 126
5.3.2 ŸÀÔ Á¤º¸ ºÎ¿© 126
5.3.3 ŸÀÔ ÈùÆ® È°¿ë »ç·Ê ¡ª Á¤Àû ºÐ¼® µµ±¸ ÀÌ¿ë 128
5.4 Á¤¸® 129
CHAPTER 6 Ŭ·¡½º¿Í ÀνºÅϽº 131
6.1 ÆÄÀ̽ãÀÇ Å¬·¡½º ±¸Á¶ 133
6.1.1 class Å°¿öµå¸¦ ÀÌ¿ëÇÑ Å¬·¡½º Á¤ÀÇ 133
6.1.2 ÀνºÅϽº ¸¸µé±â 134
6.2 ÀνºÅϽº ¡ª Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ¸¸µé¾îÁø °´Ã¼ 134
6.2.1 ÀνºÅϽº ¸Þ¼µå ¡ª ÀνºÅϽº¿¡ ¹ÀÎ ¸Þ¼µå 135
6.2.2 ÀνºÅϽº º¯¼ö ¡ª ÀνºÅϽº°¡ À¯ÁöÇÏ´Â º¯¼ö 136
6.2.3 ÀνºÅϽº ÃʱâÈ 136
6.2.4 ÇÁ·ÎÆÛƼ ¡ª ÀνºÅϽº ¸Þ¼µå¸¦ ÀνºÅϽº º¯¼ö¿Í °°ÀÌ ´Ù·ë 140
6.2.5 Ŭ·¡½º¿Í ÀνºÅϽºÀÇ ÇÁ¶óÀ̺ø ¼Ó¼º 143
6.3 Ŭ·¡½º ¡ª ÀνºÅϽºÀÇ ¸ðÇüÀÌ µÇ´Â °´Ã¼ 144
6.3.1 Ŭ·¡½º º¯¼ö ¡ª Ŭ·¡½º °´Ã¼°¡ À¯ÁöÇÏ´Â º¯¼ö 144
6.3.2 Ŭ·¡½º ¸Þ¼µå ¡ª Ŭ·¡½º¿¡ ¼ÓÇÑ ¸Þ¼µå 146
6.4 Ŭ·¡½º »ó¼Ó 149
6.4.1 ¸Þ¼µå ¿À¹ö¶óÀ̵å¿Í super()¸¦ »ç¿ëÇÑ º£À̽º Ŭ·¡½º·ÎÀÇ Á¢±Ù 149
6.4.2 ¸ðµç °´Ã¼´Â object Ŭ·¡½ºÀÇ ¼ºê Ŭ·¡½º 150
6.4.3 ´ÙÁß »ó¼Ó ¡ª ¿©·¯ º£À̽º Ŭ·¡½º¸¦ ÁöÁ¤ 150
6.4.4 ´ÙÁß »ó¼Ó ½Ã ÁÖÀÇÁ¡ 151
6.5 Á¤¸® 154
CHAPTER 7 ¸ðµâ, ÆÐÅ°Áö, À̸§ °ø°£, ½ºÄÚÇÁ 155
7.1 ¸ðµâ ¡ª Äڵ带 ±â¼úÇÑ .py ÆÄÀÏ 157
7.1.1 ¸ðµâ ÀÛ¼º 157
7.1.2 ¸ðµâ ÀÓÆ÷Æ® 158
7.1.3 python3 ¸í·É¾î·Î Á÷Á¢ ½ÇÇàÇϱâ 158
7.2 ÆÐÅ°Áö ¡ª ¸ðµâÀÇ ÁýÇÕ 163
7.2.1 ÆÐÅ°Áö ÀÛ¼º 164
7.2.2 ÆÐÅ°Áö ¾È¿¡ ÀÖ´Â ¸ðµâ ÀÓÆ÷Æ® 165
7.2.3 import ¹® ºñ±³ 168
7.3 ÀÓÆ÷Æ®ÀÇ ±¸Á¶ 172
7.3.1 ¸ðµâ °Ë»ö È帧 173
7.3.2 sys.path ¡ª ¸ðµâ °Ë»ö °æ·Î 173
7.3.3 PYTHONPATH ¡ª sys.path¿¡ °Ë»ö °æ·Î¸¦ Ãß°¡ 175
7.4 À̸§ °ø°£°ú º¯¼öÀÇ ½ºÄÚÇÁ 176
7.4.1 À̸§ °ø°£ ¡ª À̸§°ú °´Ã¼ÀÇ ¸ÅÇÎ 176
7.4.2 ½ºÄÚÇÁ ¡ª Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¿µ¿ª 177
7.5 Á¤¸® 185
CHAPTER 8 ³»Àå ÇÔ¼ö¿Í Ư¼ö ¸Þ¼µå 187
8.1 ³»Àå ÇÔ¼ö ¡ª Ç×»ó ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö 189
8.1.1 °´Ã¼ ŸÀÔÀ» Á¶»çÇÏ´Â ÇÔ¼ö 189
8.1.2 °´Ã¼ ¼Ó¼º¿¡ °üÇÑ ÇÔ¼ö 192
8.1.3 getattr( ), setattr( ), delattr( ) ¡ª °´Ã¼ ¼Ó¼º Á¶ÀÛ 193
8.1.4 ÀÌÅÍ·¯ºí °´Ã¼¸¦ ¹Þ´Â ÇÔ¼ö 194
8.1.5 ±âŸ ³»Àå ÇÔ¼ö 200
8.2 Ư¼ö ¸Þ¼µå ¡ª ÆÄÀ̽ãÀÌ ¾Ï¹¬ÀûÀ¸·Î È£ÃâÇϴ Ưº°ÇÑ ¸Þ¼µå 200
8.2.1 __str__( ), __repr__( ) ¡ª °´Ã¼¸¦ ¹®ÀÚ¿·Î Ç¥Çö 201
8.2.2 __bool__( ) ¡ª °´Ã¼¸¦ ³í¸´°ªÀ¸·Î Æò°¡ÇÔ 202
8.2.3 __call__( ) ¡ª ÀνºÅϽº¸¦ ÇÔ¼öó·³ ´Ù·ë 203
8.2.4 ¼Ó¼ºÀ¸·ÎÀÇ µ¿Àû Á¢±Ù 204
8.2.5 ÀÌÅÍ·¯ºí °´Ã¼·Î¼ µ¿ÀÛ 207
8.2.6 ÄÁÅ×ÀÌ³Ê °´Ã¼·Î¼ µ¿ÀÛ 209
8.2.7 ±âŸ Ư¼ö ¸Þ¼µå 212
8.3 Á¤¸® 213
CHAPTER 9 ÆÄÀ̽ãÀÇ µ¶Æ¯ÇÑ ±â´Éµé 215
9.1 Á¦³Ê·¹ÀÌÅÍ ¡ª ¸Þ¸ð¸® È¿À²ÀÌ ³ôÀº ÀÌÅÍ·¯ºí °´Ã¼ 217
9.1.1 Á¦³Ê·¹ÀÌÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 217
9.1.2 Á¦³Ê·¹ÀÌÅÍ ±¸Çö 217
9.1.3 Á¦³Ê·¹ÀÌÅÍ ÀÌ¿ë ½Ã ÁÖÀÇÁ¡ 221
9.1.4 Á¦³Ê·¹ÀÌÅÍ ½ÇÁ¦ »ç·Ê ¡ª ÆÄÀÏ ³»¿ë º¯È¯Çϱâ 223
9.1.5 ±âŸ ÀÌ¿ë »ç·Ê 224
9.2 µ¥Ä¿·¹ÀÌÅÍ ¡ª ÇÔ¼ö³ª Ŭ·¡½º¸í¿¡ ó¸® Ãß°¡ 224
9.2.1 µ¥Ä¿·¹ÀÌÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 224
9.2.2 µ¥Ä¿·¹ÀÌÅÍ ±¸Çö 226
9.2.3 µ¥Ä¿·¹ÀÌÅÍ ½ÇÁ¦ »ç·Ê ¡ª ó¸® ½Ã°£ ÃøÁ¤ 231
9.2.4 ±âŸ ÀÌ¿ë »ç·Ê 232
9.3 ÄÜÅؽºÆ® °ü¸®ÀÚ ¡ª with ¹® ¾ÕµÚ¿¡¼ 󸮸¦ ½ÇÇàÇÏ´Â °´Ã¼ 233
9.3.1 ÄÜÅؽºÆ® °ü¸®ÀÚÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 233
9.3.2 ÄÜÅؽºÆ® °ü¸®ÀÚ ½ÇÁ¦ »ç·Ê ¡ª ÀϽÃÀûÀÎ ·Î±ë ¼öÁØ º¯°æ 238
9.3.3 ±âŸ ÀÌ¿ë »ç·Ê 239
9.4 µð½ºÅ©¸³ÅÍ ¡ª ¼Ó¼º 󸮸¦ Ŭ·¡½º·Î ÀÌø 240
9.4.1 µð½ºÅ©¸³ÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 240
9.4.2 µð½ºÅ©¸³ÅÍ ±¸Çö 242
9.4.3 µð½ºÅ©¸³ÅÍ ½ÇÁ¦ »ç·Ê ¡ª ÇÁ·ÎÆÛƼ ij½Ã 245
9.4.4 ±âŸ ÀÌ¿ë »ç·Ê 247
9.5 Á¤¸® 247
CHAPTER 10 µ¿½Ã ó¸® 249
10.1 µ¿½Ã ó¸®¿Í º´·Ä ó¸® ¡ª ¿©·¯ 󸮸¦ µ¿½Ã¿¡ ¼öÇà 251
10.1.1 ¼øÂ÷ ó¸® ½ÇÇà 251
10.1.2 µ¿½Ã ó¸® ½ÇÇà 251
10.1.3 º´·Ä ó¸® ½ÇÇà 252
10.1.4 ÆÄÀ̽ã°ú µ¿½Ã ó¸® 252
10.2 concurrent.futures ¸ðµâ ¡ª µ¿½Ã 󸮸¦ À§ÇÑ °í¼öÁØ ÀÎÅÍÆäÀ̽º 253
10.2.1 Future Ŭ·¡½º¿Í Executor Ŭ·¡½º ¡ª ºñµ¿±â ó¸® ĸ½¶È¿Í ½ÇÇà 254
10.2.2 ThreadPoolExecutor Ŭ·¡½º ¡ª ½º·¹µå ±â¹Ý ºñµ¿±â ½ÇÇà 256
10.2.3 ThreadPoolExecutor Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ
10.2.4 ProcessPoolExecutor Ŭ·¡½º ¡ª ÇÁ·Î¼¼½º ±â¹Ý ºñµ¿±â ½ÇÇà 263
10.2.5 ProcessPoolExecutor Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ ´ÙÁß ÇÁ·Î¼¼½º ó¸® ±¸Çö 263
10.3 asyncio ¸ðµâ ¡ª À̺¥Æ® ·çÇÁ¸¦ »ç¿ëÇÑ µ¿½Ã ó¸® ¼öÇà 271
10.3.1 ÄÚ·çƾ ¡ª ó¸® µµÁß¿¡ Áß´Ü, ´Ù½Ã ½ÃÀÛ 272
10.3.2 ÄÚ·çƾ ½ºÄÉÁÙ¸µ°ú ½ÇÇà 276
10.3.3 asyncio ¸ðµâ°ú HTTP Åë½Å 279
10.4 Á¤¸® 280
CHAPTER 11 °³¹ß ȯ°æ°ú ÆÐÅ°Áö °ü¸® 281
11.1 °¡»ó ȯ°æ ¡ª °Ý¸®µÈ ÆÄÀ̽㠽ÇÇà ȯ°æ 283
11.1.1 venv ¡ª °¡»ó ȯ°æ »ý¼º µµ±¸ 283
11.2 ÆÐÅ°Áö ÀÌ¿ë 289
11.2.1 pip ¡ª ÆÐÅ°Áö °ü¸® µµ±¸ 289
11.2.2 ȯ°æ ÀúÀå°ú ÀçÇö ¡ª requirements ÆÄÀÏ È°¿ë 298
11.3 ÆÐÅ°Áö ÀÛ¼º 302
11.3.1 setup.py ¡ª ÆÐÅ°Áö Á¤º¸¸¦ ¸ð¾ÆµÐ ÆÄÀÏ 302
11.3.2 PyPI¿¡ ÆÐÅ°Áö µî·Ï 309
11.4 Á¤¸® 313
CHAPTER 12 ´ÜÀ§ Å×½ºÆ® 315
12.1 ´ÜÀ§ Å×½ºÆ® µµÀÔ 317
12.1.1 ´ÜÀÏ ¸ðµâ Å×½ºÆ® 317
12.1.2 ÆÐÅ°Áö Å×½ºÆ® 319
12.2 unittest ¸ðµâ ¡ª Ç¥ÁØ ´ÜÀ§ Å×½ºÆ® ¶óÀ̺귯¸® 323
12.2.1 Å×½ºÆ® ÄÉÀ̽º ±¸Çö 323
12.2.2 Å×½ºÆ® ½ÇÇà°ú °á°ú È®ÀÎ 327
12.2.3 ƯÁ¤ÇÑ Å×½ºÆ®¸¸ ½ÇÇàÇϱâ 329
12.3 unittest.mock ¸ðµâ ¡ª ¸ðÀÇ °´Ã¼ ÀÌ¿ë 331
12.3.1 ¸ðÀÇ °´Ã¼ ±âº» »ç¿ë¹ý 331
12.3.2 patch¸¦ »ç¿ëÇÑ °´Ã¼ ġȯ 334
12.3.3 mockÀ» ÀÌ¿ëÇÑ Å×½ºÆ® ÄÉÀ̽º ±¸Çö 335
12.4 »óȲ¿¡ µû¸¥ Å×½ºÆ® ÄÉÀ̽º ±¸Çö 336
12.4.1 ȯ°æ¿¡ ÀÇÁ¸ÇÏ´Â Å×½ºÆ® °Ç³Ê¶Ù±â 337
12.4.2 ¿¹¿Ü ¹ß»ý Å×½ºÆ®Çϱâ 338
12.4.3 ´Ù¸¥ ÆĶó¹ÌÅÍ·Î µ¿ÀÏÇÑ Å×½ºÆ® ¹Ýº¹Çϱâ 339
12.4.4 ÄÜÅؽºÆ® °ü¸®ÀÚ Å×½ºÆ®Çϱâ 340
12.5 Á¤¸® 341
CHAPTER 13 ÆÄÀ̽㠾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ½ÇÀü 343
13.1 ÀÛ¼ºÇÒ ¾ÖÇø®ÄÉÀÌ¼Ç 345
13.1.1 LGTM À̹ÌÁö¸¦ ÀÚµ¿À¸·Î »ý¼ºÇÏ´Â Ä¿¸Çµå ¶óÀÎ µµ±¸ 345
13.1.2 ÀÌ¿ëÇÒ ÁÖ¿ä ¿ÜºÎ ÆÐÅ°Áö 346
13.2 ÇÁ·ÎÁ§Æ® ÀÛ¼º 349
13.2.1 Git ÀÌ¿ë 350
13.2.2 ÆÐÅ°Áö ¸ðÇü ÀÛ¼º 351
13.3 Áö¼ÓÀûÀÎ ÅëÇÕ µµÀÔ 354
13.3.1 CircleCI¿¡¼ÀÇ Å×½ºÆ® ÀÚµ¿È 354
13.3.2 Å×½ºÆ® ½ÇÇà ¹× °á°ú È®ÀÎ 356
13.4 ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß 358
13.4.1 Ä¿¸Çµå ¶óÀÎ Àμö ¾ò±â 358
13.4.2 À̹ÌÁö ¾ò±â 361
13.4.3 À̹ÌÁö ó¸® 364
13.4.4 °¢°¢ÀÇ Ã³¸® È£Ãâ 366
13.5 ¸í·É¾î·Î ½ÇÇàÇϱâ 367
13.5.1 setup.py ÀÛ¼º 367
13.5.2 µ¿ÀÛ È®ÀÎÇϱâ 368
13.6 Á¤¸® 369
1.1 ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ÀÇ Æ¯Â¡ 3
1.1.1 °£´ÜÇÏ°í Àб⠽¬¿î µ¿Àû ŸÀÔ ¾ð¾î 3
1.1.2 ÇÏÀ§ ȣȯ¼º Á߽à 5
1.1.3 dzºÎÇÑ Ç¥ÁØ ¶óÀ̺귯¸® 6
1.1.4 ´Ù¾çÇÑ ¿ëµµ·Î ÀÌ¿ë 6
1.2 ÆÄÀ̽ãÀÇ ¿ª»ç¿Í ÇöȲ 7
1.2.1 ÆÄÀ̽ã ÀÚüÀÇ ÁøÈ 8
1.2.2 ÆÄÀ̽ãÀ» µÑ·¯½Ñ ȯ°æÀÇ º¯È 9
1.3 ÆÄÀ̽ã Ä¿¹Â´ÏƼÀÇ Æ¯Â¡ 10
1.3.1 Ä¿¹Â´ÏƼ ÁÖü ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾î 10
1.3.2 PEPÀÇ Á¸Àç 11
1.4 Á¤¸® 15
CHAPTER 2 ÆÄÀ̽㠼³Ä¡¿Í °³¹ßÀÚ¸¦ À§ÇÑ Æí¸®ÇÑ ±â´É 17
2.1 ÆÄÀ̽㠼³Ä¡ 19
2.1.1 OS¿¡ ¹Ì¸® ¼³Ä¡µÇ¾î ÀÖ´Â ÆÄÀ̽ã 19
2.1.2 macOS¿¡¼ÀÇ ÀÌ¿ë 19
2.1.3 Windows¿¡¼ÀÇ ÀÌ¿ë 21
2.1.4 Ubuntu¿¡¼ÀÇ ÀÌ¿ë 23
2.1.5 µµÄ¿ ÀÌ¿ë 24
2.2 ÆÄÀ̽㠽ÇÇà 28
2.2.1 ÀÌ Ã¥¿¡¼ ÀÌ¿ëÇÏ´Â ÆÄÀ̽㠸í·É¾î 28
2.2.2 ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍÀÇ µÎ °¡Áö ¸ðµå 28
2.2.3 ´ëÈÇü ¸ðµå ÀÎÅÍÇÁ¸®ÅÍ 29
2.2.4 ´ëÈÇü ¸ðµåÀÇ ±âº» »ç¿ë¹ý 29
2.2.5 ´ëÈÇü ¸ðµå¿¡¼ ÀÚÁÖ »ç¿ëÇÏ´Â ³»Àå ÇÔ¼ö 31
2.2.6 ½ºÅ©¸³Æ® ½ÇÇà 35
2.2.7 python ¸í·É¾î¿Í python3 ¸í·É¾îÀÇ Â÷ÀÌ 37
2.3 Á¤¸® 37
CHAPTER 3 Á¦¾î È帧 39
3.1 ±âº» ¹®¹ý 41
3.1.1 µé¿©¾²±â¸¦ »ç¿ëÇÑ ºí·Ï Ç¥Çö 41
3.1.2 º¯¼ö ÀÌ¿ë 43
3.1.3 ÁÖ¼® 45
3.2 Á¶°Ç ºÐ±â 47
3.2.1 if ¹® ¡ª Á¶°ÇÀ» ÁöÁ¤ÇØ Ã³¸®¸¦ ºÐ±âÇÔ 47
3.3 ·çÇÁ ¡ª ó¸® ¹Ýº¹ 51
3.3.1 for ¹® ¡ª ¿¤¸®¸ÕÆ® ¼ö¸¸Å 󸮸¦ ¹Ýº¹ 51
3.3.2 while ¹® ¡ª Á¶°ÇÀ» ÁöÁ¤ÇØ Ã³¸®¸¦ ¹Ýº¹ 55
3.3.3 break ¹® ¡ª ·çÇÁ¸¦ ¹þ¾î³² 56
3.3.4 continue ¹® ¡ª ´ÙÀ½ ·çÇÁ·Î À̵¿ 57
3.4 ¿¹¿Ü ó¸® 59
3.4.1 try ¹® ¡ª ¿¹¿Ü Æ÷Âø 60
3.4.2 raise ¹® ¡ª ÀǵµÀûÀ¸·Î ¿¹¿Ü¸¦ ¹ß»ý½ÃÅ´ 65
3.4.3 »ç¿ëÀÚ ¿¹¿Ü Á¤ÀÇ 65
3.4.4 with ¹® ¡ª Á¤ÀÇÇÑ Å¬¸°¾÷ 󸮸¦ ¹Ýµå½Ã ½ÇÇàÇÔ 66
3.5 Á¤¸® 67
CHAPTER 4 µ¥ÀÌÅÍ ±¸Á¶ 69
4.1 None ¡ª °ªÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½À» Ç¥Çö 71
4.1.1 Á¶°Ç½Ä¿¡¼ÀÇ None ÀÌ¿ë 71
4.2 ³í¸´°ª ¡ª Âü/°ÅÁþÀ» ´Ù·ë 72
4.2.1 bool ŸÀÔ ¡ª ³í¸´°ªÀ» ´Ù·ç´Â ŸÀÔ 72
4.2.2 ºÒ ¿¬»ê 73
4.3 ¼ýÀã°ª 75
4.3.1 ¼ýÀã°ª³¢¸®ÀÇ ¿¬»ê 75
4.3.2 ¼ýÀã°ªÀ» ´Ù·ç´Â ³»Àå ŸÀÔ 77
4.3.3 Á¶°Ç½Ä¿¡¼ÀÇ ¼ýÀã°ª ÀÌ¿ë 80
4.4 ¹®ÀÚ¿ 81
4.4.1 str ŸÀÔ ¡ª ¹®ÀÚ¿À» ´Ù·ç´Â ŸÀÔ 81
4.4.2 ¹®ÀÚ¿ ¿¬»ê 82
4.4.3 for ¹®¿¡¼ÀÇ ¹®ÀÚ¿ÀÇ µ¿ÀÛ 82
4.4.4 Á¶°Ç½Ä¿¡¼ÀÇ ¹®ÀÚ¿ ÀÌ¿ë 83
4.4.5 ¹®ÀÚ¿ ¾È¿¡¼ÀÇ º¯¼ö ÀÌ¿ë 83
4.4.6 str ŸÀÔ°ú ¸Å¿ì ºñ½ÁÇÑ bytes ŸÀÔ 86
4.5 ¹è¿ ¡ª ¿¤¸®¸ÕÆ®¸¦ 1¿·Î ³ª¿Çؼ ´Ù·ë 87
4.5.1 list ŸÀÔ ¡ª º¯°æÇÒ ¼ö ÀÖ´Â ¹è¿À» ´Ù·ç´Â ŸÀÔ 88
4.5.2 tuple ŸÀÔ ¡ª º¯°æÇÒ ¼ö ¾ø´Â ¹è¿À» ´Ù·ç´Â ŸÀÔ 90
4.5.3 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëµÇ´Â ¹è¿ÀÇ Æ¯¼º 93
4.5.4 Æ©Çðú ¸®½ºÆ®ÀÇ ÀÌ¿ë ±¸ºÐ 94
4.6 µñ¼Å³Ê¸® ¡ª Å°¿Í °ªÀÇ ¼¼Æ®¸¦ ´Ù·ë 94
4.6.1 dict ŸÀÔ ¡ª µñ¼Å³Ê¸®¸¦ ´Ù·ç´Â ŸÀÔ 94
4.6.2 ¿¤¸®¸ÕÆ® Ãß°¡¿Í »èÁ¦ 95
4.6.3 Å°¸¦ ÀÌ¿ëÇÑ ¿¤¸®¸ÕÆ®·ÎÀÇ Á¢±Ù 95
4.6.4 Å°·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ÀÇ Á¶°Ç 96
4.6.5 for ¹®¿¡¼ÀÇ µñ¼Å³Ê¸®ÀÇ µ¿ÀÛ 96
4.6.6 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â µñ¼Å³Ê¸®ÀÇ Æ¯¼º 97
4.7 ÁýÇÕ ¡ª À¯ÀÏÇÑ ¿¤¸®¸ÕÆ®ÀÇ ÁýÇÕÀ» ´Ù·ë 98
4.7.1 set ŸÀÔ ¡ª º¯°æÇÒ ¼ö ÀÖ´Â ÁýÇÕÀ» ´Ù·ç´Â ŸÀÔ 98
4.7.2 frozenset ŸÀÔ ¡ª º¯°æÇÒ ¼ö ¾ø´Â ÁýÇÕÀ» ´Ù·ç´Â ŸÀÔ 100
4.7.3 ÁýÇÕ ¿¬»ê ¡ª ÇÕÁýÇÕ, ±³ÁýÇÕ, Â÷ÁýÇÕ, ´ëĪÂ÷ÁýÇÕ 100
4.7.4 for ¹®¿¡¼ÀÇ ÁýÇÕÀÇ µ¿ÀÛ 101
4.7.5 Á¶°Ç½Ä¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÁýÇÕÀÇ Æ¯¼º 102
4.8 ÄÄÇÁ¸®Çî¼Ç ¡ª È¿À²ÀûÀÎ ½ÃÄö½º »ý¼º 103
4.8.1 ¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç ¡ª È¿À²ÀûÀÎ ¸®½ºÆ® »ý¼º 103
4.8.2 ±âŸ ÄÄÇÁ¸®Çî¼Ç 106
4.9 ±× ¿Ü ŸÀÔÀ» ³ªÅ¸³»´Â °³³ä 106
4.9.1 °¡º¯ °´Ã¼ ¡ª Á¤ÀÇ ÈÄ °ªÀ» º¯°æÇÒ ¼ö ÀÖ´Â °´Ã¼ 107
4.9.2 ºÒº¯ °´Ã¼ ¡ª Á¤ÀÇ ÈÄ °ªÀ» º¯°æÇÒ ¼ö ¾ø´Â °´Ã¼ 107
4.9.3 ÄÁÅ×ÀÌ³Ê °´Ã¼ ¡ª ´Ù¸¥ °´Ã¼¿¡ ´ëÇÑ ÂüÁ¶¸¦ °¡Áø °´Ã¼ 107
4.9.4 ÀÌÅÍ·¯ºí °´Ã¼ ¡ª for ¹®¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ 108
4.9.5 È£Ãâ °¡´É °´Ã¼ ¡ª ()¸¦ ºÙ¿© È£ÃâÇÒ ¼ö ÀÖ´Â °´Ã¼ 108
4.10 Á¤¸® 108
CHAPTER 5 ÇÔ¼ö 109
5.1 ÇÔ¼ö ¡ª °ü·ÃµÈ 󸮸¦ ¸ðÀ½ 111
5.1.1 ÇÔ¼ö Á¤ÀÇ¿Í ½ÇÇà 111
5.1.2 Àμö¸¦ ¹Þ´Â ÇÔ¼ö 112
5.1.3 ÇÔ¼ö´Â °´Ã¼ 112
5.1.4 ÇÔ¼öÀÇ ¹Ýȯ°ª 113
5.1.5 ÇÔ¼öÀÇ ´Ù¾çÇÑ Àμö 115
5.1.6 Àμö ¸®½ºÆ® ¾ðÆÑ ¡ª ¸®½ºÆ®³ª µñ¼Å³Ê¸®¿¡ ÀúÀåµÈ °ªÀ» Àμö·Î Àü´Þ 123
5.1.7 ÇÔ¼öÀÇ µ¶½ºÆ®¸µ 123
5.2 lambda ½Ä ¡ª À̸§ÀÌ ¾ø´Â ÇÔ¼ö ÀÛ¼º 125
5.2.1 lambda ½Ä Á¤ÀÇ¿Í ½ÇÇà 125
5.2.2 lambda ½ÄÀ» »ç¿ëÇÒ À§Ä¡ 125
5.3 ŸÀÔ ÈùÆ® 126
5.3.1 ŸÀÔ Á¤º¸¸¦ ºÎ¿©ÇÔÀ¸·Î½á ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡ 126
5.3.2 ŸÀÔ Á¤º¸ ºÎ¿© 126
5.3.3 ŸÀÔ ÈùÆ® È°¿ë »ç·Ê ¡ª Á¤Àû ºÐ¼® µµ±¸ ÀÌ¿ë 128
5.4 Á¤¸® 129
CHAPTER 6 Ŭ·¡½º¿Í ÀνºÅϽº 131
6.1 ÆÄÀ̽ãÀÇ Å¬·¡½º ±¸Á¶ 133
6.1.1 class Å°¿öµå¸¦ ÀÌ¿ëÇÑ Å¬·¡½º Á¤ÀÇ 133
6.1.2 ÀνºÅϽº ¸¸µé±â 134
6.2 ÀνºÅϽº ¡ª Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ¸¸µé¾îÁø °´Ã¼ 134
6.2.1 ÀνºÅϽº ¸Þ¼µå ¡ª ÀνºÅϽº¿¡ ¹ÀÎ ¸Þ¼µå 135
6.2.2 ÀνºÅϽº º¯¼ö ¡ª ÀνºÅϽº°¡ À¯ÁöÇÏ´Â º¯¼ö 136
6.2.3 ÀνºÅϽº ÃʱâÈ 136
6.2.4 ÇÁ·ÎÆÛƼ ¡ª ÀνºÅϽº ¸Þ¼µå¸¦ ÀνºÅϽº º¯¼ö¿Í °°ÀÌ ´Ù·ë 140
6.2.5 Ŭ·¡½º¿Í ÀνºÅϽºÀÇ ÇÁ¶óÀ̺ø ¼Ó¼º 143
6.3 Ŭ·¡½º ¡ª ÀνºÅϽºÀÇ ¸ðÇüÀÌ µÇ´Â °´Ã¼ 144
6.3.1 Ŭ·¡½º º¯¼ö ¡ª Ŭ·¡½º °´Ã¼°¡ À¯ÁöÇÏ´Â º¯¼ö 144
6.3.2 Ŭ·¡½º ¸Þ¼µå ¡ª Ŭ·¡½º¿¡ ¼ÓÇÑ ¸Þ¼µå 146
6.4 Ŭ·¡½º »ó¼Ó 149
6.4.1 ¸Þ¼µå ¿À¹ö¶óÀ̵å¿Í super()¸¦ »ç¿ëÇÑ º£À̽º Ŭ·¡½º·ÎÀÇ Á¢±Ù 149
6.4.2 ¸ðµç °´Ã¼´Â object Ŭ·¡½ºÀÇ ¼ºê Ŭ·¡½º 150
6.4.3 ´ÙÁß »ó¼Ó ¡ª ¿©·¯ º£À̽º Ŭ·¡½º¸¦ ÁöÁ¤ 150
6.4.4 ´ÙÁß »ó¼Ó ½Ã ÁÖÀÇÁ¡ 151
6.5 Á¤¸® 154
CHAPTER 7 ¸ðµâ, ÆÐÅ°Áö, À̸§ °ø°£, ½ºÄÚÇÁ 155
7.1 ¸ðµâ ¡ª Äڵ带 ±â¼úÇÑ .py ÆÄÀÏ 157
7.1.1 ¸ðµâ ÀÛ¼º 157
7.1.2 ¸ðµâ ÀÓÆ÷Æ® 158
7.1.3 python3 ¸í·É¾î·Î Á÷Á¢ ½ÇÇàÇϱâ 158
7.2 ÆÐÅ°Áö ¡ª ¸ðµâÀÇ ÁýÇÕ 163
7.2.1 ÆÐÅ°Áö ÀÛ¼º 164
7.2.2 ÆÐÅ°Áö ¾È¿¡ ÀÖ´Â ¸ðµâ ÀÓÆ÷Æ® 165
7.2.3 import ¹® ºñ±³ 168
7.3 ÀÓÆ÷Æ®ÀÇ ±¸Á¶ 172
7.3.1 ¸ðµâ °Ë»ö È帧 173
7.3.2 sys.path ¡ª ¸ðµâ °Ë»ö °æ·Î 173
7.3.3 PYTHONPATH ¡ª sys.path¿¡ °Ë»ö °æ·Î¸¦ Ãß°¡ 175
7.4 À̸§ °ø°£°ú º¯¼öÀÇ ½ºÄÚÇÁ 176
7.4.1 À̸§ °ø°£ ¡ª À̸§°ú °´Ã¼ÀÇ ¸ÅÇÎ 176
7.4.2 ½ºÄÚÇÁ ¡ª Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¿µ¿ª 177
7.5 Á¤¸® 185
CHAPTER 8 ³»Àå ÇÔ¼ö¿Í Ư¼ö ¸Þ¼µå 187
8.1 ³»Àå ÇÔ¼ö ¡ª Ç×»ó ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö 189
8.1.1 °´Ã¼ ŸÀÔÀ» Á¶»çÇÏ´Â ÇÔ¼ö 189
8.1.2 °´Ã¼ ¼Ó¼º¿¡ °üÇÑ ÇÔ¼ö 192
8.1.3 getattr( ), setattr( ), delattr( ) ¡ª °´Ã¼ ¼Ó¼º Á¶ÀÛ 193
8.1.4 ÀÌÅÍ·¯ºí °´Ã¼¸¦ ¹Þ´Â ÇÔ¼ö 194
8.1.5 ±âŸ ³»Àå ÇÔ¼ö 200
8.2 Ư¼ö ¸Þ¼µå ¡ª ÆÄÀ̽ãÀÌ ¾Ï¹¬ÀûÀ¸·Î È£ÃâÇϴ Ưº°ÇÑ ¸Þ¼µå 200
8.2.1 __str__( ), __repr__( ) ¡ª °´Ã¼¸¦ ¹®ÀÚ¿·Î Ç¥Çö 201
8.2.2 __bool__( ) ¡ª °´Ã¼¸¦ ³í¸´°ªÀ¸·Î Æò°¡ÇÔ 202
8.2.3 __call__( ) ¡ª ÀνºÅϽº¸¦ ÇÔ¼öó·³ ´Ù·ë 203
8.2.4 ¼Ó¼ºÀ¸·ÎÀÇ µ¿Àû Á¢±Ù 204
8.2.5 ÀÌÅÍ·¯ºí °´Ã¼·Î¼ µ¿ÀÛ 207
8.2.6 ÄÁÅ×ÀÌ³Ê °´Ã¼·Î¼ µ¿ÀÛ 209
8.2.7 ±âŸ Ư¼ö ¸Þ¼µå 212
8.3 Á¤¸® 213
CHAPTER 9 ÆÄÀ̽ãÀÇ µ¶Æ¯ÇÑ ±â´Éµé 215
9.1 Á¦³Ê·¹ÀÌÅÍ ¡ª ¸Þ¸ð¸® È¿À²ÀÌ ³ôÀº ÀÌÅÍ·¯ºí °´Ã¼ 217
9.1.1 Á¦³Ê·¹ÀÌÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 217
9.1.2 Á¦³Ê·¹ÀÌÅÍ ±¸Çö 217
9.1.3 Á¦³Ê·¹ÀÌÅÍ ÀÌ¿ë ½Ã ÁÖÀÇÁ¡ 221
9.1.4 Á¦³Ê·¹ÀÌÅÍ ½ÇÁ¦ »ç·Ê ¡ª ÆÄÀÏ ³»¿ë º¯È¯Çϱâ 223
9.1.5 ±âŸ ÀÌ¿ë »ç·Ê 224
9.2 µ¥Ä¿·¹ÀÌÅÍ ¡ª ÇÔ¼ö³ª Ŭ·¡½º¸í¿¡ ó¸® Ãß°¡ 224
9.2.1 µ¥Ä¿·¹ÀÌÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 224
9.2.2 µ¥Ä¿·¹ÀÌÅÍ ±¸Çö 226
9.2.3 µ¥Ä¿·¹ÀÌÅÍ ½ÇÁ¦ »ç·Ê ¡ª ó¸® ½Ã°£ ÃøÁ¤ 231
9.2.4 ±âŸ ÀÌ¿ë »ç·Ê 232
9.3 ÄÜÅؽºÆ® °ü¸®ÀÚ ¡ª with ¹® ¾ÕµÚ¿¡¼ 󸮸¦ ½ÇÇàÇÏ´Â °´Ã¼ 233
9.3.1 ÄÜÅؽºÆ® °ü¸®ÀÚÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 233
9.3.2 ÄÜÅؽºÆ® °ü¸®ÀÚ ½ÇÁ¦ »ç·Ê ¡ª ÀϽÃÀûÀÎ ·Î±ë ¼öÁØ º¯°æ 238
9.3.3 ±âŸ ÀÌ¿ë »ç·Ê 239
9.4 µð½ºÅ©¸³ÅÍ ¡ª ¼Ó¼º 󸮸¦ Ŭ·¡½º·Î ÀÌø 240
9.4.1 µð½ºÅ©¸³ÅÍÀÇ ±¸Ã¼ÀûÀÎ ¿¹½Ã 240
9.4.2 µð½ºÅ©¸³ÅÍ ±¸Çö 242
9.4.3 µð½ºÅ©¸³ÅÍ ½ÇÁ¦ »ç·Ê ¡ª ÇÁ·ÎÆÛƼ ij½Ã 245
9.4.4 ±âŸ ÀÌ¿ë »ç·Ê 247
9.5 Á¤¸® 247
CHAPTER 10 µ¿½Ã ó¸® 249
10.1 µ¿½Ã ó¸®¿Í º´·Ä ó¸® ¡ª ¿©·¯ 󸮸¦ µ¿½Ã¿¡ ¼öÇà 251
10.1.1 ¼øÂ÷ ó¸® ½ÇÇà 251
10.1.2 µ¿½Ã ó¸® ½ÇÇà 251
10.1.3 º´·Ä ó¸® ½ÇÇà 252
10.1.4 ÆÄÀ̽ã°ú µ¿½Ã ó¸® 252
10.2 concurrent.futures ¸ðµâ ¡ª µ¿½Ã 󸮸¦ À§ÇÑ °í¼öÁØ ÀÎÅÍÆäÀ̽º 253
10.2.1 Future Ŭ·¡½º¿Í Executor Ŭ·¡½º ¡ª ºñµ¿±â ó¸® ĸ½¶È¿Í ½ÇÇà 254
10.2.2 ThreadPoolExecutor Ŭ·¡½º ¡ª ½º·¹µå ±â¹Ý ºñµ¿±â ½ÇÇà 256
10.2.3 ThreadPoolExecutor Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ
10.2.4 ProcessPoolExecutor Ŭ·¡½º ¡ª ÇÁ·Î¼¼½º ±â¹Ý ºñµ¿±â ½ÇÇà 263
10.2.5 ProcessPoolExecutor Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ ´ÙÁß ÇÁ·Î¼¼½º ó¸® ±¸Çö 263
10.3 asyncio ¸ðµâ ¡ª À̺¥Æ® ·çÇÁ¸¦ »ç¿ëÇÑ µ¿½Ã ó¸® ¼öÇà 271
10.3.1 ÄÚ·çƾ ¡ª ó¸® µµÁß¿¡ Áß´Ü, ´Ù½Ã ½ÃÀÛ 272
10.3.2 ÄÚ·çƾ ½ºÄÉÁÙ¸µ°ú ½ÇÇà 276
10.3.3 asyncio ¸ðµâ°ú HTTP Åë½Å 279
10.4 Á¤¸® 280
CHAPTER 11 °³¹ß ȯ°æ°ú ÆÐÅ°Áö °ü¸® 281
11.1 °¡»ó ȯ°æ ¡ª °Ý¸®µÈ ÆÄÀ̽㠽ÇÇà ȯ°æ 283
11.1.1 venv ¡ª °¡»ó ȯ°æ »ý¼º µµ±¸ 283
11.2 ÆÐÅ°Áö ÀÌ¿ë 289
11.2.1 pip ¡ª ÆÐÅ°Áö °ü¸® µµ±¸ 289
11.2.2 ȯ°æ ÀúÀå°ú ÀçÇö ¡ª requirements ÆÄÀÏ È°¿ë 298
11.3 ÆÐÅ°Áö ÀÛ¼º 302
11.3.1 setup.py ¡ª ÆÐÅ°Áö Á¤º¸¸¦ ¸ð¾ÆµÐ ÆÄÀÏ 302
11.3.2 PyPI¿¡ ÆÐÅ°Áö µî·Ï 309
11.4 Á¤¸® 313
CHAPTER 12 ´ÜÀ§ Å×½ºÆ® 315
12.1 ´ÜÀ§ Å×½ºÆ® µµÀÔ 317
12.1.1 ´ÜÀÏ ¸ðµâ Å×½ºÆ® 317
12.1.2 ÆÐÅ°Áö Å×½ºÆ® 319
12.2 unittest ¸ðµâ ¡ª Ç¥ÁØ ´ÜÀ§ Å×½ºÆ® ¶óÀ̺귯¸® 323
12.2.1 Å×½ºÆ® ÄÉÀ̽º ±¸Çö 323
12.2.2 Å×½ºÆ® ½ÇÇà°ú °á°ú È®ÀÎ 327
12.2.3 ƯÁ¤ÇÑ Å×½ºÆ®¸¸ ½ÇÇàÇϱâ 329
12.3 unittest.mock ¸ðµâ ¡ª ¸ðÀÇ °´Ã¼ ÀÌ¿ë 331
12.3.1 ¸ðÀÇ °´Ã¼ ±âº» »ç¿ë¹ý 331
12.3.2 patch¸¦ »ç¿ëÇÑ °´Ã¼ ġȯ 334
12.3.3 mockÀ» ÀÌ¿ëÇÑ Å×½ºÆ® ÄÉÀ̽º ±¸Çö 335
12.4 »óȲ¿¡ µû¸¥ Å×½ºÆ® ÄÉÀ̽º ±¸Çö 336
12.4.1 ȯ°æ¿¡ ÀÇÁ¸ÇÏ´Â Å×½ºÆ® °Ç³Ê¶Ù±â 337
12.4.2 ¿¹¿Ü ¹ß»ý Å×½ºÆ®Çϱâ 338
12.4.3 ´Ù¸¥ ÆĶó¹ÌÅÍ·Î µ¿ÀÏÇÑ Å×½ºÆ® ¹Ýº¹Çϱâ 339
12.4.4 ÄÜÅؽºÆ® °ü¸®ÀÚ Å×½ºÆ®Çϱâ 340
12.5 Á¤¸® 341
CHAPTER 13 ÆÄÀ̽㠾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ½ÇÀü 343
13.1 ÀÛ¼ºÇÒ ¾ÖÇø®ÄÉÀÌ¼Ç 345
13.1.1 LGTM À̹ÌÁö¸¦ ÀÚµ¿À¸·Î »ý¼ºÇÏ´Â Ä¿¸Çµå ¶óÀÎ µµ±¸ 345
13.1.2 ÀÌ¿ëÇÒ ÁÖ¿ä ¿ÜºÎ ÆÐÅ°Áö 346
13.2 ÇÁ·ÎÁ§Æ® ÀÛ¼º 349
13.2.1 Git ÀÌ¿ë 350
13.2.2 ÆÐÅ°Áö ¸ðÇü ÀÛ¼º 351
13.3 Áö¼ÓÀûÀÎ ÅëÇÕ µµÀÔ 354
13.3.1 CircleCI¿¡¼ÀÇ Å×½ºÆ® ÀÚµ¿È 354
13.3.2 Å×½ºÆ® ½ÇÇà ¹× °á°ú È®ÀÎ 356
13.4 ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß 358
13.4.1 Ä¿¸Çµå ¶óÀÎ Àμö ¾ò±â 358
13.4.2 À̹ÌÁö ¾ò±â 361
13.4.3 À̹ÌÁö ó¸® 364
13.4.4 °¢°¢ÀÇ Ã³¸® È£Ãâ 366
13.5 ¸í·É¾î·Î ½ÇÇàÇϱâ 367
13.5.1 setup.py ÀÛ¼º 367
13.5.2 µ¿ÀÛ È®ÀÎÇϱâ 368
13.6 Á¤¸® 369
ÆÄÀ̽á´ÐÇÑ °³¹ßÀÚ·Î °Åµì³ª°í ½ÍÀº ºÐ²² ÃßõÇÕ´Ï´Ù!
ÀÌ Ã¥Àº ÀÌÁ¦ºÎÅÍ ÆÄÀ̽ãÀ» ½ÃÀÛÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¹Ö °æÇèÀڵ鿡°Ô °¡Àå ÀûÇÕÇÑ ÆÄÀ̽ã ÀÔ¹®¼ÀÔ´Ï´Ù. Æò¼Ò ÆÄÀ̽ãÀ» »ç¿ëÇÏ°í ÀÖ´Â ºÐµéµµ ´õ¿í ÀڽۨÀ» °®°í ÆÄÀ̽ãÀ» ¾µ ¼ö ÀÖµµ·Ï ½Ç·ÂÀ» ÇÑ ´Ü°è ¾÷±×·¹À̵åÇÏ´Â µ¥ È°¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀ̽ãÀÇ °³¹ß ¹è°æ¿¡¼ ½ÃÀÛÇØ ÆÄÀ̽ãÀ» ±¸¼ºÇÏ´Â ¿ä¼Ò, ¾ð¾îÀÇ ¼³°è ¹æ½Ä, ±¸Çö»óÀÇ Æ¯Â¡, ´Ü¼øÇÑ ¾Ë°í¸®Áò»Ó¸¸ÀÌ ¾Æ´Ñ ÇÁ·Î±×·¥ ÀÛ¼º°ú ¹èÆ÷ÀÇ È帧À» ¤¾î°¡´Ù º¸¸é ¾î´À»õ ÆÄÀ̽ãÀ» Áö±Ýº¸´Ù È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¾ÆÀ̵ð¾î¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ°í, ÀÌ·Î½á ¿©·¯ºÐÀÇ ÇÁ·Î±×·¡¹Ö ´É·ÂÀ» ÇÑÃþ °ÇÏ°Ô ¸¸µé¾îÁÙ °ÍÀÔ´Ï´Ù.
ÀÌ Ã¥ÀÇ Æ¯Â¡
-ÆÄÀ̽ãÀ» óÀ½ Á¢ÇÑ ºÐµé¿¡°Ô źźÇÏ°Ô ±âÃʸ¦ ´ÙÁú ¼ö ÀÖ´Â ±æÀ» Á¦½Ã
-ÆÄÀ̽㠼Ұ³, ÀÚ·áÇü µî ¾ÆÁÖ ±âÃÊÀûÀÎ ÁÖÁ¦·Î ½ÃÀÛÇÏ¿©, ÁßÈĹݺηΠ°¥¼ö·Ï ´Ù¸¥ ÀÔ¹®¼¿¡¼´Â º¸±â Èûµç, ±íÀÌ ÀÖ´Â ÁÖÁ¦¸¦ ´Ù·ç°í ÀÖ´Â µ¶Æ¯ÇÑ ±¸¼º
-ÆÄÀ̽ãÀÇ ±âº»ÀûÀÎ ¹®¹ý ¿Ü¿¡µµ venv, ´ÜÀ§ Å×½ºÆ®, CI, ÆÐÅ°Áö °ü¸® µîÀ» ÀüüÀûÀ¸·Î ´Ù·ç¸ç, ¹®¹ý ÀÚüº¸´Ù´Â ÇØ´ç ¾ð¾î·Î ±¸ÇöÇÒ ÀÛ¾÷µéÀ» Å« ±×¸²À¸·Î »ìÆ캼 ¼ö ÀÖµµ·Ï ÇÔ
-ÆÄÀ̽ãÀ» »ç¿ëÇÑ À¥ °³¹ß, ȤÀº ÀΰøÁö´É, ºòµ¥ÀÌÅÍ ºÐ¾ß·Î °¡±â Àü¿¡ ±âº» ½Ç·ÂÀ» ±â¸£´Â È°¿ë¼·Î »ç¿ëÇÒ °ÍÀ» Ãßõ
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ
-ÆÄÀ̽ãÀ» óÀ½ Á¢ÇÏ´Â ºÐ
-ÆÄÀ̽㿡 °ü½É ÀÖ´Â ¸ðµç ÇÁ·Î±×·¡¸Ó
-ÆÄÀ̽ãÀÇ °³³äÀ» ´Ù½Ã Çѹø Á¤¸®ÇÏ°í ½ÍÀ¸½Å ºÐ
-ÆÄÀ̽㠽ǷÂÀ» Ãʱ޿¡¼ Áß»ó±ÞÀ¸·Î ¿Ã¸®°í ½ÍÀº ºÐ
ÀÌ Ã¥Àº ÀÌÁ¦ºÎÅÍ ÆÄÀ̽ãÀ» ½ÃÀÛÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¹Ö °æÇèÀڵ鿡°Ô °¡Àå ÀûÇÕÇÑ ÆÄÀ̽ã ÀÔ¹®¼ÀÔ´Ï´Ù. Æò¼Ò ÆÄÀ̽ãÀ» »ç¿ëÇÏ°í ÀÖ´Â ºÐµéµµ ´õ¿í ÀڽۨÀ» °®°í ÆÄÀ̽ãÀ» ¾µ ¼ö ÀÖµµ·Ï ½Ç·ÂÀ» ÇÑ ´Ü°è ¾÷±×·¹À̵åÇÏ´Â µ¥ È°¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀ̽ãÀÇ °³¹ß ¹è°æ¿¡¼ ½ÃÀÛÇØ ÆÄÀ̽ãÀ» ±¸¼ºÇÏ´Â ¿ä¼Ò, ¾ð¾îÀÇ ¼³°è ¹æ½Ä, ±¸Çö»óÀÇ Æ¯Â¡, ´Ü¼øÇÑ ¾Ë°í¸®Áò»Ó¸¸ÀÌ ¾Æ´Ñ ÇÁ·Î±×·¥ ÀÛ¼º°ú ¹èÆ÷ÀÇ È帧À» ¤¾î°¡´Ù º¸¸é ¾î´À»õ ÆÄÀ̽ãÀ» Áö±Ýº¸´Ù È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¾ÆÀ̵ð¾î¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ°í, ÀÌ·Î½á ¿©·¯ºÐÀÇ ÇÁ·Î±×·¡¹Ö ´É·ÂÀ» ÇÑÃþ °ÇÏ°Ô ¸¸µé¾îÁÙ °ÍÀÔ´Ï´Ù.
ÀÌ Ã¥ÀÇ Æ¯Â¡
-ÆÄÀ̽ãÀ» óÀ½ Á¢ÇÑ ºÐµé¿¡°Ô źźÇÏ°Ô ±âÃʸ¦ ´ÙÁú ¼ö ÀÖ´Â ±æÀ» Á¦½Ã
-ÆÄÀ̽㠼Ұ³, ÀÚ·áÇü µî ¾ÆÁÖ ±âÃÊÀûÀÎ ÁÖÁ¦·Î ½ÃÀÛÇÏ¿©, ÁßÈĹݺηΠ°¥¼ö·Ï ´Ù¸¥ ÀÔ¹®¼¿¡¼´Â º¸±â Èûµç, ±íÀÌ ÀÖ´Â ÁÖÁ¦¸¦ ´Ù·ç°í ÀÖ´Â µ¶Æ¯ÇÑ ±¸¼º
-ÆÄÀ̽ãÀÇ ±âº»ÀûÀÎ ¹®¹ý ¿Ü¿¡µµ venv, ´ÜÀ§ Å×½ºÆ®, CI, ÆÐÅ°Áö °ü¸® µîÀ» ÀüüÀûÀ¸·Î ´Ù·ç¸ç, ¹®¹ý ÀÚüº¸´Ù´Â ÇØ´ç ¾ð¾î·Î ±¸ÇöÇÒ ÀÛ¾÷µéÀ» Å« ±×¸²À¸·Î »ìÆ캼 ¼ö ÀÖµµ·Ï ÇÔ
-ÆÄÀ̽ãÀ» »ç¿ëÇÑ À¥ °³¹ß, ȤÀº ÀΰøÁö´É, ºòµ¥ÀÌÅÍ ºÐ¾ß·Î °¡±â Àü¿¡ ±âº» ½Ç·ÂÀ» ±â¸£´Â È°¿ë¼·Î »ç¿ëÇÒ °ÍÀ» Ãßõ
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ
-ÆÄÀ̽ãÀ» óÀ½ Á¢ÇÏ´Â ºÐ
-ÆÄÀ̽㿡 °ü½É ÀÖ´Â ¸ðµç ÇÁ·Î±×·¡¸Ó
-ÆÄÀ̽ãÀÇ °³³äÀ» ´Ù½Ã Çѹø Á¤¸®ÇÏ°í ½ÍÀ¸½Å ºÐ
-ÆÄÀ̽㠽ǷÂÀ» Ãʱ޿¡¼ Áß»ó±ÞÀ¸·Î ¿Ã¸®°í ½ÍÀº ºÐ