ÄÜÅÙÃ÷ »ó¼¼º¸±â
È¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú


È¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú

È¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú

<½º¾ß¸¶ ·¹ÀÌ> Àú/<±è¿¬¼ö> ¿ª | Á¦ÀÌÆà

Ãâ°£ÀÏ
2021-07-26
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
6 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Áö½ÄÀº ¾î´À Á¤µµ ÀÖÁö¸¸,
ÆÄÀ̽ãÀº Àß ¸ð¸£´Â ºÐµéÀ» À§ÇÑ ½ÇõÀû ÀÔ¹®¼­!


¡ºÈ¿À²Àû °³¹ß·Î À̲ô´Â ÆÄÀ̽㠽Çõ ±â¼ú¡»Àº ÀÌ·± ºÐµéÀ» À§ÇÑ Àб⠽¬¿ì¸é¼­µµ ¾èÁö ¾ÊÀº ÀÔ¹®¼­·Î¼­ ÆÄÀ̽ãÀ̶ó´Â ¾ð¾îÀÇ »ç¾ç°ú ±× Ư¡ÀûÀÎ ±â´É, Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ÀÖ´Â °ÍÀ» ÁßÁ¡ÀûÀ¸·Î ´Ù·ï À¥ °³¹ß, µ¥ÀÌÅÍ ºÐ¼®, ¸Ó½Å·¯´× µî ºÐ¾ß¸¦ °¡¸®Áö ¾Ê°í È°¿ëÇÒ ¼ö ÀÖ´Ù. °¢ ´Ü°è¸¶´Ù »ùÇà ÄÚµå¿Í ÄÚ¸àÆ®°¡ ¹«¾ùÀ» ÇÏ°í ÀÖ´ÂÁö¸¦ ¸íÈ®È÷ ÆľÇÇÒ ¼ö ÀÖµµ·Ï ÀÚ¼¼ÇÏ°Ô ±â¼úÇÏ¿´°í, ÆÄÀ̽ãÀÇ ±â´É ¼³¸í¿¡¸¸ ±×Ä¡Áö ¾Ê°í ½ÇÁ¦·Î ÀÀ¿ë ÇÁ·Î±×·¥ Á¦ÀÛ±îÁö ´Ù·ç°í ÀÖ´Ù.

ÀúÀÚ¼Ò°³

ÀϺ» ¿ÀÀÌŸÇö Ãâ½Å. È÷·Î½Ã¸¶ ´ëÇÐ ´ëÇпø¿¡¼­ Á¤º¸°øÇÐ ¹Ú»ç °úÁ¤À» ¼ö·áÇß´Ù. Çлý ½ÃÀý¿¡ ÆÄÀ̽ãÀ» ¸¸³­ ÈÄ ±× Ä¿¹Â´ÏƼÀÇ »ç»ó°ú ºÐÀ§±â¿¡ »ç·ÎÀâÇûÀ¸¸ç, À̸¦ ÅëÇØ ±â¼úÀûÀÎ ±âÃÊ Áö½ÄÀº ¹°·Ð, Ä¿¹Â´ÏƼ È°µ¿ ¹æ¹ý±îÁö ¸¹Àº °ÍÀ» ÀÍÇû´Ù. PyCon JP 2015¿¡ ÀÏ¹Ý Âü°¡ÀÚ·Î Âü°¡Çß´ø °ÍÀÌ °è±â°¡ µÇ¾î PyCon JP 2016ºÎÅÍ ½ºÅÂÇÁ³ª ¹ßÇ¥Àڷεµ Âü°¡ÇÏ°í ÀÖ´Ù. Ãë¾÷À» °è±â·Î »ó°æÇÏ°Ô µÇ¾úÀ¸³ª, ÇöÀç´Â È÷·Î½Ã¸¶Çö ¿À³ë¹ÌÄ¡½ÃÀÇ ¹«Ä«ÀÌÁö¸¶¿¡¼­ ¿ÏÀü ÀçÅà ¾÷¹« ÁßÀÌ´Ù.

¸ñÂ÷

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