- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > ÇÁ·Î±×·¡¹Ö/¾ð¾î > Ŭ¸° ÆÄÀ̽ã[¿¡ÀÌÄÜÃâÆÇ]
ÆÄÀ̽ãÀ» ´õ ³ªÀº ¹æ¹ýÀ¸·Î ÄÚµùÇÒ ¼ö ÀÖµµ·Ï ÆÁ°ú ¹æ¹ýÀ» ¾Ë·ÁÁÖ´Â Áöħ¼´Ù. ÆÄÀ̽ãÀÇ ³»Àå µ¥ÀÌÅÍ ±¸Á¶, ÇÔ¼ö¿Í Ŭ·¡½º, µñ¼Å³Ê¸®, ¸ðµâ ¹× ¸ÞŸ Ŭ·¡½º, µ¥ÄÚ·¹ÀÌÅÍ¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú, Á¦³Ê·¹ÀÌÅÍ¿Í ÀÌÅÍ·¹ÀÌÅÍ, ºñµ¿±â ÇÁ·Î±×·¡¹Ö µîÀ» ´Ù·é´Ù. ¶ÇÇÑ ÆÄÀ̽ã Äڵ带 À§ÇÑ µð¹ö±ë°ú Å×½ºÆ® ¹æ¹ýÀ» ¾Ë¾Æº¸°í, ´Ù¾çÇÑ ÆÄÀ̽㠵µ±¸¸¦ »ìÆ캼 °ÍÀÌ´Ù. ?
ÀúÀÚ: ¼ö´Ò Ä«ÇÊ (ÁöÀºÀÌ), À¯¿¬Àç (¿Å±äÀÌ)
1Àå. ÆÄÀ̽á´ÐÀ¸·Î »ý°¢Çϱâ
__ÆÄÀ̽á´Ð ÄÚµå ÀÛ¼º
____³×À̹Ö
____ÄÚµå Ç¥Çö°ú ±¸¹®
____ÄÚµå ÀÛ¼ºÀ» À§ÇÑ ÆÄÀ̽á´Ð ¹æ¹ýÀÇ ¼ö¿ë
__µ¶½ºÆ®¸µ »ç¿ë
____¸ðµâ ·¹º§ µ¶½ºÆ®¸µ
____Ŭ·¡½º µ¶½ºÆ®¸µ »ý¼º
____ÇÔ¼ö µ¶½ºÆ®¸µ
____À¯¿ëÇÑ µ¶½ºÆ®¸µ µµ±¸
__ÆÄÀ̽á´Ð Á¦¾î ±¸Á¶ ÀÛ¼º
____¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç »ç¿ë
____º¹ÀâÇÑ ¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç »ý¼º ±ÝÁö
____¶÷´Ù¸¦ »ç¿ëÇØ¾ß Çϴ°¡?
____Á¦³Ê·¹ÀÌÅÍ¿Í ¸®½ºÆ® ÄÄÇÁ¸®Çî¼ÇÀ» »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì
____·çÇÁ¿Í ÇÔ²² else¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÌÀ¯
____ÆÄÀ̽ã 3ÀÇ range°¡ ´õ ÁÁÀº ÀÌÀ¯
__¿¹¿Ü ¹ß»ý
____ÀÚÁÖ ¹ß»ýÇÏ´Â ¿¹¿Ü
____¿¹¿Ü 󸮿¡¼ finallyÀÇ ÀåÁ¡
____³ª¸¸ÀÇ ¿¹¿Ü Ŭ·¡½º »ý¼º
____ƯÁ¤ ¿¹¿Ü ó¸®
____¼µå ÆÄƼ ¿¹¿Ü ÁÖÀÇ
____ÃÖ¼ÒÇÑÀÇ try ÄÚµå ¼±È£
__¿ä¾à
2Àå. µ¥ÀÌÅÍ ±¸Á¶
__°øÅë µ¥ÀÌÅÍ ±¸Á¶
____¼Óµµ¸¦ À§ÇÑ ÁýÇÕ »ç¿ë
____µ¥ÀÌÅÍ ¹Ýȯ ¹× ¾×¼¼½º¸¦ À§ÇÑ ³×ÀÓµåÆ©Çà »ç¿ë
____str, À¯´ÏÄÚµå, ¹ÙÀÌÆ®ÀÇ ÀÌÇØ
____¸®½ºÆ® »ç¿ë ½Ã ÁÖÀÇ »çÇ×°ú Á¦³Ê·¹ÀÌÅÍ ¼±È£
____¸®½ºÆ® 󸮸¦ À§ÇÑ zip »ç¿ë
____ÆÄÀ̽ãÀÇ ³»Àå ÇÔ¼ö È°¿ë
__µñ¼Å³Ê¸®ÀÇ ÀåÁ¡
____µñ¼Å³Ê¸®¿Í ´Ù¸¥ µ¥ÀÌÅÍ ±¸Á¶¸¦ »ç¿ëÇÏ´Â ½Ã±â
____Ä÷º¼Ç
____OrderedDict, defaultdict, ÀÏ¹Ý µñ¼Å³Ê¸®
____µñ¼Å³Ê¸®¸¦ »ç¿ëÇÑ ½ºÀ§Ä¡ ±¸¹®
____µÎ °³ÀÇ µñ¼Å³Ê¸®¸¦ º´ÇÕÇÏ´Â ¹æ¹ý
____¿ì¾ÆÇÑ µñ¼Å³Ê¸® Ãâ·Â
__¿ä¾à
3Àå. ´õ ³ªÀº ÇÔ¼ö¿Í Ŭ·¡½º ÀÛ¼º
__ÇÔ¼ö
____ÀÛÀº ÇÔ¼ö »ý¼º
____Á¦³Ê·¹ÀÌÅÍ ¹Ýȯ
____None ¹Ýȯ ´ë½Å ¿¹¿Ü ¹ß»ý
____µðÆúÆ® ¹× Å°¿öµå ÀÎÀÚ¸¦ »ç¿ëÇÑ Çൿ Ãß°¡
____¸í½ÃÀûÀÎ None ¹Ýȯ ±ÝÁö
____¹æ¾îÀûÀÎ ÇÔ¼ö ÀÛ¼º
____´ÜÀÏ Ç¥Çö½ÄÀ¸·Î ¶÷´Ù »ç¿ë
__Ŭ·¡½º
____Ŭ·¡½ºÀÇ ¿Ã¹Ù¸¥ Å©±â
____Ŭ·¡½º ±¸Á¶
____@property¸¦ »ç¿ëÇÏ´Â ¿Ã¹Ù¸¥ ¹æ¹ý
____Á¤Àû ¸Þ¼µå »ç¿ë ½Ã±â
____ÆÄÀ̽á´Ð ¹æ¹ýÀÇ Ãß»ó Ŭ·¡½º »ó¼Ó »ç¿ë
____Ŭ·¡½º »óÅ ¾×¼¼½º¸¦ À§ÇÑ @classmethod »ç¿ë
____private ´ë½Å public ¼Ó¼º »ç¿ë
__¿ä¾à
4Àå. ¸ðµâ ¹× ¸ÞŸŬ·¡½º ÀÛ¾÷
__¸ðµâ°ú ¸ÞŸŬ·¡½º
__¸ðµâÀÌ Äڵ带 ±¸¼ºÇÏ´Â µ¥ µµ¿òÀÌ µÇ´Â ¹æ¹ý
____init__ ÆÄÀÏ È°¿ë
__¸ðµâÀÇ ÇÔ¼ö¿Í Ŭ·¡½º¸¦ ÀÓÆ÷Æ®ÇÏ´Â ¿Ã¹Ù¸¥ ¹æ¹ý
______all__¸¦ »ç¿ëÇÑ ÀÓÆ÷Æ® ¹æÁö
__¸ÞŸŬ·¡½º¸¦ »ç¿ëÇÏ´Â °æ¿ì
__¼ºêŬ·¡½º °ËÁõÀ» À§ÇÑ __new__ »ç¿ë
____slots__°¡ À¯¿ëÇÑ ÀÌÀ¯
__¸ÞŸŬ·¡½º¸¦ »ç¿ëÇÑ Å¬·¡½º µ¿ÀÛ º¯°æ
__ÆÄÀ̽㠵ð½ºÅ©¸³ÅÍ ´Ù·ç±â
__¿ä¾à
5Àå. µ¥ÄÚ·¹ÀÌÅÍ¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú
__µ¥ÄÚ·¹ÀÌÅÍ
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ÀÇ¹Ì¿Í À¯¿ëÇÑ ÀÌÀ¯
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ÀÌÇØ
____µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÑ µ¿ÀÛ ¼öÁ¤
____´ÙÁß µ¥ÄÚ·¹ÀÌÅÍ »ç¿ë
____µ¥ÄÚ·¹ÀÌÅÍ ÀÎÀÚ Çã¿ë
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ¶óÀ̺귯¸® »ç¿ë ½Ã °í·Á »çÇ×
____»óÅ À¯Áö¿Í ¸Å°³º¯¼ö À¯È¿¼ºÀ» À§ÇÑ Å¬·¡½º µ¥ÄÚ·¹ÀÌÅÍ
__ÄÁÅؽºÆ® ¸Å´ÏÀú
____ÄÁÅؽºÆ® ¸Å´ÏÀú¿Í À¯¿ë¼º
____ÄÁÅؽºÆ® ¸Å´ÏÀúÀÇ ÀÌÇØ
____ÄÁÅؽºÆ® ¸Å´ÏÀú ºôµå¸¦ À§ÇÑ contextlib »ç¿ë
____ÄÁÅؽºÆ® ¸Å´ÏÀú »ç¿ëÀÇ ½ÇÁ¦ »ç·Ê
__¿ä¾à
6Àå. Á¦³Ê·¹ÀÌÅÍ¿Í ÀÌÅÍ·¹ÀÌÅÍ
__ÀÌÅÍ·¹ÀÌÅÍ¿Í Á¦³Ê·¹ÀÌÅÍÀÇ È°¿ë
____ÀÌÅÍ·¹ÀÌÅÍÀÇ ÀÌÇØ
____Á¦³Ê·¹ÀÌÅͶõ ¹«¾ùÀΰ¡?
____ÀÌÅÍ·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì
____itertools »ç¿ë
____Á¦³Ê·¹ÀÌÅÍ°¡ À¯¿ëÇÑ ÀÌÀ¯
____¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç°ú ÀÌÅÍ·¹ÀÌÅÍ
__yield Å°¿öµå È°¿ë
____yield from
____µ¥ÀÌÅÍ ±¸Á¶¿Í ºñ±³ÇØ ´õ ºü¸¥ yield
__¿ä¾à
7Àå. »õ·Î¿î ÆÄÀ̽㠱â´É È°¿ë
__ºñµ¿±â ÇÁ·Î±×·¡¹Ö
____ÆÄÀ̽ãÀÇ ºñµ¿±â µµÀÔ
____ÀÛµ¿ ¹æ¹ý
____ºñµ¿±â Á¦³Ê·¹ÀÌÅÍ
__ÆÄÀ̽ã ŸÀÌÇÎ
____ÆÄÀ̽ã ŸÀÔ
____typing ¸ðµâ
____µ¥ÀÌÅÍ Å¸ÀÔÀÌ Äڵ带 ´À¸®°Ô Çϴ°¡?
____ŸÀÌÇÎÀ¸·Î ´õ ³ªÀº Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý
____ŸÀÌÇÎÀÇ ´ÜÁ¡
__super() ¸Þ¼µå
__ŸÀÔ ÈùÆ®
__pathlib¸¦ »ç¿ëÇÑ °æ·Î ó¸® È¿À²È
__ÇÔ¼ö print()
__f-string
__Å°¿öµå Àü¿ë ÀÎÀÚ
__µñ¼Å³Ê¸® ¼ø¼ À¯Áö
__ÀÌÅÍ·¹ÀÌÅÍ ÇØÁ¦
__¿ä¾à
8Àå. ÆÄÀ̽ã ÄÚµåÀÇ µð¹ö±ë°ú Å×½ºÆ®
__µð¹ö±ë
____µð¹ö±ë µµ±¸
____breakpoint
____ÇÁ·Î´ö¼Ç ÄÚµå Ãâ·Â ´ë½Å logging ¸ðµâ »ç¿ë
____º´¸ñ Çö»ó ½Äº°À» À§ÇÑ ¸ÞÆ®¸¯ ¶óÀ̺귯¸® »ç¿ë
____IPythonÀÌ µµ¿òÀÌ µÇ´Â ¹æ¹ý
__Å×½ºÆÃ
____Å×½ºÆÃÀÌ Áß¿äÇÑ ÀÌÀ¯
____Pytest¿Í UnitTest
____¼Ó¼º Å×½ºÆ®
____Å×½ºÆ® º¸°í¼ »ý¼º ¹æ¹ý
____´ÜÀ§ Å×½ºÆ® ÀÚµ¿È
____ÇÁ·Î´ö¼ÇÀ» À§ÇÑ ÄÚµå Áغñ
____ÆÄÀ̽ãÀÇ ´ÜÀ§ Å×½ºÆ®¿Í ÅëÇÕ Å×½ºÆ® ½ÇÇà
__¿ä¾à
9Àå. ¸ÚÁø ÆÄÀ̽㠵µ±¸
__Sphinx
__Ä¿¹ö¸®Áö
__pre-commit
__virtualenv¸¦ À§ÇÑ Pyenv
__ÁÖÇÇÅÍ ·¦
__ÆÄÀÌÂü/VSCode/¼ºê¶óÀÓ
__Flake8/Pylint
__ÆÄÀ̽á´Ð ÄÚµå ÀÛ¼º
____³×À̹Ö
____ÄÚµå Ç¥Çö°ú ±¸¹®
____ÄÚµå ÀÛ¼ºÀ» À§ÇÑ ÆÄÀ̽á´Ð ¹æ¹ýÀÇ ¼ö¿ë
__µ¶½ºÆ®¸µ »ç¿ë
____¸ðµâ ·¹º§ µ¶½ºÆ®¸µ
____Ŭ·¡½º µ¶½ºÆ®¸µ »ý¼º
____ÇÔ¼ö µ¶½ºÆ®¸µ
____À¯¿ëÇÑ µ¶½ºÆ®¸µ µµ±¸
__ÆÄÀ̽á´Ð Á¦¾î ±¸Á¶ ÀÛ¼º
____¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç »ç¿ë
____º¹ÀâÇÑ ¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç »ý¼º ±ÝÁö
____¶÷´Ù¸¦ »ç¿ëÇØ¾ß Çϴ°¡?
____Á¦³Ê·¹ÀÌÅÍ¿Í ¸®½ºÆ® ÄÄÇÁ¸®Çî¼ÇÀ» »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì
____·çÇÁ¿Í ÇÔ²² else¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÌÀ¯
____ÆÄÀ̽ã 3ÀÇ range°¡ ´õ ÁÁÀº ÀÌÀ¯
__¿¹¿Ü ¹ß»ý
____ÀÚÁÖ ¹ß»ýÇÏ´Â ¿¹¿Ü
____¿¹¿Ü 󸮿¡¼ finallyÀÇ ÀåÁ¡
____³ª¸¸ÀÇ ¿¹¿Ü Ŭ·¡½º »ý¼º
____ƯÁ¤ ¿¹¿Ü ó¸®
____¼µå ÆÄƼ ¿¹¿Ü ÁÖÀÇ
____ÃÖ¼ÒÇÑÀÇ try ÄÚµå ¼±È£
__¿ä¾à
2Àå. µ¥ÀÌÅÍ ±¸Á¶
__°øÅë µ¥ÀÌÅÍ ±¸Á¶
____¼Óµµ¸¦ À§ÇÑ ÁýÇÕ »ç¿ë
____µ¥ÀÌÅÍ ¹Ýȯ ¹× ¾×¼¼½º¸¦ À§ÇÑ ³×ÀÓµåÆ©Çà »ç¿ë
____str, À¯´ÏÄÚµå, ¹ÙÀÌÆ®ÀÇ ÀÌÇØ
____¸®½ºÆ® »ç¿ë ½Ã ÁÖÀÇ »çÇ×°ú Á¦³Ê·¹ÀÌÅÍ ¼±È£
____¸®½ºÆ® 󸮸¦ À§ÇÑ zip »ç¿ë
____ÆÄÀ̽ãÀÇ ³»Àå ÇÔ¼ö È°¿ë
__µñ¼Å³Ê¸®ÀÇ ÀåÁ¡
____µñ¼Å³Ê¸®¿Í ´Ù¸¥ µ¥ÀÌÅÍ ±¸Á¶¸¦ »ç¿ëÇÏ´Â ½Ã±â
____Ä÷º¼Ç
____OrderedDict, defaultdict, ÀÏ¹Ý µñ¼Å³Ê¸®
____µñ¼Å³Ê¸®¸¦ »ç¿ëÇÑ ½ºÀ§Ä¡ ±¸¹®
____µÎ °³ÀÇ µñ¼Å³Ê¸®¸¦ º´ÇÕÇÏ´Â ¹æ¹ý
____¿ì¾ÆÇÑ µñ¼Å³Ê¸® Ãâ·Â
__¿ä¾à
3Àå. ´õ ³ªÀº ÇÔ¼ö¿Í Ŭ·¡½º ÀÛ¼º
__ÇÔ¼ö
____ÀÛÀº ÇÔ¼ö »ý¼º
____Á¦³Ê·¹ÀÌÅÍ ¹Ýȯ
____None ¹Ýȯ ´ë½Å ¿¹¿Ü ¹ß»ý
____µðÆúÆ® ¹× Å°¿öµå ÀÎÀÚ¸¦ »ç¿ëÇÑ Çൿ Ãß°¡
____¸í½ÃÀûÀÎ None ¹Ýȯ ±ÝÁö
____¹æ¾îÀûÀÎ ÇÔ¼ö ÀÛ¼º
____´ÜÀÏ Ç¥Çö½ÄÀ¸·Î ¶÷´Ù »ç¿ë
__Ŭ·¡½º
____Ŭ·¡½ºÀÇ ¿Ã¹Ù¸¥ Å©±â
____Ŭ·¡½º ±¸Á¶
____@property¸¦ »ç¿ëÇÏ´Â ¿Ã¹Ù¸¥ ¹æ¹ý
____Á¤Àû ¸Þ¼µå »ç¿ë ½Ã±â
____ÆÄÀ̽á´Ð ¹æ¹ýÀÇ Ãß»ó Ŭ·¡½º »ó¼Ó »ç¿ë
____Ŭ·¡½º »óÅ ¾×¼¼½º¸¦ À§ÇÑ @classmethod »ç¿ë
____private ´ë½Å public ¼Ó¼º »ç¿ë
__¿ä¾à
4Àå. ¸ðµâ ¹× ¸ÞŸŬ·¡½º ÀÛ¾÷
__¸ðµâ°ú ¸ÞŸŬ·¡½º
__¸ðµâÀÌ Äڵ带 ±¸¼ºÇÏ´Â µ¥ µµ¿òÀÌ µÇ´Â ¹æ¹ý
____init__ ÆÄÀÏ È°¿ë
__¸ðµâÀÇ ÇÔ¼ö¿Í Ŭ·¡½º¸¦ ÀÓÆ÷Æ®ÇÏ´Â ¿Ã¹Ù¸¥ ¹æ¹ý
______all__¸¦ »ç¿ëÇÑ ÀÓÆ÷Æ® ¹æÁö
__¸ÞŸŬ·¡½º¸¦ »ç¿ëÇÏ´Â °æ¿ì
__¼ºêŬ·¡½º °ËÁõÀ» À§ÇÑ __new__ »ç¿ë
____slots__°¡ À¯¿ëÇÑ ÀÌÀ¯
__¸ÞŸŬ·¡½º¸¦ »ç¿ëÇÑ Å¬·¡½º µ¿ÀÛ º¯°æ
__ÆÄÀ̽㠵ð½ºÅ©¸³ÅÍ ´Ù·ç±â
__¿ä¾à
5Àå. µ¥ÄÚ·¹ÀÌÅÍ¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú
__µ¥ÄÚ·¹ÀÌÅÍ
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ÀÇ¹Ì¿Í À¯¿ëÇÑ ÀÌÀ¯
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ÀÌÇØ
____µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÑ µ¿ÀÛ ¼öÁ¤
____´ÙÁß µ¥ÄÚ·¹ÀÌÅÍ »ç¿ë
____µ¥ÄÚ·¹ÀÌÅÍ ÀÎÀÚ Çã¿ë
____µ¥ÄÚ·¹ÀÌÅÍÀÇ ¶óÀ̺귯¸® »ç¿ë ½Ã °í·Á »çÇ×
____»óÅ À¯Áö¿Í ¸Å°³º¯¼ö À¯È¿¼ºÀ» À§ÇÑ Å¬·¡½º µ¥ÄÚ·¹ÀÌÅÍ
__ÄÁÅؽºÆ® ¸Å´ÏÀú
____ÄÁÅؽºÆ® ¸Å´ÏÀú¿Í À¯¿ë¼º
____ÄÁÅؽºÆ® ¸Å´ÏÀúÀÇ ÀÌÇØ
____ÄÁÅؽºÆ® ¸Å´ÏÀú ºôµå¸¦ À§ÇÑ contextlib »ç¿ë
____ÄÁÅؽºÆ® ¸Å´ÏÀú »ç¿ëÀÇ ½ÇÁ¦ »ç·Ê
__¿ä¾à
6Àå. Á¦³Ê·¹ÀÌÅÍ¿Í ÀÌÅÍ·¹ÀÌÅÍ
__ÀÌÅÍ·¹ÀÌÅÍ¿Í Á¦³Ê·¹ÀÌÅÍÀÇ È°¿ë
____ÀÌÅÍ·¹ÀÌÅÍÀÇ ÀÌÇØ
____Á¦³Ê·¹ÀÌÅͶõ ¹«¾ùÀΰ¡?
____ÀÌÅÍ·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â °æ¿ì
____itertools »ç¿ë
____Á¦³Ê·¹ÀÌÅÍ°¡ À¯¿ëÇÑ ÀÌÀ¯
____¸®½ºÆ® ÄÄÇÁ¸®Çî¼Ç°ú ÀÌÅÍ·¹ÀÌÅÍ
__yield Å°¿öµå È°¿ë
____yield from
____µ¥ÀÌÅÍ ±¸Á¶¿Í ºñ±³ÇØ ´õ ºü¸¥ yield
__¿ä¾à
7Àå. »õ·Î¿î ÆÄÀ̽㠱â´É È°¿ë
__ºñµ¿±â ÇÁ·Î±×·¡¹Ö
____ÆÄÀ̽ãÀÇ ºñµ¿±â µµÀÔ
____ÀÛµ¿ ¹æ¹ý
____ºñµ¿±â Á¦³Ê·¹ÀÌÅÍ
__ÆÄÀ̽ã ŸÀÌÇÎ
____ÆÄÀ̽ã ŸÀÔ
____typing ¸ðµâ
____µ¥ÀÌÅÍ Å¸ÀÔÀÌ Äڵ带 ´À¸®°Ô Çϴ°¡?
____ŸÀÌÇÎÀ¸·Î ´õ ³ªÀº Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý
____ŸÀÌÇÎÀÇ ´ÜÁ¡
__super() ¸Þ¼µå
__ŸÀÔ ÈùÆ®
__pathlib¸¦ »ç¿ëÇÑ °æ·Î ó¸® È¿À²È
__ÇÔ¼ö print()
__f-string
__Å°¿öµå Àü¿ë ÀÎÀÚ
__µñ¼Å³Ê¸® ¼ø¼ À¯Áö
__ÀÌÅÍ·¹ÀÌÅÍ ÇØÁ¦
__¿ä¾à
8Àå. ÆÄÀ̽ã ÄÚµåÀÇ µð¹ö±ë°ú Å×½ºÆ®
__µð¹ö±ë
____µð¹ö±ë µµ±¸
____breakpoint
____ÇÁ·Î´ö¼Ç ÄÚµå Ãâ·Â ´ë½Å logging ¸ðµâ »ç¿ë
____º´¸ñ Çö»ó ½Äº°À» À§ÇÑ ¸ÞÆ®¸¯ ¶óÀ̺귯¸® »ç¿ë
____IPythonÀÌ µµ¿òÀÌ µÇ´Â ¹æ¹ý
__Å×½ºÆÃ
____Å×½ºÆÃÀÌ Áß¿äÇÑ ÀÌÀ¯
____Pytest¿Í UnitTest
____¼Ó¼º Å×½ºÆ®
____Å×½ºÆ® º¸°í¼ »ý¼º ¹æ¹ý
____´ÜÀ§ Å×½ºÆ® ÀÚµ¿È
____ÇÁ·Î´ö¼ÇÀ» À§ÇÑ ÄÚµå Áغñ
____ÆÄÀ̽ãÀÇ ´ÜÀ§ Å×½ºÆ®¿Í ÅëÇÕ Å×½ºÆ® ½ÇÇà
__¿ä¾à
9Àå. ¸ÚÁø ÆÄÀ̽㠵µ±¸
__Sphinx
__Ä¿¹ö¸®Áö
__pre-commit
__virtualenv¸¦ À§ÇÑ Pyenv
__ÁÖÇÇÅÍ ·¦
__ÆÄÀÌÂü/VSCode/¼ºê¶óÀÓ
__Flake8/Pylint
ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë
- ÆÄÀ̽ã ÄÚµåÀÇ ¿Ã¹Ù¸¥ Ç¥Çö°ú ±¸¹®
- ÆÄÀ̽㠵ñ¼Å³Ê¸®ÀÇ »ý¼º°ú ÇÒ´ç
- ÆÄÀ̽㿡¼ÀÇ °í±Þ µ¥ÀÌÅÍ ±¸Á¶ ÀÛ¾÷
- ´õ ³ªÀº ¸ðµâ, Ŭ·¡½º, ÇÔ¼ö, ¸ÞŸ Ŭ·¡½º ÀÛ¼º
- ºñµ¿±â ÆÄÀ̽ã ÀÛ¼º
- ÆÄÀ̽ãÀÇ »õ·Î¿î ±â´É
ÁöÀºÀÌÀÇ ¸»
ÆÄÀ̽ãÀº ¿À´Ã³¯ °¡Àå Àαâ ÀÖ´Â ¾ð¾î Áß Çϳª´Ù. À¥ °³¹ß, °úÇÐ ¿¬±¸¿Í °°Àº ÀüÅëÀûÀÎ ºÐ¾ß ¿Ü¿¡ µ¥ÀÌÅÍ °úÇÐ, AI, ·Îº¿°øÇÐ, µ¥ÀÌÅÍ ºÐ¼®°ú °°Àº ºñ±³Àû »õ·Î¿î ºÐ¾ß¿¡¼µµ ÆÄÀ̽ãÀ» »ç¿ëÇÏ°í ÀÖ´Ù. ÆÄÀ̽ã°ú °°Àº µ¿Àû ¾ð¾î·Î Äڵ带 ÀÛ¼ºÇÏ´Â ÇÁ·Î±×·¡¸Ó´Â ÄÚµåÀÇ Ç°ÁúÀÌ ³ô°í ¿À·ù°¡ ¾ø´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ Á¡Á¡ ´õ Áß¿äÇØÁö°í ÀÖ´Ù. ÆÄÀ̽㠰³¹ßÀÚ´Â °³¹ß ÁßÀÎ ¼ÒÇÁÆ®¿þ¾î°¡ ¿¹»êÀ» ÃÊ°úÇϰųª ¸±¸®½º(release)ÇÏÁö ¾Ê°íµµ »ç¿ëÀÚ¸¦ ¸¸Á·½Ãų ¼ö ÀÖ´ÂÁö È®ÀÎÇÏ·Á ÇÑ´Ù. ÆÄÀ̽ãÀº ´Ü¼øÇÑ ¾ð¾îÁö¸¸, ´õ ³ªÀº ÆÄÀ̽ã Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» °¡¸£Ä¡´Â ¸®¼Ò½º(resource)°¡ ¸¹Áö ¾ÊÀ¸¹Ç·Î ÆÄÀ̽ãÀ¸·Î ÈǸ¢ÇÑ Äڵ带 ÀÛ¼ºÇϱâ´Â ¾î·Æ´Ù.
ÇöÀç ÆÄÀ̽㠼¼°è¿¡¼´Â ÄÚµå ÀÏ°ü¼º(code consistency), ÆÐÅÏ, ÁÁÀº ÆÄÀ̽ã Äڵ忡 ´ëÇÑ °³¹ßÀÚ °£ÀÇ °øÅëÀûÀÎ ÀÌÇØ°¡ ºÎÁ·ÇÏ´Ù. ¸ðµç ÆÄÀ̽ã ÇÁ·Î±×·¡¸Ó¿¡°Ô¼ ÈǸ¢ÇÑ ÆÄÀ̽ã ÄÚµå´Â °¢±â ´Ù¸¥ Àǹ̸¦ °¡Áø´Ù. ÆÄÀ̽ãÀÌ ³Ê¹« ¸¹Àº ºÐ¾ß¿¡¼ »ç¿ëµÇ°í ÀÖÀ¸¹Ç·Î °³¹ßÀÚµé »çÀÌ¿¡¼ ƯÁ¤ ÆÐÅÏ¿¡ ´ëÇÑ ÇÕÀǸ¦ À̲ø¾î³»±â°¡ ¾î·Æ±â ¶§¹®ÀÌ´Ù. °Ô´Ù°¡ ÆÄÀ̽ãÀº ÀÚ¹Ù(Java)³ª ·çºñ(Ruby)¿Í ´Þ¸® ¡®Å¬¸° ÄÚµå(clean code)¡¯¿¡ °üÇÑ Ã¥ÀÌ Á¸ÀçÇÏÁöµµ ¾Ê´Â´Ù. ÈǸ¢ÇÑ ÆÄÀ̽㠻ç·Ê¸¦ ¸íÈ®ÇÏ°Ô º¸¿©ÁÖ°íÀÚ ÀÌ·± Á¾·ùÀÇ Ã¥À» ÀÛ¼ºÇÏ·Á´Â ½Ãµµ°¡ ÀÖ¾úÁö¸¸, ½Ãµµ ÀÚüµµ ±×´ÙÁö ¸¹Áö ¾Ê¾Ò°í ¼ÖÁ÷È÷ ¸»ÇØ Ç°Áú ÀÚüµµ ¸¸Á·½º·´Áö ¾Ê¾Ò´Ù.
ÀÌ Ã¥ÀÇ ÁÖ¸ñÀûÀº ´Ù¾çÇÑ ¼öÁØÀÇ ÆÄÀ̽㠰³¹ßÀÚ¿¡°Ô ´õ ³ªÀº ÆÄÀ̽㠼ÒÇÁÆ®¿þ¾î¿Í ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Â ÆÁÀ» Á¦°øÇÏ´Â °ÍÀÌ´Ù. ÀÌ Ã¥Àº ÆÄÀ̽ãÀ» »ç¿ëÇÏ´Â ºÐ¾ß¿¡ °ü°è¾øÀÌ ´Ù¾çÇÑ ±â¼úÀ» Á¦°øÇÑ´Ù. ±âº»¿¡¼ °í±Þ±îÁö ¸ðµç ¼öÁØÀÇ ÆÄÀ̽ãÀ» ´Ù·ç¸ç Á» ´õ ÆÄÀ̽á´Ð(Pythonic)ÇÏ°Ô Äڵ带 ÀÛ¼ºÇÏ´Â ¹ýÀ» ¼Ò°³ÇÑ´Ù.
¿Å±äÀÌÀÇ ¸»
ÆÄÀ̽ãÀº °¡Àå Àαâ ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î Áß ÇϳªÀÔ´Ï´Ù. ¹®¹ýÀÌ º¹ÀâÇÏÁö ¾Ê°í Ãʺ¸ÀÚµµ ½±°Ô ´Ù·ê ¼ö ÀÖÀ¸¹Ç·Î, ÆÄÀ̽ãÀº ÄÚµùÀ» óÀ½ Á¢ÇÏ´Â ÇлýµéºÎÅÍ ÀΰøÁö´É, ¸Ó½Å·¯´× µîÀ» ´Ù·ç´Â °³¹ßÀÚµé±îÁö ´Ù¾çÇÏ°Ô »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. °³¹ßÀÚ ´ëºÎºÐÀº ÆÄÀ̽ãÀÌ Ã³À½ ³ª¿ÔÀ» ¶§ Áö±Ý°ú °°Àº Àα⸦ ¾òÀ» °ÍÀ̶ó°í »ó»óÇÏÁö ¸øÇß½À´Ï´Ù. Àú ¿ª½Ã ¸¶Âù°¡Áö¿´½À´Ï´Ù.
ÇöÀç ÆÄÀ̽ãÀÇ À§»óÀº »ó»óÀ» ÃÊ¿ùÇÏ°í ÀÖ½À´Ï´Ù. ´ëÁßÀûÀ¸·Î ¸¹Àº »ç¶ûÀ» ¹Þ°í ÀÖÀ¸¸ç, ÆÄÀ̽㠰ü·Ã ÇÁ·Î±×·¡¹Ö ¼Àûµµ ²÷ÀÓ¾øÀÌ ½ñ¾ÆÁö°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ »ç¿ë °¡´ÉÇÑ °ø°³ ¶óÀ̺귯¸®µµ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îº¸´Ù ´Ù¾çÇϹǷΠ¿øÇÏ´Â ÇÁ·Î±×·¥À» ½±°Ô ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³¿¡µµ Àú´Â ÆÄÀ̽ãÀ» °øºÎÇÏ¸é¼ ´Ã ÇÑ °¡Áö ¾Æ½¬¿î Á¡ÀÌ ÀÖ¾ú½À´Ï´Ù. ¼º´ÉÀÌ Å©°Ô ¶³¾îÁø´Ù°Å³ª ÄÚµùÀÌ ºÒÆíÇÏ´Ù´Â À̾߱⵵ ¾Æ´Õ´Ï´Ù. ¿©·¯ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ´Þ¸®, ÆÄÀ̽ãÀÇ °æ¿ì È¿°úÀûÀ¸·Î ÄÚµùÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸°¡ ºÎÁ·ÇÏ´Ù°í ´À²¸Á³½À´Ï´Ù.
ÀÌ Ã¥Àº ´õ ³ªÀº ¹æ¹ýÀ¸·Î ÆÄÀ̽ã Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀ» ÀüÁ¦·Î Á¢±ÙÇÕ´Ï´Ù. ÆÄÀ̽ãÀÇ ÆÄÀ̽á´Ð ÄÚµå ÀÛ¼º ¹æ¹ýÀ» ½ÃÀÛÀ¸·Î, ¿Ã¹Ù¸¥ Ç¥Çö°ú ³»Àå µ¥ÀÌÅÍ ±¸Á¶, ÇÔ¼ö¿Í Ŭ·¡½º, µñ¼Å³Ê¸®¸¦ È°¿ëÇÑ ¸ðµâ ¹× ¸ÞŸŬ·¡½º µîÀ» ´Ù·ê °ÍÀÔ´Ï´Ù. ¶ÇÇÑ µ¥ÄÚ·¹ÀÌÅÍ¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú, Á¦³Ê·¹ÀÌÅÍ¿Í ÀÌÅÍ·¹ÀÌÅÍ, ºñµ¿±â ÇÁ·Î±×·¡¹Ö, ŸÀÔ ÈùÆ®, µð¹ö±ë ¹æ¹ý°ú Å×½ºÆ®, ¸ÚÁø ÆÄÀ̽㠵µ±¸µµ »ìÆ캼 °ÍÀÔ´Ï´Ù.
- ÆÄÀ̽ã ÄÚµåÀÇ ¿Ã¹Ù¸¥ Ç¥Çö°ú ±¸¹®
- ÆÄÀ̽㠵ñ¼Å³Ê¸®ÀÇ »ý¼º°ú ÇÒ´ç
- ÆÄÀ̽㿡¼ÀÇ °í±Þ µ¥ÀÌÅÍ ±¸Á¶ ÀÛ¾÷
- ´õ ³ªÀº ¸ðµâ, Ŭ·¡½º, ÇÔ¼ö, ¸ÞŸ Ŭ·¡½º ÀÛ¼º
- ºñµ¿±â ÆÄÀ̽ã ÀÛ¼º
- ÆÄÀ̽ãÀÇ »õ·Î¿î ±â´É
ÁöÀºÀÌÀÇ ¸»
ÆÄÀ̽ãÀº ¿À´Ã³¯ °¡Àå Àαâ ÀÖ´Â ¾ð¾î Áß Çϳª´Ù. À¥ °³¹ß, °úÇÐ ¿¬±¸¿Í °°Àº ÀüÅëÀûÀÎ ºÐ¾ß ¿Ü¿¡ µ¥ÀÌÅÍ °úÇÐ, AI, ·Îº¿°øÇÐ, µ¥ÀÌÅÍ ºÐ¼®°ú °°Àº ºñ±³Àû »õ·Î¿î ºÐ¾ß¿¡¼µµ ÆÄÀ̽ãÀ» »ç¿ëÇÏ°í ÀÖ´Ù. ÆÄÀ̽ã°ú °°Àº µ¿Àû ¾ð¾î·Î Äڵ带 ÀÛ¼ºÇÏ´Â ÇÁ·Î±×·¡¸Ó´Â ÄÚµåÀÇ Ç°ÁúÀÌ ³ô°í ¿À·ù°¡ ¾ø´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ Á¡Á¡ ´õ Áß¿äÇØÁö°í ÀÖ´Ù. ÆÄÀ̽㠰³¹ßÀÚ´Â °³¹ß ÁßÀÎ ¼ÒÇÁÆ®¿þ¾î°¡ ¿¹»êÀ» ÃÊ°úÇϰųª ¸±¸®½º(release)ÇÏÁö ¾Ê°íµµ »ç¿ëÀÚ¸¦ ¸¸Á·½Ãų ¼ö ÀÖ´ÂÁö È®ÀÎÇÏ·Á ÇÑ´Ù. ÆÄÀ̽ãÀº ´Ü¼øÇÑ ¾ð¾îÁö¸¸, ´õ ³ªÀº ÆÄÀ̽ã Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» °¡¸£Ä¡´Â ¸®¼Ò½º(resource)°¡ ¸¹Áö ¾ÊÀ¸¹Ç·Î ÆÄÀ̽ãÀ¸·Î ÈǸ¢ÇÑ Äڵ带 ÀÛ¼ºÇϱâ´Â ¾î·Æ´Ù.
ÇöÀç ÆÄÀ̽㠼¼°è¿¡¼´Â ÄÚµå ÀÏ°ü¼º(code consistency), ÆÐÅÏ, ÁÁÀº ÆÄÀ̽ã Äڵ忡 ´ëÇÑ °³¹ßÀÚ °£ÀÇ °øÅëÀûÀÎ ÀÌÇØ°¡ ºÎÁ·ÇÏ´Ù. ¸ðµç ÆÄÀ̽ã ÇÁ·Î±×·¡¸Ó¿¡°Ô¼ ÈǸ¢ÇÑ ÆÄÀ̽ã ÄÚµå´Â °¢±â ´Ù¸¥ Àǹ̸¦ °¡Áø´Ù. ÆÄÀ̽ãÀÌ ³Ê¹« ¸¹Àº ºÐ¾ß¿¡¼ »ç¿ëµÇ°í ÀÖÀ¸¹Ç·Î °³¹ßÀÚµé »çÀÌ¿¡¼ ƯÁ¤ ÆÐÅÏ¿¡ ´ëÇÑ ÇÕÀǸ¦ À̲ø¾î³»±â°¡ ¾î·Æ±â ¶§¹®ÀÌ´Ù. °Ô´Ù°¡ ÆÄÀ̽ãÀº ÀÚ¹Ù(Java)³ª ·çºñ(Ruby)¿Í ´Þ¸® ¡®Å¬¸° ÄÚµå(clean code)¡¯¿¡ °üÇÑ Ã¥ÀÌ Á¸ÀçÇÏÁöµµ ¾Ê´Â´Ù. ÈǸ¢ÇÑ ÆÄÀ̽㠻ç·Ê¸¦ ¸íÈ®ÇÏ°Ô º¸¿©ÁÖ°íÀÚ ÀÌ·± Á¾·ùÀÇ Ã¥À» ÀÛ¼ºÇÏ·Á´Â ½Ãµµ°¡ ÀÖ¾úÁö¸¸, ½Ãµµ ÀÚüµµ ±×´ÙÁö ¸¹Áö ¾Ê¾Ò°í ¼ÖÁ÷È÷ ¸»ÇØ Ç°Áú ÀÚüµµ ¸¸Á·½º·´Áö ¾Ê¾Ò´Ù.
ÀÌ Ã¥ÀÇ ÁÖ¸ñÀûÀº ´Ù¾çÇÑ ¼öÁØÀÇ ÆÄÀ̽㠰³¹ßÀÚ¿¡°Ô ´õ ³ªÀº ÆÄÀ̽㠼ÒÇÁÆ®¿þ¾î¿Í ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Â ÆÁÀ» Á¦°øÇÏ´Â °ÍÀÌ´Ù. ÀÌ Ã¥Àº ÆÄÀ̽ãÀ» »ç¿ëÇÏ´Â ºÐ¾ß¿¡ °ü°è¾øÀÌ ´Ù¾çÇÑ ±â¼úÀ» Á¦°øÇÑ´Ù. ±âº»¿¡¼ °í±Þ±îÁö ¸ðµç ¼öÁØÀÇ ÆÄÀ̽ãÀ» ´Ù·ç¸ç Á» ´õ ÆÄÀ̽á´Ð(Pythonic)ÇÏ°Ô Äڵ带 ÀÛ¼ºÇÏ´Â ¹ýÀ» ¼Ò°³ÇÑ´Ù.
¿Å±äÀÌÀÇ ¸»
ÆÄÀ̽ãÀº °¡Àå Àαâ ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î Áß ÇϳªÀÔ´Ï´Ù. ¹®¹ýÀÌ º¹ÀâÇÏÁö ¾Ê°í Ãʺ¸ÀÚµµ ½±°Ô ´Ù·ê ¼ö ÀÖÀ¸¹Ç·Î, ÆÄÀ̽ãÀº ÄÚµùÀ» óÀ½ Á¢ÇÏ´Â ÇлýµéºÎÅÍ ÀΰøÁö´É, ¸Ó½Å·¯´× µîÀ» ´Ù·ç´Â °³¹ßÀÚµé±îÁö ´Ù¾çÇÏ°Ô »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. °³¹ßÀÚ ´ëºÎºÐÀº ÆÄÀ̽ãÀÌ Ã³À½ ³ª¿ÔÀ» ¶§ Áö±Ý°ú °°Àº Àα⸦ ¾òÀ» °ÍÀ̶ó°í »ó»óÇÏÁö ¸øÇß½À´Ï´Ù. Àú ¿ª½Ã ¸¶Âù°¡Áö¿´½À´Ï´Ù.
ÇöÀç ÆÄÀ̽ãÀÇ À§»óÀº »ó»óÀ» ÃÊ¿ùÇÏ°í ÀÖ½À´Ï´Ù. ´ëÁßÀûÀ¸·Î ¸¹Àº »ç¶ûÀ» ¹Þ°í ÀÖÀ¸¸ç, ÆÄÀ̽㠰ü·Ã ÇÁ·Î±×·¡¹Ö ¼Àûµµ ²÷ÀÓ¾øÀÌ ½ñ¾ÆÁö°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ »ç¿ë °¡´ÉÇÑ °ø°³ ¶óÀ̺귯¸®µµ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îº¸´Ù ´Ù¾çÇϹǷΠ¿øÇÏ´Â ÇÁ·Î±×·¥À» ½±°Ô ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³¿¡µµ Àú´Â ÆÄÀ̽ãÀ» °øºÎÇÏ¸é¼ ´Ã ÇÑ °¡Áö ¾Æ½¬¿î Á¡ÀÌ ÀÖ¾ú½À´Ï´Ù. ¼º´ÉÀÌ Å©°Ô ¶³¾îÁø´Ù°Å³ª ÄÚµùÀÌ ºÒÆíÇÏ´Ù´Â À̾߱⵵ ¾Æ´Õ´Ï´Ù. ¿©·¯ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ´Þ¸®, ÆÄÀ̽ãÀÇ °æ¿ì È¿°úÀûÀ¸·Î ÄÚµùÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸°¡ ºÎÁ·ÇÏ´Ù°í ´À²¸Á³½À´Ï´Ù.
ÀÌ Ã¥Àº ´õ ³ªÀº ¹æ¹ýÀ¸·Î ÆÄÀ̽ã Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀ» ÀüÁ¦·Î Á¢±ÙÇÕ´Ï´Ù. ÆÄÀ̽ãÀÇ ÆÄÀ̽á´Ð ÄÚµå ÀÛ¼º ¹æ¹ýÀ» ½ÃÀÛÀ¸·Î, ¿Ã¹Ù¸¥ Ç¥Çö°ú ³»Àå µ¥ÀÌÅÍ ±¸Á¶, ÇÔ¼ö¿Í Ŭ·¡½º, µñ¼Å³Ê¸®¸¦ È°¿ëÇÑ ¸ðµâ ¹× ¸ÞŸŬ·¡½º µîÀ» ´Ù·ê °ÍÀÔ´Ï´Ù. ¶ÇÇÑ µ¥ÄÚ·¹ÀÌÅÍ¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú, Á¦³Ê·¹ÀÌÅÍ¿Í ÀÌÅÍ·¹ÀÌÅÍ, ºñµ¿±â ÇÁ·Î±×·¡¹Ö, ŸÀÔ ÈùÆ®, µð¹ö±ë ¹æ¹ý°ú Å×½ºÆ®, ¸ÚÁø ÆÄÀ̽㠵µ±¸µµ »ìÆ캼 °ÍÀÔ´Ï´Ù.