ÄÜÅÙÃ÷ »ó¼¼º¸±â
(Better Python Code)ÆÄÀ̽ã ÄÚµùÀÇ ±â¼ú 51


(Better Python Code)ÆÄÀ̽ã ÄÚµùÀÇ ±â¼ú 51

<µ¥À̺ñµå ¸Þ¸£Ã÷> Àú/<±èÁøÈ£> ¿ª | ±æ¹þ

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

ÄÜÅÙÃ÷ ¼Ò°³

ÆÄÀ̽㠼³°è öÇбîÁö ÀÌÇØÇÏ´Â ÆÄÀ̽ã ÄÚµùÀÇ ±â¼ú ½ÇÀüÆí 51!
Áö±Ýº¸´Ù ´õ ³ªÀº ÇÁ·Î±×·¡¸Ó°¡ µÇ°í ½ÍÀº, ¸ðµç ÆÄÀ̽㠰³¹ßÀÚ¸¦ À§ÇÑ, ÆÄÀ̽ã Àü¹®°¡ °¡À̵å!

ÆÄÀ̽ã ÄÚµù¿¡´Â ÆÄÀÌ½ã ´Ù¿î ±â¼úÀÌ ÇÊ¿äÇÏ´Ù! ÀúÀÚ´Â 25³â°£ ¿­Á¤ÀûÀ¸·Î ÆÄÀ̽ãÀ» »ç¶ûÇÏ°í »ç¿ëÇØ¿À¸é¼­ ÀÚ½ÅÀÇ ÄÚµå ¹× ½ÇÁ¦ Çö¾÷ Äڵ忡¼­ ÆÄÀ̽㠰³¹ßÀÚµéÀÌ ½±°Ô ºüÁö´Â À߸ø, ÇÔÁ¤, ¿À·ùµéÀ» ¹ß°ßÇØ ¿Ô´Ù. ÀÌ Ã¥Àº ±× Áß 51°¡Áö¸¦ ¼±º°ÇØ °ü·ÃµÈ °³³ä³¢¸® ¹­¾î¼­ ÃÑ 9°³ ÀåÀ¸·Î ¼Ò°³ÇÑ´Ù. °¢ Àå°ú ÀýÀÇ ³»¿ëÀº ¼­·Î µ¶¸³ÀûÀ¸·Î ±¸¼ºÇÏ¿© ±×¶§±×¶§ ÇÊ¿äÇÑ ºÎºÐ¸¸ Âü°íÇÒ ¼ö ÀÖ°Ô Çß´Ù. ¶ÇÇÑ, ½ÇÁ¦ ÇÁ·ÎÁ§Æ® »óȲ ¹× °£°áÇÏ°í ¸íÈ®ÇÑ ¿¹Á¦¸¦ Á¦½ÃÇØ ¹®Á¦¿Í ¼Ö·ç¼ÇÀ» ±íÀÌ ÀÌÇØÇÏ°í, ¹®Á¦¿¡ ´ëÇØ ¿Ã¹Ù¸£°Ô »ç°íÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ·Á°í ³ë·ÂÇß´Ù. ¹®Á¦¿Í ¼Ö·ç¼ÇÀ» ÀÌÇØÇÏ´Â °úÁ¤¿¡¼­ ÆÄÀ̽ãÀÇ ¼³°è öÇаú ÆÄÀ̽ãÀÌ Ãß±¸ÇÏ´Â °¡Ä¡¸¦ ´Ù½Ã Çѹø »ó±âÇÏ°í, ÆÄÀ̽ãÀÇ ÀáÀç·ÂÀ» ²ø¾î¿Ã¸®´Â ÇÁ·Î±×·¡¹Ö ±â¹ýÀ» ¹è¿ì°í, ±Ã±ØÀûÀ¸·Î ÆÄÀ̽ã ÄÚµåÀÇ ÁúÀ» ÇÑ ´Ü°è Çâ»ó½Ãų ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀúÀÚ¼Ò°³

25³âÀ̶ó´Â ¿À·£ ½Ã°£ µ¿¾È ÆÄÀ̽ã Ä¿¹Â´ÏƼÀÇ ÀÏ¿øÀ¸·Î È°µ¿ÇÏ°í ÀÖÀ¸¸ç, ÆÄÀ̽㠾ð¾îÀÇ ¹ßÀüÀ» ¹ÐÁ¢ÇÏ°Ô µû¶ó¿À¸é¼­ ¹öÀüº° º¯°æ »çÇ׿¡ ´ëÇØ ±âÁ¶ °­¿¬À» ÇÏ°í, ÇÁ·Î±×·¡¹Ö Ãʺ¸ÀÚ, ´Ù¸¥ ¾ð¾î ±â¹ÝÀÇ °³¹ßÀÚ, µ¥ÀÌÅÍ °úÇÐÀÚ¿¡°Ô ÆÄÀ̽ãÀ» °¡¸£ÃÆ´Ù. °³¹ßÀÚ¿Í µ¥ÀÌÅÍ °úÇÐÀÚ¿¡°Ô ±â°è ÇнÀ°ú °úÇÐ ÄÄÇ»ÆÃÀ» ±³À°ÇÏ´Â KDM TrainingÀÇ ¼³¸³ÀÚ·Î, Anaconda Inc.¸¦ À§ÇÑ µ¥ÀÌÅÍ °úÇÐ ±³À° ÇÁ·Î±×·¥À» ¸¸µé¾úÀ¸¸ç ¼ö¼® ±³À°ÀÚ·Î È°µ¿ÇÏ¿´´Ù. ±íÀº ½Å°æ¸Á(deep neural network)ÀÇ µîÀå°ú ÇÔ²² ·Îº¿ Áö¹èÀÚ¸¦ ±³À°ÇÏ´Â µ¥µµ ´«À» µ¹·Á D.E. Shaw Research¿¡¼­ 8³â µ¿¾È ±Ù¹«Çß´Ù. 6³â µ¿¾È PSFÀÇ ÀÌ»ç·Î È°µ¿ÇßÀ¸¸ç, Áö±Ýµµ PSFÀÇ »óÇ¥ À§¿øȸ¿Í °úÇÐ ÆÄÀ̽ã ÀÛ¾÷ ±×·ìÀÇ °øµ¿ ÀÇÀåÀ» ¸Ã°í ÀÖ´Ù. 2000³â´ë¿¡ ¾´ ¡¸¸Å·ÂÀûÀÎ ÆÄÀ̽ã(Charming Python)¡¹°ú ¡¸XML ¹®Á¦(XML matters)¡¹ Ä®·³Àº ÆÄÀ̽㠼¼°è¿¡¼­ °¡Àå ³Î¸® ÀÐÈù ±ÛÀÌ´Ù. ÆÑÆ®(Packt), ¿À¶óÀϸ®(O'Reilly), ¾Öµð½¼ ¿þ½½¸®(Addison-Wesley)¸¦ ÅëÇØ ÁýÇʼ­¸¦ Ãâ°£ÇßÀ¸¸ç, ¿©·¯ ±¹Á¦ ÇÁ·Î±×·¡¹Ö ȸÀÇ¿¡¼­ ±âÁ¶¿¬¼³À» Çß´Ù.

¸ñÂ÷

1Àå À߸øµÈ ¹æ½ÄÀ¸·Î ¼øȯÇϱâ
__1.1 (µå¹°Áö¸¸) ¼øȯÀ» À§ÇØ ¸ñ·Ï »ý¼ºÇϱâ
__1.2 »öÀÎÀ» ¼øȯÇÏ´Â ´ë½Å enumerate( ) »ç¿ëÇϱâ
__1.3 dict.items( )°¡ ÇÊ¿äÇÒ °æ¿ì dict.keys( )·Î ¼øȯÇÏÁö ¾Ê±â
__1.4 ¼øȯ Áß °´Ã¼ º¯Çü
__1.5 while ¼øȯº¸´Ù for ¼øȯ »ç¿ëÇϱâ
__1.6 ¡®¼øȯ°ú Àý¹Ý¡¯À» À§ÇÑ ¹Ù´ÙÄÚ³¢¸® ¿¬»êÀÚ
__1.7 zip( )À¸·Î ´ÙÁß ¹Ýº¹ °¡´É °´Ã¼ °£¼ÒÈ­Çϱâ
__1.8 zip(strict=True)°ú itertools.zip_longest( )
__1.9 Á¤¸®


2Àå µ¿µî¼º°ú µ¿ÀϼºÀÇ È¥µ¿
__2.1 Ŭ·ÎÀúÀÇ ´ÊÀº ¿¬°á
__2.2 ºÒ¸®¾ð ³í¸® °ª¿¡ ´ëÇÑ Áö³ªÄ£ °ËÁõ
__2.3 x == None ºñ±³Çϱâ
__2.4 °¡º¯ ±âº» ¸Å°³ º¯¼ö¿¡ ´ëÇÑ ¿ÀÇØ
____2.4.1 ù ¹ø° ¹æ¹ý, Ŭ·¡½º »ç¿ëÇϱâ
____2.4.2 µÎ ¹ø° ¹æ¹ý, None º¸ÃÊ °ª »ç¿ëÇϱâ
____2.4.3 ¼¼ ¹ø° ¹æ¹ý, »óÅ »ý¼º±âÀÇ ÀÌÁ¡ ÀÌ¿ëÇϱâ
__2.5 °¡º¯ °´Ã¼¿¡ ´ëÇÑ º¹»ç ´ë ÂüÁ¶
__2.6 (Àç»ç¿ëÀÌ ÀÖ´Â »óȲ¿¡¼­) is¿Í == È¥µ¿Çϱâ
__2.7 Á¤¸®


3Àå ÆÄÀ̽ãÀÇ ¿©·¯ °¡Áö ÇÔÁ¤
__3.1 À̸§ ÁöÁ¤
____3.1.1 Ç¥ÁØ ¶óÀ̺귯¸® ¸ðµâ°ú µ¿ÀÏÇÑ ÆÄÀÏ À̸§ »ç¿ëÇϱâ
____3.1.2 import * »ç¿ë ÇÇÇϱâ
____3.1.3 ºñ¾î Àְųª Áö³ªÄ¡°Ô ÀϹÝÀûÀÎ except ¹®
__3.2 ´Ü¼ø ¹®ÀÚ¿­ ¿¬°áÀÇ 2Â÷ ½Ã°£ º¹Àâµµ
__3.3 ÆÄÀÏÀ» ¿­ ¶§ »óȲ Á¤º¸ °ü¸®ÀÚ »ç¿ëÇϱâ
____3.3.1 ù ¹ø° À§Çè
____3.3.2 µÎ ¹ø° À§Çè
____3.3.3 Ãë¾à¼º ¼öÁ¤Çϱâ
__3.4 .sort( )¿Í sorted( )ÀÇ ¼±ÅÃÀû ¸Å°³ º¯¼ö key
__3.5 ºÒÈ®½ÇÇÑ Å°¿¡´Â dict.get( ) »ç¿ëÇϱâ
__3.6 Á¤¸®


4Àå ÆÄÀ̽㠰í±Þ È°¿ë
__4.1 type(x) == type(y) ºñ±³Çϱâ
__4.2 (´Ù½Ã Çѹø) À̸§ ÁöÁ¤
____4.2.1 ³»Àå À̸§ÀÇ ÀçÁ¤ÀÇ
____4.2.2 º¸È£µÈ ¼Ó¼º¿¡ Á÷Á¢ Á¢±ÙÇϱâ
__4.3 »ç¿ë ºóµµ°¡ ³·Àº ±â´É¿¡ ÁÖ¸ñÇϱâ
____4.3.1 f ¹®ÀÚ¿­ µð¹ö±ë
____4.3.2 °¡°øÀÚÀÇ ¿ì¾ÆÇÑ ¸¶¹ý
____4.3.3 itertools (ÃæºÐÈ÷) »ç¿ëÇϱâ
____4.3.4 more-itertools Á¦3ÀÚ ¶óÀ̺귯¸®
__4.4 ÀÚ·áÇü ÁÖ¼®Àº ½ÇÇà ½Ã°£ ÀÚ·áÇüÀÌ ¾Æ´Ï´Ù
____4.4.1 ÀÚ·áÇü ÁÖ¼®Àº ½ÇÇà ½Ã°£ Á¦¾àÀÌ ¾Æ´Ï´Ù
____4.4.2 typing.NewType()À» ½ÇÇà ½Ã°£ ÀÚ·áÇüÀ¸·Î ¿ÀÇØÇϱâ
__4.5 Á¤¸®


5Àå ÇÒ ¼ö ÀÖ´Ù°í Çؼ­ ÇØ¾ß ÇÑ´Ù´Â ¶æÀº ¾Æ´Ï´Ù
__5.1 ¸ÞŸŬ·¡½º
__5.2 ¿ø¼þÀÌ ÆÐÄ¡
__5.3 Àб⠸޼­µå¿Í ¼³Á¤ ¸Þ¼­µå
__5.4 Çã¶ôº¸´Ù ¿ë¼­¹Þ´Â °ÍÀÌ ´õ ½±´Ù
__5.5 ±¸Á¶Àû ÆÐÅÏ ´ëÁ¶
__5.6 Á¤±Ô Ç¥Çö½Ä°ú Àç¾ÓÀû ¿ªÃßÀû
__5.7 Á¤¸®


6Àå ÀûÀýÇÑ µ¥ÀÌÅÍ ±¸Á¶ ¼±ÅÃÇϱâ
__6.1 collections.defaultdict
__6.2 collections.Counter
____6.2.1 ÇØ°áÃ¥
____6.2.2 À߸ø
__6.3 collections.deque
____6.3.1 ÇØ°áÃ¥
____6.3.2 À߸ø
__6.4 collections.ChainMap
____6.4.1 ÇØ°áÃ¥
____6.4.2 À߸ø
__6.5 µ¥ÀÌÅÍ Å¬·¡½º¿Í ¸í¸íµÈ Æ©ÇÃ
____6.5.1 ¸í¸íµÈ Æ©Çà »ç¿ëÇϱâ
____6.5.2 Á¤Àû°ú µ¿Àû
____6.5.3 µ¥ÀÌÅÍ Å¬·¡½º
__6.6 È¿°úÀûÀÎ ±¸»ó ¿¬¼Ó ¼ø¼­¿­
__6.7 Á¤¸®


7Àå µ¥ÀÌÅÍ ±¸Á¶ÀÇ À߸øµÈ »ç¿ë
__7.1 ¹Ýº¹µÈ ¸ñ·Ï Ž»öÀÇ 2Â÷ ½Ã°£ º¹Àâµµ
__7.2 ¸ñ·Ï Áß°£¿¡¼­ ¿ä¼Ò¸¦ Á¦°ÅÇϰųª Ãß°¡Çϱâ
____7.2.1 Á» ´õ È¿À²ÀûÀÎ µ¥ÀÌÅÍ ±¸Á¶
__7.3 ¹®ÀÚ¿­Àº ¹®ÀÚ¿­ÀÇ ¹Ýº¹ °¡´ÉÇÑ °´Ã¼ ÁýÇÕ
__7.4 »ó¼ö¸¦ »ç¿ëÇÏ´Â ´ë½Å enumÀ» (ÀÚÁÖ) »ç¿ëÇϱâ
__7.5 ¸¹ÀÌ ¾Ë·ÁÁöÁö ¾ÊÀº »çÀü ¸Þ¼­µå ÀÍÈ÷±â
____7.5.1 °´Ã¼¸¦ Á¤ÀÇÇÏ´Â »çÀü
____7.5.2 Á¤±âÀûÀ¸·Î ¹ß»ýÇÏ´Â À߸øÀ¸·Î µ¹¾Æ°¡±â
__7.6 JSON°ú ÆÄÀ̽ãÀº ¼­·Î ±ò²ûÇÏ°Ô º¯È¯µÇÁö ¾Ê´Â´Ù
____7.6.1 JSON¿¡ ´ëÇÑ ¸î °¡Áö ¹è°æ
____7.6.2 ¿Õº¹¿¡ ½ÇÆÐÇÏ´Â µ¥ÀÌÅÍ
__7.7 ÀڽŸ¸ÀÇ µ¥ÀÌÅÍ ±¸Á¶ ¸¸µé±â
____7.7.1 ÀڽŸ¸ÀÇ °ÍÀ» ¸¸µå´Â °ÍÀÌ ³ª»Û »ý°¢ÀÏ ¶§
____7.7.2 ÀڽŸ¸ÀÇ °ÍÀ» ¸¸µå´Â °ÍÀÌ ÁÁÀº »ý°¢ÀÏ ¶§
____7.7.3 ÇÙ½É ¿ä¾à
__7.8 Á¤¸®


8Àå º¸¾È
__8.1 ¹«ÀÛÀ§¼ºÀÇ Á¾·ù
____8.1.1 ¾ÏÈ£ÇÐÀû ¹«ÀÛÀ§¼ºÀ» À§ÇØ secrets »ç¿ëÇϱâ
____8.1.2 ÀçÇö °¡´ÉÇÑ ¹«ÀÛÀ§ ºÐÆ÷
__8.2 ¡®¾ÈÀüÇÑ¡¯ ¼Ò½º Äڵ忡 ºñ¹Ð¹øÈ£³ª ±âŸ ºñ¹Ð Á¤º¸ ³Ö±â
__8.3 ¡®ÀڽŸ¸ÀÇ¡¯ º¸¾È ±âÁ¦ ¸¸µé±â
__8.4 ¸¶ÀÌÅ©·Î ¼­ºñ½º¿¡ SSL/TLS »ç¿ëÇϱâ
__8.5 Á¦3ÀÚ ¶óÀ̺귯¸® requests »ç¿ëÇϱâ
__8.6 µ¥ÀÌÅͺ£À̽º API¸¦ »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ìÀÇ SQL ÁÖÀÔ °ø°Ý
__8.7 ¾ÈÀüÇÏ´Ù´Â °¡Á¤À» È®ÀÎÇϱâ À§ÇØ assert »ç¿ëÇÏÁö ¾Ê±â
__8.8 Á¤¸®


9Àå ÆÄÀ̽㿡¼­ÀÇ ¼öÄ¡ °è»ê
__9.1 IEEE-754 ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚ ÀÌÇØÇϱâ
____9.1.1 NaN(±×¸®°í ´Ù¸¥ ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚ)À» ºñ±³Çϱâ
____9.1.2 NaN°ú statistics.median()
____9.1.3 ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚÀÇ ¼øÁøÇÑ »ç¿ë: °áÇÕ¹ýÄ¢°ú ºÐ¹è¹ýÄ¢
____9.1.4 ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚÀÇ ¼øÁøÇÑ »ç¿ë: ÀÔÀÚ¼º
__9.2 ¼ýÀÚ ÀÚ·áÇü
____9.2.1 ±ÝÀ¶ °è»ê¿¡ ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê±â
____9.2.2 ¼öÄ¡ µ¥ÀÌÅÍ ÀÚ·áÇüÀÇ ºñÁ÷°üÀûÀÎ µ¿ÀÛ
__9.3 Á¤¸®


ºÎ·Ï ´Ù¸¥ Ã¥¿¡¼­ ÀÐÀ» ¸¸ÇÑ ÁÖÁ¦
__A.1 Å×½ºÆ® ÁÖµµ °³¹ß
__A.2 µ¿½Ã¼º
__A.3 ÆÐŰ¡
__A.4 ÀÚ·áÇü °Ë»ç
__A.5 ¼öÄ¡ ¹× µ¥ÀÌÅÍÇÁ·¹ÀÓ ¶óÀ̺귯¸®