°³¶ËÀ̳׿¡¼­ ÆÇ¸ÅµÈ "°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e"     Á¤°¡ 45,000¿ø   Æò±ÕÇÒÀΰ¡
Ãß°¡ °Ë»ö Çϱâ
ÃÑ 6°³ÀÇ µµ¼­°¡ ÀÖ½À´Ï´Ù.
µµ¼­À̹ÌÁö µµ¼­¸í »óÅ °¡°Ý ÆǸÅÀÚ

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
ÃÖ»ó 
38,700¿ø

¹«·á¹è¼Û
Çö¸¾Á¾¸¾
ÆǸŵµ¼­(133,021±Ç)

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
ÃÖ»ó 
38,700¿ø

¹«·á¹è¼Û
Çö¸¾Á¾¸¾
ÆǸŵµ¼­(133,021±Ç)

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
ÃÖ»ó 
38,700¿ø

¹«·á¹è¼Û
³í¼ú°øºÎ
ÆǸŵµ¼­(109,233±Ç)

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
»õÃ¥ 
40,500¿ø

¹«·á¹è¼Û
Ã¥°¡¹æ
ÆǸŵµ¼­(328,772±Ç)

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
»õÃ¥ 
40,500¿ø

¹«·á¹è¼Û
ºÏ´Ù¿ò
ÆǸŵµ¼­(7,384±Ç)

°´Ã¼ÁöÇâ ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö 2/e
»õÃ¥ 
40,500¿ø

¹«·á¹è¼Û
»õÃ¥Àü¹®Á¡
ÆǸŵµ¼­(360,127±Ç)
 

»ó¼¼Á¤º¸

1Àå. Áغñ, µµ±¸, ±â¹ý __±â¼ú ¿ä±¸ »çÇ×__ºí·¢Àè °ÔÀÓ ¼Ò°³____°ÔÀÓ ½ÃÀÛ____ºí·¢Àè Ç÷¹À̾î Àü·«____ºí·¢Àè ½Ã¹Ä·¹À̼ÇÀ» À§ÇÑ °´Ã¼ µðÀÚÀÎ__ÆÄÀ̽㠷±Å¸ÀÓ°ú ½ºÆä¼È ¸Þ¼­µå__ÀÎÅÍ·¢¼Ç, ½ºÅ©¸³ÆÃ, µµ±¸__IDE °í¸£±â__ÀÏ°ü¼º°ú ½ºÅ¸ÀÏ__ŸÀÔ ÈùÆ®¿Í mypy ÇÁ·Î±×·¥__¼º´É - timeit ¸ðµâ__Å×½ºÆ® - unittest¿Í doctest__¹®¼­È­ - sphinx¿Í RST ¸¶Å©¾÷__ÄÄÆ÷³ÍÆ® ¼³Ä¡__¿ä¾à2Àå. __init__() ¸Þ¼­µå __±â¼ú ¿ä±¸ »çÇ×__¾Ï¹¬Àû ÃÖ»óÀ§ Ŭ·¡½º - object__±â¹Ý Ŭ·¡½º °´Ã¼ÀÇ __init__() ¸Þ¼­µå__ÃÖ»óÀ§ Ŭ·¡½ºÀÇ __init__() ±¸Çö__¿­°ÅÇü »ó¼ö »ý¼º__ÆÑÅ丮ÇÔ¼ö·Î __init__() È°¿ë____°áÇÔÀÌ ÀÖ´Â ÆÑÅ丮 µðÀÚÀΰú ¸ðÈ£ÇÑ elseÀý____elif ½ÃÄö½º¸¦ ÀÌ¿ëÇÑ ´Ü¼øÈ­¿Í ÀÏ°ü¼º____¸ÅÇΰú Ŭ·¡½º °´Ã¼¸¦ ÀÌ¿ëÇÑ ´Ü¼øÈ­____µÎ º´·Ä ¸ÅÇÎ____Æ©Çà °ª¿¡ ¸ÅÇÎ____ºÎºÐÇÔ¼ö ¹æ½Ä____ÆÑÅ丮¿ë Ç÷ç¾ðÆ® API__°¢ ÇÏÀ§ Ŭ·¡½º¿¡¼­ __init__() ±¸Çö__º¹ÇÕ °´Ã¼____Ä÷º¼Ç Ŭ·¡½º ·¡ÇÎ____Ä÷º¼Ç Ŭ·¡½º È®Àå____Ãß°¡ÀûÀÎ ¿ä±¸ »çÇ×°ú µðÀÚÀÎ ´ë¾È__º¹ÀâÇÑ º¹ÇÕ °´Ã¼____º¹ÇÕ °´Ã¼ ÃʱâÈ­____init__()ÀÌ ÇÊ¿ä ¾ø´Â »óÅ°¡ ¾ø´Â(stateless) °´Ã¼__Ãß°¡ Ŭ·¡½º Á¤ÀÇ__´ÙÁß Àü·« __init__()____º¸´Ù º¹ÀâÇÑ ÃʱâÈ­____Á¤Àû ȤÀº Ŭ·¡½º´Ü ¸Þ¼­µå ÃʱâÈ­__±âŸ __init__() ±â¹ý____ŸÀÔ °Ë»ç¸¦ Æ÷ÇÔÇÏ´Â ÃʱâÈ­____ÃʱâÈ­, ĸ½¶È­, ÇÁ¶óÀ̹ö½Ã__¿ä¾à3Àå. ¸Å²ô·¯¿î ÅëÇÕ: ±âÃÊ ½ºÆä¼È ¸Þ¼­µå __±â¼ú ¿ä±¸ »çÇ×____repr__()°ú __str__() ¸Þ¼­µå____´Ü¼ø __str__()°ú __repr__()____Ä÷º¼Ç __str__()°ú __repr__()____format__() ¸Þ¼­µå____Áßø Æ÷¸Ë ¸í¼¼____Ä÷º¼Ç°ú Æ÷¸Ë ¸í¼¼ À§ÀÓ____hash__() ¸Þ¼­µå____Çؽà ¼±ÅÃ____ºÒº¯ °´Ã¼ Á¤ÀÇ »ó¼Ó____ºÒº¯ °´Ã¼ Á¤ÀÇ ¿À¹ö¶óÀ̵ù____°¡º¯ °´Ã¼ Á¤ÀÇ ¿À¹ö¶óÀ̵ù____°¡º¯ ÇÚµå·ÎºÎÅÍ ÇÁ·ÎÁð ÇÚµå »ý¼º____bool__() ¸Þ¼­µå____bytes__() ¸Þ¼­µå__ºñ±³ ¿¬»êÀÚ ¸Þ¼­µå____ºñ±³ µðÀÚÀÎ____°°Àº Ŭ·¡½ºÀÇ °´Ã¼ ºñ±³ ±¸Çö____¼­·Î ´Ù¸¥ Ŭ·¡½ºÀÇ °´Ã¼ ºñ±³ ±¸Çö____Çϵå Á¡¼ö¿Í ¼ÒÇÁÆ® Á¡¼ö ±×¸®°í ´ÙÇü¼º____¼­·Î ´Ù¸¥ Ŭ·¡½º ºñ±³ ¿¹Á¦____del__() ¸Þ¼­µå____ÂüÁ¶ °è¼ö¿Í ¼Ò¸ê____¼øȯ ÂüÁ¶¿Í °¡ºñÁö Ä÷º¼Ç____¼øȯ ÂüÁ¶¿Í weakref ¸ðµâ______del__()°ú close() ¸Þ¼­µå____new__() ¸Þ¼­µå¿Í ºÒº¯ °´Ã¼____new__() ¸Þ¼­µå¿Í ¸ÞŸŬ·¡½º____¸ÞŸŬ·¡½º ¿¹Á¦: Ŭ·¡½º´Ü ·Î°Å__¿ä¾à4Àå. ¼Ó¼º Á¢±Ù°ú ÇÁ·ÎÆÛƼ, µð½ºÅ©¸³ÅÍ __±â¼ú ¿ä±¸ »çÇ×__±âº» ¼Ó¼º ó¸®____¼Ó¼º°ú __init__() ¸Þ¼­µå__ÇÁ·ÎÆÛƼ »ý¼º____Áï½Ã °è»ê ÇÁ·ÎÆÛƼ____setter¿Í deleter ÇÁ·ÎÆÛƼ__½ºÆä¼È ¸Þ¼­µå·Î ¼Ó¼º Á¢±Ù______slots__À¸·Î ¼Ó¼º¸í Á¦ÇÑ______getattr__()·Î µ¿Àû ¼Ó¼º »ý¼º____NamedTupleÀÇ ÇÏÀ§ Ŭ·¡½º·Î¼­ ºÒº¯ °´Ã¼ »ý¼º____Áï½Ã °è»êµÇ´Â ¼Ó¼º°ú dataclasses, __post_init__()______setattr__()·Î ÁõºÐ °è»ê____getattribute__() ¸Þ¼­µå__µð½ºÅ©¸³ÅÍ »ý¼º____ºñµ¥ÀÌÅÍ µð½ºÅ©¸³ÅÍ »ç¿ëÇϱâ____µ¥ÀÌÅÍ µð½ºÅ©¸³ÅÍ »ç¿ëÇϱâ__¼Ó¼º°ú ÇÁ·ÎÆÛƼ¿¡ ŸÀÔ ÈùÆ® »ç¿ë__dataclasses ¸ðµâ »ç¿ëÇϱâ__¼Ó¼º µðÀÚÀÎ ÆÐÅÏ____ÇÁ·ÎÆÛƼ ´ë ¼Ó¼º____µð½ºÅ©¸³ÅÍ·Î µðÀÚÀÎ__¿ä¾à5Àå. ÀÏ°üµÈ µðÀÚÀÎÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º __±â¼ú ¿ä±¸ »çÇ×__Ãß»ó ±â¹Ý Ŭ·¡½º__±â¹Ý Ŭ·¡½º¿Í ´ÙÇü¼º__ÄÝ·¯ºí__ÄÁÅ×ÀÌ³Ê¿Í Ä÷º¼Ç__¼ö__±× ¹ÛÀÇ Ãß»óÈ­____¹Ýº¹ÀÚ Ãß»óÈ­____ÄÁÅؽºÆ®¿Í ÄÁÅؽºÆ® ¸Å´ÏÀú__abc¿Í typing ¸ðµâ______subclasshook__() ¸Þ¼­µå »ç¿ëÇϱâ____ŸÀÔ ÈùÆ®¸¦ »ç¿ëÇÏ´Â Ãß»ó Ŭ·¡½º__¿ä¾à, µðÀÚÀÎ °í·Á »çÇ×, Æ®·¹À̵å¿ÀÇÁ____¿¹°í6Àå. ÄÝ·¯ºí°ú ÄÁÅؽºÆ® __±â¼ú ¿ä±¸ »çÇ×__ÄÝ·¯ºí µðÀÚÀÎ__¼º´É °³¼±____¸Þ¸ðÀÌÁ¦À̼ÇÀ̳ª ij½Ì »ç¿ë__functools¸¦ »ç¿ëÇÑ ¸Þ¸ðÀÌÁ¦À̼Ç____ÄÝ·¯ºí ÀÎÅÍÆäÀ̽º·Î ´Ü¼ø¼º Ãß±¸__º¹Àâµµ¿Í ÄÝ·¯ºí ÀÎÅÍÆäÀ̽º__ÄÁÅؽºÆ® °ü¸®¿Í with¹®____½ÊÁø ÄÁÅؽºÆ® »ç¿ë____±× ¹Û¿¡ ÄÁÅؽºÆ®____enter__()¿Í __exit__() ¸Þ¼­µå Á¤ÀÇ____¿¹¿Ü ó¸®__ÆÑÅ丮·Î¼­ÀÇ ÄÁÅؽºÆ® ¸Å´ÏÀú____ÄÁÅؽºÆ® ¸Å´ÏÀú »èÁ¦__¿ä¾à____ÄÝ·¯ºíÀÇ µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____ÄÁÅؽºÆ® ¸Å´ÏÀúÀÇ µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¿¹°í7Àå. ÄÁÅ×ÀÌ³Ê¿Í Ä÷º¼Ç »ý¼º__±â¼ú ¿ä±¸ »çÇ×__Ä÷º¼ÇÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º__½ºÆä¼È ¸Þ¼­µå ¿¹Á¦__Ç¥ÁØ ¶óÀ̺귯¸® È®Àå »ç¿ë____typing.NamedTuple Ŭ·¡½º____deque Ŭ·¡½º____ChainMap À¯½º ÄÉÀ̽º____OrderedDict Ä÷º¼Ç____defaultdict ÇÏÀ§ Ŭ·¡½º____counter Ä÷º¼Ç__»õ·Î¿î Á¾·ùÀÇ Ä÷º¼Ç »ý¼ºÇϱâ__Ä÷º¼Ç ŸÀÔ Á¼È÷±â__»õ·Î¿î Á¾·ùÀÇ ½ÃÄö½º Á¤ÀÇÇϱâ____Åë°è ¸®½ºÆ®____Áï½Ã °è»ê°ú Áö¿¬ °è»ê ¼±ÅÃ______getitem__(), __setitem__(), __delitem__(), ½½¶óÀ̽º ´Ù·ç±â______getitem__(), __setitem__(), __delitem__() ±¸Çö____¸®½ºÆ® ·¡Çΰú À§ÀÓ______iter__()·Î ¹Ýº¹ÀÚ »ý¼º__»õ·Î¿î Á¾·ùÀÇ ¸ÅÇÎ »ý¼ºÇϱâ__»õ·Î¿î Á¾·ùÀÇ ÁýÇÕ »ý¼ºÇϱâ____µðÀÚÀÎ ¿ø¸®____Tree Ŭ·¡½º Á¤ÀÇ____TreeNode Ŭ·¡½º Á¤ÀÇ____ÀÌÁø Æ®¸® ¹é ½ÇÇè__µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ__¿ä¾à8Àå. ¼ö »ý¼º__±â¼ú ¿ä±¸ »çÇ×__¼öÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º____»ç¿ëÇÒ Å¸ÀÔ °áÁ¤____¸Þ¼­µå °áÁ¤°ú ¹Ý»ç ¿¬»êÀÚ__»ê¼ú ¿¬»êÀÚÀÇ ½ºÆä¼È ¸Þ¼­µå__¼ö Ŭ·¡½º »ý¼º____FixedPoint ÃʱâÈ­ Á¤ÀÇ____FixedPoint ÀÌÇ× »ê¼ú ¿¬»êÀÚ Á¤ÀÇ____FixedPoint ´ÜÇ× »ê¼ú ¿¬»êÀÚ Á¤ÀÇ____FixedPoint ¹Ý»ç ¿¬»êÀÚ ±¸Çö____FixedPoint ºñ±³ ¿¬»êÀÚ ±¸Çö__¼ö Çؽà °è»ê____´õ À¯¿ëÇÑ ¹Ý¿Ã¸² µðÀÚÀÎ__´Ù¸¥ ½ºÆä¼È ¸Þ¼­µå ±¸Çö__Á¦ÀÚ¸® ¿¬»êÀÚ·Î ÃÖÀûÈ­__¿ä¾à9Àå. Àå½ÄÀÚ¿Í ¹Í½ºÀÎ: Ⱦ´Ü °ü½É»ç__±â¼ú ¿ä±¸ »çÇ×__Ŭ·¡½º¿Í ±× ÀǹÌ____Àå½ÄÀÚÀÇ Å¸ÀÔ ÈùÆ®¿Í ¼Ó¼º____ÇÔ¼öÀÇ ¼Ó¼º____Àå½ÄµÈ Ŭ·¡½º ±¸¼º____Ŭ·¡½º µðÀÚÀÎ ¿øÄ¢____°üÁ¡ ÁöÇâ ÇÁ·Î±×·¡¹Ö__³»Àå Àå½ÄÀÚ »ç¿ë____Ç¥ÁØ ¶óÀ̺귯¸® Àå½ÄÀÚ »ç¿ë__Ç¥ÁØ ¶óÀ̺귯¸® ¹Í½ºÀΠŬ·¡½º »ç¿ë____¹Í½ºÀΠŬ·¡½º·Î enum »ç¿ë__°£´ÜÇÑ ÇÔ¼ö Àå½ÄÀÚ ÀÛ¼º____º°µµ ·Î°Å »ý¼º__Àå½ÄÀÚ ¸Å°³º¯¼öÈ­__¸Þ¼­µåÇÔ¼ö Àå½ÄÀÚ »ý¼º__Ŭ·¡½º Àå½ÄÀÚ »ý¼º__Ŭ·¡½º¿¡ ¸Þ¼­µå Ãß°¡__Àå½ÄÀÚ¸¦ »ç¿ëÇÑ º¸¾È__¿ä¾à10Àå. Á÷·ÄÈ­¿Í ÀúÀå: JSON, YAML, Pickle, CSV, XML __±â¼ú ¿ä±¸ »çÇ×__Áö¼Ó¼º°ú Ŭ·¡½º, »óÅÂ, Ç¥Çö ÀÌÇØÇϱâ____ÀϹÝÀûÀÎ ÆÄÀ̽㠿ë¾î__ÆÄÀϽýºÅÛ°ú ³×Æ®¿öÅ© °í·Á »çÇ×__Áö¼Ó¼ºÀ» Áö¿øÇϴ Ŭ·¡½º Á¤ÀÇ____ºí·Î±×¿Í Æ÷½ºÆ® ·»´õ¸µ__JSON ´ýÇÁ¿Í ·Îµå____JSON ŸÀÔ ÈùÆ®____¿¹Á¦ Ŭ·¡½º¿¡¼­ JSON Áö¿ø____JSON ÀÎÄÚµù Ä¿½ºÅ͸¶ÀÌ¡____JSON µðÄÚµù Ä¿½ºÅ͸¶ÀÌ¡____º¸¾È°ú eval() À̽´____ÀÎÄÚµù ÇÔ¼ö ¸®ÆÑÅ͸µ____³¯Â¥ ¹®ÀÚ¿­ Ç¥ÁØÈ­____JSONÀ» ÆÄÀÏ¿¡ ¾²±â__YAML ´ýÇÁ¿Í ·Îµå____YAML µ¥ÀÌÅÍ ÆÄÀÏ¿¡ Æ÷¸ÅÆÃÇϱâ____YAML Ç¥Çö È®Àå____º¸¾È°ú ¾ÈÀüÇÑ ·Îµå__pickle ´ýÇÁ¿Í ·Îµå____¾ÈÁ¤ÀûÀÎ ÇÇŬ 󸮸¦ À§ÇÑ Å¬·¡½º µðÀÚÀÎ____º¸¾È°ú Àü¿ª À̽´__CSV·Î ´ýÇÁ¿Í ·Îµå____°£´ÜÇÑ ½ÃÄö½º¸¦ CSV·Î ´ýÇÁ____CSV·ÎºÎÅÍ °£´ÜÇÑ ½ÃÄö½º ·Îµå____ÄÁÅ×ÀÌ³Ê¿Í º¹ÀâÇÑ Å¬·¡½º ó¸®____CSV ÆÄÀÏ¿¡ ´Ù¾çÇÑ Çà ŸÀÔ ´ýÇÁ¿Í ·Îµå____¹Ýº¹ÀÚ·Î CSV Çà ÇÊÅ͸µ____CSV ÆÄÀÏ¿¡ Á¶ÀÎ Çà ´ýÇÁ¿Í ·Îµå__XML ´ýÇÁ¿Í ·Îµå____¹®ÀÚ¿­ ÅÛÇø´À» »ç¿ëÇÑ °´Ã¼ ´ýÇÁ____xml.etree.ElementTree·Î °´Ã¼ ´ýÇÁ____XML ¹®¼­ ·Îµå__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____½ºÅ°¸¶ ÁøÈ­____¿¹°í11Àå. ¼Ðºê¸¦ ÅëÇÑ °´Ã¼ ÀúÀå°ú ÃßÃâ __±â¼ú ¿ä±¸ »çÇ×__°´Ã¼ Áö¼Ó À¯½º ÄÉÀ̽º ºÐ¼®____ACID ¼Ó¼º__¼Ðºê »ý¼º__¼Ðºê·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â °´Ã¼ µðÀÚÀÎ____ŸÀÔ ÈùÆ®¸¦ °®´Â °´Ã¼ µðÀÚÀÎ____°´Ã¼ÀÇ Å° µðÀÚÀÎ____°´Ã¼ÀÇ ´ë¸® Å° »ý¼º____´Ü¼ø Å°·Î Ŭ·¡½º µðÀÚÀÎ____ÄÁÅ×À̳ʳª Ä÷º¼ÇÀÇ Å¬·¡½º µðÀÚÀÎ____¿Ü·¡ Å°·Î °´Ã¼ ÂüÁ¶____º¹ÀâÇÑ °´Ã¼ÀÇ CRUD ¿¬»ê µðÀÚÀÎ__°Ë»ö, ½ºÄµ, Äõ¸®__¼ÐºêÀÇ Á¢±Ù °èÃþ µðÀÚÀÎ____µ¥¸ð ½ºÅ©¸³Æ® ÀÛ¼º__È¿À²¼ºÀ» ³ôÀÌ´Â »öÀÎ »ý¼º____ij½Ã »ý¼º__»öÀÎ À¯Áö º¸¼ö ±â´É Ãß°¡__¶óÀÌÆ®¹éÀ¸·Î »öÀÎ ¾÷µ¥ÀÌÆ®____½ºÅ°¸¶ ÁøÈ­__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¾ÖÇø®ÄÉÀÌ¼Ç ¼ÒÇÁÆ®¿þ¾î °èÃþ____¿¹°í12Àå. SQLite¸¦ ÅëÇÑ °´Ã¼ ÀúÀå°ú ÃßÃâ __±â¼ú ¿ä±¸ »çÇ×__SQL µ¥ÀÌÅͺ£À̽º, Áö¼Ó¼º, °´Ã¼____SQL µ¥ÀÌÅÍ ¸ðµ¨: Çà°ú Å×À̺í____SQL DML¹®À» ÅëÇÑ CRUD ó¸®____SQL SELECT¹®À¸·Î Çà Äõ¸®____SQL Æ®·£Àè¼Ç°ú ACID ¼Ó¼º____µ¥ÀÌÅͺ£À̽ºÀÇ ±âº» Å°¿Í ¿Ü·¡ Å° µðÀÚÀÎ__SQL·Î ¾ÖÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅÍ Ã³¸®____¼ø¼ö SQL·Î Ŭ·¡½º¿Í À¯»çÇÑ Ã³¸® ±¸Çö__ÆÄÀ̽㠰´Ã¼¿Í SQLite BLOB ¿­ ¸ÅÇÎ__ÆÄÀ̽㠰´Ã¼¿Í µ¥ÀÌÅͺ£À̽º Çà ¼öµ¿ ¸ÅÇÎ____SQLite Á¢±Ù °èÃþ µðÀÚÀÎ____ÄÁÅ×ÀÌ³Ê °ü°è ±¸Çö__»öÀÎÀ¸·Î ¼º´É Çâ»ó__ORM °èÃþ Ãß°¡____ORMÀ» »ç¿ëÇÑ Å¬·¡½º µðÀÚÀÎ____ORM °èÃþÀ¸·Î ½ºÅ°¸¶ »ý¼º____ORM °èÃþ¿¡¼­ °´Ã¼ Á¶ÀÛ__ű׷ΠÆ÷½ºÆ® Äõ¸®__ORM °èÃþ¿¡ »öÀÎ Á¤ÀÇ____½ºÅ°¸¶ ÁøÈ­__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¸ÅÇÎ ´ë¾È____Å°¿Í Å° µðÀÚÀÎ____¾ÖÇø®ÄÉÀÌ¼Ç ¼ÒÇÁÆ®¿þ¾î °èÃþ____¿¹°í13Àå. °´Ã¼ Àü¼Û°ú °øÀ¯__±â¼ú ¿ä±¸ »çÇ×__Ŭ·¡½º, »óÅÂ, Ç¥Çö__HTTP¿Í REST·Î °´Ã¼ Àü¼Û____REST¸¦ ÅëÇÑ CRUD ¿¬»ê ±¸Çö____CRUD ÀÌ¿ÜÀÇ ¿¬»ê ±¸Çö____REST ÇÁ·ÎÅäÄÝ°ú ACID____JSON, XML, YAML Áß Ç¥Çö ¼±ÅÃ__Flask·Î RESTful À¥ ¼­ºñ½º »ý¼º____Àü¼ÛÇÒ ¹®Á¦ µµ¸ÞÀÎ °´Ã¼____°£´ÜÇÑ ¾ÖÇø®ÄÉÀ̼ǰú ¼­¹ö »ý¼º____´õ¿í Á¤±³ÇÑ ¶ó¿ìÆðú ÀÀ´ä____REST Ŭ¶óÀ̾ðÆ® ±¸Çö____RESTful ¼­ºñ½º µ¥¸ð¿Í ´ÜÀ§ Å×½ºÆ®__½ºÅ×ÀÌƮǮ REST ¼­ºñ½º ´Ù·ç±â____RESTful °´Ã¼ ½Äº°ÀÚ µðÀÚÀÎ____´ÙÁß °èÃþ REST ¼­ºñ½º____Çöó½ºÅ© ºí·çÇÁ¸°Æ® »ç¿ëÇϱâ____ºí·çÇÁ¸°Æ® µî·Ï__¾ÈÀüÇÑ RESTful ¼­ºñ½º ¸¸µé±â____»ç¿ëÀÚ ºñ¹Ð¹øÈ£ ÇؽÌ__À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©·Î REST ±¸Çö__¸Þ½ÃÁö Å¥·Î °´Ã¼ Àü¼Û____ÇÁ·Î¼¼½º Á¤ÀÇ____Å¥ »ý¼º°ú µ¥ÀÌÅÍ Á¦°ø__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____½ºÅ°¸¶ ÁøÈ­____¾ÖÇø®ÄÉÀÌ¼Ç ¼ÒÇÁÆ®¿þ¾î °èÃþ____¿¹°í14Àå ¼³Á¤ ÆÄÀÏ°ú Áö¼Ó¼º __±â¼ú ¿ä±¸ »çÇ×__¼³Á¤ ÆÄÀÏ À¯½º ÄÉÀ̽º__Ç¥Çö°ú Áö¼Ó¼º, »óÅÂ, »ç¿ë¼º____¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤ µðÀÚÀÎ ÆÐÅÏ____°´Ã¼ »ý¼ºÀ» ÅëÇÑ ¼³Á¤____¼³Á¤ °èÃþ ±¸Á¶ ±¸Çö__INI ÆÄÀÏ°ú PY ÆÄÀÏ¿¡ ¼³Á¤ ÀúÀå__eval() º¯ÇüÀ¸·Î ´õ ¸¹Àº ¸®ÅÍ·² ó¸®__PY ÆÄÀÏ¿¡ ¼³Á¤ ÀúÀå____Ŭ·¡½º Á¤ÀǸ¦ ÅëÇÑ ¼³Á¤____SimpleNamespace¸¦ ÅëÇÑ ¼³Á¤____ÆÄÀ̽ã exec()¸¦ »ç¿ëÇÑ ¼³Á¤__exec()À» °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÇ´Â ÀÌÀ¯__±âº»°ª°ú ¿À¹ö¶óÀ̵忡 ChainMap »ç¿ë__JSONÀ̳ª YAML¿¡ ¼³Á¤ ÀúÀå____ÁßøÀÌ ¾ø´Â JSON ¼³Á¤ »ç¿ë____YAML ¼³Á¤ ·Îµù__ÇÁ·ÎÆÛƼ ÆÄÀÏ¿¡ ¼³Á¤ ÀúÀå____ÇÁ·ÎÆÛƼ ÆÄÀÏ ÆĽÌ____ÇÁ·ÎÆÛƼ ÆÄÀÏ »ç¿ë__PLIST °°Àº XML ÆÄÀÏ »ç¿ë____¸ÂÃãÇü XML ¼³Á¤ ÆÄÀÏ__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____°øÀ¯ ¼³Á¤ »ý¼º____½ºÅ°¸¶ ÁøÈ­____¿¹°í15Àå. µðÀÚÀÎ ¿øÄ¢°ú ÆÐÅÏ__±â¼ú ¿ä±¸ »çÇ×__SOLID µðÀÚÀÎ ¿øÄ¢____ÀÎÅÍÆäÀ̽º ºÐ¸® ¿øÄ¢____¸®½ºÄÚÇÁ ġȯ ¿øÄ¢____°³¹æ Æó¼â ¿øÄ¢____ÀÇÁ¸ °ü°è ¿ªÀü ¿øÄ¢____´ÜÀÏ Ã¥ÀÓ ¿øÄ¢__SOLID ¿øÄ¢ µðÀÚÀÎ Å×½ºÆ®__»ó¼Ó°ú ±¸¼ºÀ¸·Î ±â´É »ý¼º____°í±Þ ±¸¼º ÆÐÅÏ __ÆÄÀ̽ã°ú libstdc++ °£ À¯»ç¼º__¿ä¾à16Àå. ·Î±ë°ú °æ°í ¸ðµâ __±â¼ú ¿ä±¸ »çÇ×__±âº» ·Î±× »ý¼º____Ŭ·¡½º´Ü ·Î°Å »ý¼º____·Î°Å ¼³Á¤____·Î±ë ½Ã½ºÅÛ °¡µ¿°ú ÁßÁö____·Î°Å ¸í¸í____·Î°Å ·¹º§ È®Àå____´Ù¼öÀÇ ¸ñÀûÁö¸¦ Áö¿øÇÏ´Â Çڵ鷯 Á¤ÀÇ____ÀüÆÄ ±ÔÄ¢ °ü¸®__¼³Á¤ ÁÖÀÇ »çÇ×__Á¦¾î¿Í µð¹ö±ë, °¨»ç, º¸¾ÈÀ» À§ÇÑ Æ¯¼ö ·Î±ë____µð¹ö±ë ·Î±× »ý¼º____°¨»ç¿Í º¸¾È ·Î±× »ý¼º__warnings ¸ðµâ »ç¿ë____°æ°í·Î API º¯°æ ¾Ë¸²____°æ°í·Î ¼³Á¤ ¹®Á¦ ¾Ë¸²____°æ°í·Î °¡´ÉÇÑ ¼ÒÇÁÆ®¿þ¾î ¹®Á¦ ¾Ë¸²__°í±Þ ·Î±ë: ÃÖ±Ù ¸Þ½ÃÁö¿Í ³×Æ®¿öÅ© ¸ñÀûÁö____ÀÚµ¿ Å×ÀÏ ¹öÆÛ »ý¼º____¿ø°Ý ÇÁ·Î¼¼½º¿¡ ·Î±ë ¸Þ½ÃÁö Àü¼Û____Å¥ ¿À¹ö·± ¹æÁö__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¿¹°í17Àå. Å×½ºÆ® °¡´ÉÇÑ µðÀÚÀÎ__±â¼ú ¿ä±¸ »çÇ×__Å×½ºÆ® ´ÜÀ§ Á¤ÀÇ¿Í ºÐ¸®____ÀÇÁ¸ °ü°è ÃÖ¼ÒÈ­____°£´ÜÇÑ ´ÜÀ§ Å×½ºÆ® »ý¼º____Å×½ºÆ® ½ºÀ§Æ® »ý¼º____¿¡Áö ÄÉÀ̽º¿Í ÄÚ³Ê ÄÉÀ̽º ³Ö±â____¸ñ °´Ã¼·Î ÀÇÁ¸ °ü°è Á¦°Å____¸ñ °´Ã¼·Î µ¿ÀÛ °üÂû__doctest·Î Å×½ºÆ® ÄÉÀ̽º Á¤ÀÇ____doctest¿Í unittest °áÇÕ____´õ¿í ¿ÏÀüÇÑ Å×½ºÆ® ÆÐÅ°Áö »ý¼º__¼³Á¤°ú ÇØÁ¦ »ç¿ë____OS ÀÚ¿ø¿¡ ¼³Á¤°ú ÇØÁ¦ »ç¿ë____µ¥ÀÌÅͺ£À̽º¿¡ ¼³Á¤°ú ÇØÁ¦ »ç¿ë__TestCase Ŭ·¡½º °èÃþ ±¸Á¶__¿ÜºÎ¿¡¼­ Á¤ÀÇÇÑ ¿¹»ó °á°ú »ç¿ë__pytest¿Í ÇȽºÃ³____¾î¼­¼Ç °Ë»ç____ÇȽºÃ³·Î Å×½ºÆ® ¼³Á¤____ÇȽºÃ³·Î ¼³Á¤°ú ÇØÁ¦____¸Å°³º¯¼öÈ­ÇÑ ÇȽºÃ³ »ý¼º__ÀÚµ¿ ÅëÇÕ ¶Ç´Â ¼º´É Å×½ºÆ®__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¿¹°í18Àå. ¸í·ÉÁ٠ó¸® __±â¼ú ¿ä±¸ »çÇ×__OS ÀÎÅÍÆäÀ̽º¿Í ¸í·ÉÁÙ____ÀÎÀÚ¿Í ¿É¼Ç__pathlib ¸ðµâ »ç¿ëÇϱâ__argparse·Î ¸í·ÉÁÙ ÆĽÌ____´Ü¼ø ¿Â¿ÀÇÁ ¿É¼Ç____ÀÎÀÚ°¡ ÀÖ´Â ¿É¼Ç____À§Ä¡ ÀÎÀÚ____±× ¹Û¿¡ ÀÎÀÚ____-version Ç¥½Ã¿Í Á¾·á____-help Ç¥½Ã¿Í Á¾·á__¸í·ÉÁÙ ¿É¼Ç°ú ȯ°æº¯¼ö ÅëÇÕ____´õ ¼³Á¤ °¡´ÉÇÑ ±âº»°ª Á¦°ø____ȯ°æº¯¼ö·Î ¼³Á¤ ÆÄÀÏ °ª ¿À¹ö¶óÀ̵ù____¼³Á¤¿¡ None °ª È°¿ë__µµ¿ò¸» Ãâ·Â ¸ÂÃãÈ­__ÃÖ»óÀ§ main() ÇÔ¼ö »ý¼º____¼³Á¤ÀÇ DRY ¿øÄ¢____Áßø ¼³Á¤ ÄÁÅؽºÆ® °ü¸®__ÀüüÀû ÇÁ·Î±×·¡¹Ö____¸í·É Ŭ·¡½º µðÀÚÀÎ____ºÐ¼® ¸í·É ÇÏÀ§ Ŭ·¡½º Ãß°¡____¾ÖÇø®ÄÉÀ̼ǿ¡ ±â´É Ãß°¡¿Í ÆÐŰ¡____Á» ´õ »óÀ§ÀÇ º¹ÇÕ ¸í·É µðÀÚÀÎ__¶Ç ´Ù¸¥ º¹ÇÕ ¸í·É µðÀÚÀÎ ÆÐÅÏ__´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ǰúÀÇ ÅëÇÕ__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¿¹°í19Àå. ¸ðµâ°ú ÆÐÅ°Áö µðÀÚÀÎ__±â¼ú ¿ä±¸ »çÇ×__¸ðµâ µðÀÚÀÎ____¸ðµâ µðÀÚÀÎ ÆÐÅÏ____¸ðµâ°ú Ŭ·¡½º ºñ±³____¸ðµâ ¼Ó µé¿©´Ùº¸±â__ÀüüÀû ¸ðµâ ´ë ¸ðµâ Ç׸ñ__ÆÐÅ°Áö µðÀÚÀÎ____¸ðµâ-ÆÐÅ°Áö ÇÏÀ̺긮µå µðÀÚÀÎ____¿©·¯ ´ë¾È ±¸ÇöÀ» Æ÷ÇÔÇÏ´Â ÆÐÅ°Áö µðÀÚÀÎ____ImportError ¿¹¿Ü »ç¿ëÇϱâ__¸ÞÀÎ ½ºÅ©¸³Æ®¿Í __main__ ¸ðµâ µðÀÚÀÎ____½ÇÇà °¡´ÉÇÑ ½ºÅ©¸³Æ® ÆÄÀÏ »ý¼º______main__ ¸ðµâ »ý¼º____ÀüüÀû ÇÁ·Î±×·¡¹Ö__Àå±â ½ÇÇà ¾ÖÇø®ÄÉÀÌ¼Ç µðÀÚÀÎ__src¿Í scripts, tests, docs·Î ÄÚµå Á¶Á÷__ÆÄÀ̽㠸ðµâ ¼³Ä¡__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ____¿¹°í20Àå. Ç°Áú°ú ¼³¸í¼­ __±â¼ú ¿ä±¸ »çÇ×__help() ÇÔ¼ö¿¡ ¾²ÀÏ ¹®¼­È­ ¹®ÀÚ¿­ ÀÛ¼º__ÆÄÀ̵¶À» »ç¿ëÇÑ ¼³¸í¼­__RST ¸¶Å©¾÷À» ÅëÇÑ Ãâ·Â °³¼±____ÅؽºÆ® ºí·Ï____RST ÀζóÀÎ ¸¶Å©¾÷____RST µð·ºÆ¼ºê____RST ÀÍÈ÷±â__È¿°úÀûÀÎ ¹®¼­È­ ¹®ÀÚ¿­ ÀÛ¼º__¸ðµâ°ú ÆÐÅ°Áö¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀÏ´Ü ¹®¼­È­ ¹®ÀÚ¿­ ÀÛ¼º____RST ¸¶Å©¾÷À¸·Î »ó¼¼ API ÀÛ¼º____Ŭ·¡½º¿Í ¸Þ¼­µåÇÔ¼öÀÇ ¹®¼­È­ ¹®ÀÚ¿­ ÀÛ¼º____ÇÔ¼ö ¹®¼­È­ ¹®ÀÚ¿­ ÀÛ¼º__´õ¿í Á¤±³ÇÑ ¸¶Å©¾÷ ±â¹ý__½ºÇÎÅ©½º¸¦ »ç¿ëÇÑ ¼³¸í¼­ »ý¼º____½ºÇÎÅ©½º Äü½ºÅ¸Æ® »ç¿ë____½ºÇÎÅ©½º ¼³¸í¼­ ÀÛ¼º____¼³¸í¼­¸¦ À§ÇÑ 4+1 ºä ÀÛ¼º____±¸Çö ¹®¼­ ÀÛ¼º____½ºÇÎÅ©½º ±³Â÷ ÂüÁ¶ »ý¼º____½ºÇÎÅ©½º ÆÄÀÏÀ» µð·ºÅ͸®·Î ¸®ÆÑÅ͸µ____·¹°Å½Ã ¹®¼­ ´Ù·ç±â__¼³¸í¼­ ÀÛ¼º__¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö____¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö À¯½º ÄÉÀ̽º____¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö µµ±¸ ´Ù·ç±â__¿ä¾à____µðÀÚÀÎ °í·Á »çÇ×°ú Æ®·¹À̵å¿ÀÇÁ

¢Â ÀÌ Ã¥¿¡¼­ ´Ù·ç´Â ³»¿ë ¢Â¡ß __init__() ¸Þ¼ÒµåÀÇ ´Ù¾çÇÑ µðÀÚÀÎ ÆÐÅÏ¡ß Çöó½ºÅ©·Î RESTful À¥ ¼­ºñ½º¸¦ ¸¸µå´Â ¹æ¹ý¡ß SOLID µðÀÚÀÎ ÆÐÅÏ°ú ¿øÄ¢¡ß ÆÄÀ̽ã 3ÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º ±â´É¡ß »ç¿ëÀÚ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Å¬·¡½º »ý¼º¡ß PyTest¿Í ÇȽºÃ³·Î Å×½ºÆ® °¡´ÉÇÑ ÄÚµå µðÀÚÀÎ¡ß with¹®À» È°¿ëÇÑ ÄÁÅؽºÆ® ¸Å´ÏÀúÀÇ µðÀÚÀÎ¡ß Ç¥ÁØ ¶óÀ̺귯¸®¿Í µðÀÚÀÎ ±â¹ýÀ» »ç¿ëÇÑ »õ·Î¿î ŸÀÔÀÇ Ä÷º¼Ç »ý¼º¡ß »õ·Î¿î ¼ö ŸÀÔ °³¹ß¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â°í±Þ ÆÄÀ̽ãÀ» »ç¿ëÇϹǷΠÆÄÀ̽ã 3¿¡ ´É¼÷ÇÑ µ¶ÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. ¹®Á¦ ÇØ°áÀ» À§ÇØ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¹è¿ö¾ß ÇÒ ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù.ÀÌ Ã¥Àº ¹®¹ýÀ̳ª ±âº»ÀûÀÎ °³³äÀº ´Ù·çÁö ¾Ê´Â´Ù. ´Ù¸¥ ¾ð¾î¿¡ Àͼ÷ÇÑ ÇÁ·Î±×·¡¸Ó¶ó¸é ÆÄÀ̽ãÀ¸·Î ¿Å±æ ¶§ µµ¿òÀÌ µÉ °ÍÀÌ´Ù.ÆÄÀ̽ã 2 ÇÁ·Î±×·¡¸Ó°¡ ÆÄÀ̽ã 3¸¦ ¹è¿ï ¶§ ƯÈ÷ À¯¿ëÇÏ´Ù. (¹öÀü 2¿¡¼­ 3·Î º¯È¯ÇÏ´Â µµ±¸ µîÀÇ) º¯È¯ À¯Æ¿¸®Æ¼³ª six ¸ðµâ °°Àº º´¸³(coexistence) ¶óÀ̺귯¸®´Â ´Ù·çÁö ¾Ê´Â´Ù. ÀÌ Ã¥Àº ¿ÂÀüÈ÷ ÆÄÀ̽ã 3·Î¸¸ ÇÒ ¼ö ÀÖ´Â »õ·Î¿î °³¹ß¿¡ ÁýÁßÇÑ´Ù.¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â1Àå, ¡®Áغñ, µµ±¸, ±â¹ý¡¯¿¡¼­´Â unittest¿Í doctest, docstring °°Àº ¹Ì¸® ¾Ë¾Æ¾ß ÇÒ ÁÖÁ¦¿Í ½ºÆä¼È ¸Þ¼­µå¸í ¸î °¡Áö¸¦ ´Ù·é´Ù.2Àå, ¡®__init__() ¸Þ¼­µå¡¯¿¡¼­´Â _init_() ¸Þ¼­µå¸¦ ÀÚ¼¼È÷ ¼³¸íÇÏ°í ±¸ÇöÇÑ´Ù. ´Ü¼ø °´Ã¼¸¦ ÃʱâÈ­ÇÏ´Â ¿©·¯ ÇüŸ¦ »ìÆ캸°í, Ä÷º¼Ç°ú ÄÁÅ×À̳ʸ¦ Æ÷ÇÔÇÏ´Â º¸´Ù º¹ÀâÇÑ °´Ã¼µµ ¾Ë¾Æº»´Ù.3Àå, ¡®¸Å²ô·¯¿î ÅëÇÕ: ±âÃÊ ½ºÆä¼È ¸Þ¼­µå¡¯´Â °£´ÜÇÑ Å¬·¡½º Á¤ÀǸ¦ È®ÀåÇØ ½ºÆä¼È ¸Þ¼­µå¸¦ Ãß°¡ÇÏ´Â ¹ýÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. 4Àå, ¡®¼Ó¼º Á¢±Ù°ú ÇÁ·ÎÆÛƼ, µð½ºÅ©¸³ÅÍ¡¯´Â ±âº» 󸮰¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ÀÚ¼¼È÷ »ìÆ캻´Ù. ¾ðÁ¦ ¾îµð¼­ ±âº» µ¿ÀÛÀ» ¿À¹ö¶óÀ̵åÇÒÁö ¾Ë¾Æ³»´Â ¹ýÀ» ¹è¿î´Ù. ¶ÇÇÑ µð½ºÅ©¸³Å͸¦ ºñ·ÔÇØ ÆÄÀ̽ãÀÇ ³»ºÎ µ¿ÀÛ ¹æ½ÄÀ» ¾Ë¾Æº»´Ù.5Àå, ¡®ÀÏ°üµÈ µðÀÚÀÎÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º¡¯¿¡¼­´Â collections.abc ¸ðµâÀÇ Ãß»ó ±â¹Ý Ŭ·¡½º¸¦ ¾Ë¾Æº»´Ù. ¼öÁ¤Çϰųª È®ÀåÇÒ ´Ù¾çÇÑ ÄÁÅ×ÀÌ³Ê¿Í Ä÷º¼ÇÀÇ ÀϹÝÀûÀÎ °³³äÀ» »ìÆ캻´Ù. ºñ½ÁÇÏ°Ô ±¸ÇöÇÏ´Â ¼ö(number) °³³äµµ »ìÆ캻´Ù.6Àå, ¡®ÄÝ·¯ºí°ú ÄÁÅؽºÆ®¡¯¿¡¼­´Â contextlibÀÇ µµ±¸¸¦ »ç¿ëÇØ ÄÁÅؽºÆ® ¸Å´ÏÀú¸¦ »ý¼ºÇÏ´Â ¸î °¡Áö ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ÄÝ·¯ºí °´Ã¼ÀÇ ¿©·¯ µðÀÚÀÎ º¯Çüµµ º¸ÀδÙ. ÀÌ °úÁ¤¿¡¼­ ½ºÅ×ÀÌƮǮ ÄÝ·¯ºí °´Ã¼°¡ ¿Ö ´Ü¼øÇÑ ÇÔ¼öº¸´Ù ´õ À¯¿ëÇÑÁö ¼³¸íÇÑ´Ù. 7Àå, ¡®ÄÁÅ×ÀÌ³Ê¿Í Ä÷º¼Ç »ý¼º¡¯¿¡¼­´Â ÄÁÅ×ÀÌ³Ê Å¬·¡½ºÀÇ ±âÃʸ¦ ¼³¸íÇÑ´Ù. ÄÁÅ×ÀÌ³Ê¿Í ÄÁÅ×À̳ʰ¡ Á¦°øÇÏ´Â ´Ù¾çÇÑ ±â´ÉÀ» »ý¼ºÇÏ´Â ¿©·¯ ½ºÆä¼È ¸Þ¼­µåµµ ´Ù½Ã »ìÆ캻´Ù. 8Àå, ¡®¼ö »ý¼º¡¯¿¡¼­´Â +, -, *, /, //, %, ** °°Àº Çʼö »ê¼ú ¿¬»êÀÚ¸¦ ´Ù·é´Ù. ¶ÇÇÑ ¡´, ¡µ, ¡´=, ¡µ=, ==, != °°Àº ºñ±³ ¿¬»êÀÚµµ ¾Ë¾Æº»´Ù. 9Àå, ¡®Àå½ÄÀÚ¿Í ¹Í½ºÀÎ: Ⱦ´Ü °ü½É»ç¡¯¿¡¼­´Â °£´ÜÇÑ ÇÔ¼ö Àå½ÄÀÚ¿Í ÀÎÀÚ¸¦ °®´Â ÇÔ¼ö Àå½ÄÀÚ, Ŭ·¡½º Àå½ÄÀÚ, ¸Þ¼­µå Àå½ÄÀÚ¸¦ ¾Ë¾Æº»´Ù.10Àå, ¡®Á÷·ÄÈ­¿Í ÀúÀå: JSON, YAML, Pickle, CSV, XML¡¯¿¡¼­´Â JSON°ú YAML, Pickle, CSV, XML°ú °°Àº ´Ù¾çÇÑ µ¥ÀÌÅÍ Ç¥Çö¿¡ ƯȭµÈ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ Áö¼Ó¼ºÀ» ´Ù·é´Ù.11Àå, ¡®¼Ðºê¸¦ ÅëÇÑ °´Ã¼ ÀúÀå°ú ÃßÃ⡯¿¡¼­´Â shelve( ¿Í dbm) °°Àº ÆÄÀ̽㠸ðµâ·Î ¼öÇàÇÏ´Â ±âÃÊ µ¥ÀÌÅͺ£À̽º ¿¬»êÀ» ¼³¸íÇÑ´Ù.12Àå, ¡®SQLite¸¦ ÅëÇÑ °´Ã¼ ÀúÀå°ú ÃßÃ⡯¿¡¼­´Â SQL°ú °ü°èÇü µ¥ÀÌÅͺ£À̽º¶ó´Â º¸´Ù º¹ÀâÇÑ ÁÖÁ¦¸¦ ´Ù·é´Ù. SQLÀÇ Æ¯Â¡°ú °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀÇ Æ¯Â¡Àº ¼­·Î Àß ¸ÂÁö ¾Ê¾Æ ÀÓÇÇ´ø½º ºÒÀÏÄ¡(impedance mismatch) ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. 13Àå, ¡®°´Ã¼ Àü¼Û°ú °øÀ¯¡¯¿¡¼­´Â °´Ã¼ Àü¼Û¿¡ ¾²ÀÌ´Â HTTP ÇÁ·ÎÅäÄÝ°ú JSON, YAML, XML Ç¥ÇöÀ» ¾Ë¾Æº»´Ù.14Àå, ¡®¼³Á¤ ÆÄÀÏ°ú Áö¼Ó¼º¡¯¿¡¼­´Â ¼³Á¤ ÆÄÀÏ·Î ÆÄÀ̽㠾ÖÇø®ÄÉÀ̼ÇÀ» µ¿ÀÛ½ÃÅ°´Â ´Ù¾çÇÑ ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.15Àå, ¡®µðÀÚÀÎ ¿øÄ¢°ú ÆÐÅÏ¡¯¿¡¼­´Â SOLID µðÀÚÀÎ ¿øÄ¢À» »ìÆ캻´Ù. ¸î °¡Áö ¸ð¹ü »ç·Ê¸¦ µû¸£¸é À¯Áö º¸¼ö °¡´ÉÇÑ °íÇ°ÁúÀÇ ÆÄÀ̽㠼ÒÇÁÆ®¿þ¾î¸¦ ±¸¼ºÇÒ ¼ö ÀÖ´Ù.16Àå, ¡®·Î±ë°ú °æ°í¡¯¿¡¼­´Â ¸ðµâ logging°ú warning ¸ðµâÀ» »ç¿ëÇØ °¨»ç¿Í µð¹ö±× Á¤º¸¸¦ »ý¼ºÇÏ´Â ¹ýÀ» ¾Ë¾Æº»´Ù. print() ÇÔ¼öº¸´Ù ÇÑ ´Ü°è ÁøÈ­ÇÑ ¹æ¹ýÀÌ´Ù.17Àå, ¡®Å×½ºÆ® °¡´ÉÇÑ µðÀÚÀο¡¼­´Â Å×½ºÆ® °¡´ÉÇÑ µðÀÚÀΰú unittest, doctestÀÇ »ç¿ë¹ýÀ» ´Ù·é´Ù.18Àå, ¡®¸í·ÉÁ٠󸮡¯¿¡¼­´Â argparse ¸ðµâ·Î ¿É¼Ç°ú ¸Å°³º¯¼ö¸¦ ÆĽÌÇÏ´Â ¹ýÀ» ¾Ë¾Æº»´Ù. ¶ÇÇÑ ¸í·É µðÀÚÀÎ ÆÐÅÏÀ» »ç¿ëÇØ ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏÁö ¾Ê°íµµ ÅëÇÕ½ÃÅ°°í È®Àå½Ãų ¼ö ÀÖ´Â ÇÁ·Î±×·¥ ÄÄÆ÷³ÍÆ®¸¦ »ý¼ºÇغ»´Ù.19Àå, ¡®¸ðµâ°ú ÆÐÅ°Áö µðÀÚÀΡ¯¿¡¼­´Â ¸ðµâ°ú ÆÐÅ°Áö µðÀÚÀÎÀ» ´Ù·é´Ù. ¸ðµâ ³»¿¡ ¼­·Î ¿¬°üµÈ Ŭ·¡½º¿Í ÆÐÅ°Áö ³»¿¡ ¼­·Î ¿¬°üµÈ ¸ðµâÀ» »ìÆ캻´Ù.20Àå, ¡®Ç°Áú°ú ¼³¸í¼­¡¯¿¡¼­´Â ¼ÒÇÁÆ®¿þ¾î°¡ ¿Ã¹Ù¸£°í ÀûÀýÇÏ°Ô ±¸ÇöµÆ´Ù´Â ½Å·Ú¸¦ ±¸ÃàÇϱâ À§ÇØ µðÀÚÀÎÀ» ¼³¸íÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.¢Â ¿Å±äÀÌÀÇ ¸» ¢ÂÈǸ¢ÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀº ÈǸ¢ÇÑ µðÀÚÀÎÀ¸·ÎºÎÅÍ ½ÃÀ۵ȴÙ. ÇϳªÀÇ ¿¹¼ú ÀÛǰó·³ °³¹ßµµ »À´ë¸¦ ¼¼¿ì°í »ìÀ» ºÙ¿© °¡´Â °úÁ¤À» °ÅÄ£´Ù. °³¹ßÀÚ°¡ ù ¹ø°·Î ÇØ¾ß ÇÒ ÀÏÀº ¿©·¯ µðÀÚÀÎ ´ë¾ÈÀ» ¼ö¸³ÇÏ°í ±×Áß ¹«¾ùÀÌ ´õ ³ªÀºÁö Æò°¡ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ´Ü°è¸¦ »ý·«Çϸé ÇãÁ¡Åõ¼ºÀÌ¿¡´Ù ¼Õ´ë±âµµ ¾î·Á¿î °á°ú¹°ÀÌ ³ª¿Â´Ù.ÀÌ Ã¥Àº °­·ÂÇÑ ÆÄÀ̽ã ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â µ¥ ²À ÇÊ¿äÇÑ °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. ÆÄÀ̽ãÀÌ Á¦°øÇÏ´Â ´Ù¾çÇÑ °´Ã¼ÁöÇâ ¿ä¼Ò¸¦ ÀûÀçÀû¼Ò¿¡ È°¿ëÇϵµ·Ï µ½°í, µðÀÚÀÎ ´ë¾È °£ ¼º´Éµµ ºñ±³ÇØ º»´Ù. ¾î¶² ¹®Á¦¸¦ ÇØ°áÇÏ´À³Ä¿¡ µû¶ó ¿Ã¹Ù¸¥ µðÀÚÀÎÀÇ Á¤Àǵµ ´Þ¶óÁö¹Ç·Î ¹®Á¦¿¡ ÀûÇÕÇÑ µðÀÚÀÎÀ» ¾î¶»°Ô °¡·Á³»´ÂÁöµµ ¾Ë·ÁÁØ´Ù.1ºÎ¿¡¼­´Â °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â¹ýÀ» ºñ·ÔÇØ ½ºÆä¼È ¸Þ¼­µå·Î ÆÄÀ̽㠳»Àå Ŭ·¡½º¸¦ È°¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ÃʱâÈ­, ¼Ó¼º, Ãß»ó ±â¹Ý Ŭ·¡½º, ÄÁÅؽºÆ®, ÄÁÅ×À̳Ê, ¼ö, Àå½ÄÀÚ µî ÆÄÀ̽ãÀÇ ±âº»ÀûÀÎ °´Ã¼ÁöÇâ ¿ä¼Ò¸¦ Çϳª¾¿ ¼³¸íÇÑ´Ù. 2ºÎ¿¡¼­´Â ÀúÀå¼Ò¿¡ °´Ã¼¸¦ Áö¼Ó½ÃÅ°´Â ¹æ¹ýÀ» ´Ù·é´Ù. JSON, shelve, ORM µîÀ¸·Î ÆÄÀÏÀ̳ª µ¥ÀÌÅͺ£À̽º¿¡ ´Ù¾çÇÑ ÇüÅÂÀÇ °´Ã¼¸¦ Áö¼Ó½ÃÄѺ»´Ù. 3ºÎ¿¡¼­´Â °´Ã¼ÁöÇâ ¹æ½ÄÀ¸·Î Å×½ºÆ®ÇÏ°í µð¹ö±ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÏ°í SOLID µðÀÚÀÎ ¿øÄ¢À» »ìÆ캻´Ù.1ÆÇ°ú ´Þ¶óÁø Á¡Àº Å©°Ô µÎ °¡Áö´Ù. ù°, Àü¹ÝÀûÀ¸·Î ¿¹Á¦°¡ ´õ dzºÎÇÏ°í ÀÚ¿¬½º·¯¿ö ½ÇÀü¿¡ È°¿ëÇϱ⠽¬¿öÁ³´Ù. µÑ°, SOLID µðÀÚÀÎÀ» ¼Ò°³ÇÏ´Â 15Àå ¡®µðÀÚÀÎ ¿øÄ¢°ú ÆÐÅÏ¡¯ ÀåÀÌ »õ·Ó°Ô Ãß°¡µÆ´Ù. ÁÁÀº µðÀÚÀÎÀ» °í¸£·Á¸é Ç×»ó Á¤ÇØÁø µðÀÚÀÎ ¿øÄ¢À» °í¼öÇØ¾ß ÇÑ´Ù´Â Á¡¿¡¼­ 1ÆÇÀ» Àоú´õ¶óµµ ÇÑ ¹øÂë µé¿©´Ùº¼ ¸¸ÇÏ´Ù.ÀÌ Ã¥Àº µðÀÚÀÎ ÆÐÅÏÀ» ´Ù·ç´Â Ã¥µµ, ±×·¸´Ù°í °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» ´Ù·ç´Â Ã¥µµ ¾Æ´Ï´Ù. ±×º¸´Ù È°¿ëÀ̳ª ÀÀ¿ë, ½ÉÈ­¿Í °°Àº ´Ü¾î°¡ ¾î¿ï¸°´Ù. Æò¹üÇÑ ÇÁ·Î±×·¡¸Ó¿¡¼­ Ź¿ùÇÑ ÇÁ·Î±×·¡¸Ó·Î °Åµì³ª°í ½ÍÀº ¿­Á¤ÀûÀÎ °³¹ßÀÚ¿¡°Ô ÁÁÀº µðµõµ¹ÀÌ µÅ ÁÙ °ÍÀÌ´Ù.
 

¼­Æòº¸±â

´ÜÇົ BEST µµ¼­

³ªÀǼîÇÎ

  • Ä«µå³»¿ªÁ¶È¸
  • ¸¸Á·µµº¸±â
  • ÆǸÅÀÚº¸±â

ÃÖ±Ùº»»óÇ°

Àå¹Ù±¸´Ï

TOP