Upgrade to Pro — share decks privately, control downloads, hide ads and more …

학습하는 조직과 Python: 뱅크샐러드 사례를 중심으로

학습하는 조직과 Python: 뱅크샐러드 사례를 중심으로

[파이콘 한국 2018]에서 발표한 [학습하는 조직과 Python: 뱅크샐러드 사례를 중심으로] 발표 자료입니다. https://www.pycon.kr/2018/program/82

6940536421f1077acc980ec9a78393e1?s=128

Sunghyun Hwang

August 18, 2018
Tweet

Transcript

  1. ೟णೞחઑ૒җ1ZUIPO ߛ௼࢟۞٘ࢎ۹ܳ઺बਵ۽ ടࢿഅ4VOHIZVO)XBOH

  2. None
  3. ઑ૒੸೟ण ࠂ੟ೠ ઑ૒੉ ߓ਍׮ח Ѫ਷ ޖ঺ਸ ੄޷ೞחо? ਋ܻо ൔ൤ ঌҊ

    ੓ח ೟ण਷ ѐੋ੉ ઱୓о غӝ ٸޙী زੌೠ ߑधਵ۽ ઑ૒੉ ೟ण җ੿ী ଵৈೡ ࣻח হ׮. ѱ׮о ѐੋ੉ ೟णೠ׮Ҋ ೧ࢲ ઁಿ੉ա ࢲ࠺झܳ Ҋёীѱ ੹׳ೞח ߑधীࢲ ߸ചо ੓ח Ѫب ইפ׮. [1]
  4. ੹ా੸ ઑ૒ ೟णೞח ઑ૒ ഛपࢿ/৘ஏࢿ ݾ಴ ׳ࢿ ߑউ ੌೞח ߑध

    ഝز
  5. ੹ా੸ ઑ૒ ೟णೞח ઑ૒ ഛपࢿ/৘ஏࢿ ֫਺ ݾ಴ ׳ࢿ ߑউ ݺഛ

    ੌೞח ߑध ࠙স ഝز ҅ദ, ࣁࠗࢎ೦, ৉ೡ, ৘࢑, ੌ੿
  6. ੹ా੸ ઑ૒ ೟णೞח ઑ૒ ഛपࢿ/৘ஏࢿ ֫਺ ծ਺ ݾ಴ ׳ࢿ ߑউ

    ݺഛ ࠛైݺ ੌೞח ߑध ࠙স ഈস ഝز ҅ദ, ࣁࠗࢎ೦, ৉ೡ, ৘࢑, ੌ੿ प೷, ஏ੿, Ѩૐ, ߑೱ, ై੗
  7. None
  8. ੋఠ࠭ Ѿҗ ઁಿ౱੉ ౵ঈೠ о҅ࠗ ਬ੷ח ҕా੸ਵ۽ ੗࢑ ૐधਸ ਤೠ

    ਬੌೠ ߑߨਵ۽ ੗न੄ ૑୹ਸ ాઁೞח Ѫਸ ఖ ೠ ࢎۈٜ੉ۄח Ѫੑפ׮. … ٸޙী, Ӓٜীѱ ૑୹ അട੉ ‘੿ഛೞѱ' ӝ۾غח Ѫ਷ ݒ਋ ઺ਃ೤פ׮. … ߛ௼࢟۞٘ח ਤ৬ э਷ ੋࢎ੉౟ܳ ష؀۽ о҅ࠗ చ੄ ಞ૘ ੽Ӕࢿ / ಞܻ ࢿ / ੗ਬبী ؀ೠ ࢎਊࢿ Ѩૐਸ ૓೯ೞ৓Ҋ, ࣻ ର۹੄ ೐۽ షఋ੉ೝҗ Ѩૐਸ Ѣ୛ അ੤৬ э਷ ݽण੉ غ঻णפ׮. [2]
  9. None
  10. ""

  11. None
  12. ୶ୌ৘࢚ো࢑۝      ഥ  ୶ୌࣗਃदр T޷݅

  13. ୶ୌ৘࢚ো࢑۝      ഥ  ୶ୌࣗਃदр T޷݅

    " "
  14. ୶ୌ৘࢚ো࢑۝      ഥ  ୶ୌࣗਃदр T޷݅

    " "
  15. ୶ୌ৘࢚ো࢑۝      ഥ  ୶ୌࣗਃदр T޷݅

    " "
  16. None
  17. Simple is better than complex. … If the implementation is

    hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. [3]
  18. Simple is better than complex. … If the implementation is

    hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. [3]
  19. Simple is better than complex. … If the implementation is

    hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. [3]
  20. Simple is better than complex. … If the implementation is

    hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. [3]
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. import json import os import re from sqlalchemy.orm.exc import NoResultFound

    from xlrd import open_workbook
  28. import pickle for entity in cards: pickled = pickle.dumps(entity) CACHE.set('card__%s'

    % str(entity.id), pickled)
  29. None
  30. 1. ૑Ә੄ ஠٘ ؘ੉ఠ ҳઑ ഛ݀ ө૑ח 2֙੉ ֈח दр੉

    ೙ਃ ೮׮. (2014֙ - 2016֙ ݈) 2. ஠٘ ؘ੉ఠ ഋకח ੿݈ ݆੉ ߸҃ غ঻׮. 2015֙ ղղ ஠٘ࢎীࢲ न࢚ಿ յ ٸ ݃׮ ޖࢲਛ׮. 3. ੉ઁ ӏੋש(بݫੋ ੹ޙо)਷ Gitҗ Pythonਸ ੜ ׮ܖन׮...
  31. None
  32. None
  33.  ୶ୌࢿמ਷ࢎपޙઁоইפ঻׮  ਋ܻઁಿ੄بݫੋҗࢎਊ੗ܳ ੉೧ೞחѱ؊о஖੓חੌ੉঻׮

  34. प೯ਸ ਤೠ Ѿ੿ ೟णਸ ਤೠ Ѿ੿ ޙઁ ੿੄ ࢿמ ޙઁ

    ੉೧ ӝࣿ ӝр ೟ण ࠺ਊ
  35. प೯ਸ ਤೠ Ѿ੿ ೟णਸ ਤೠ Ѿ੿ ޙઁ ੿੄ ࢿמ ޙઁ

    ੉೧ ӝࣿ Java Python ӝр ೟ण ࠺ਊ
  36. प೯ਸ ਤೠ Ѿ੿ ೟णਸ ਤೠ Ѿ੿ ޙઁ ੿੄ ࢿמ ޙઁ

    ੉೧ ӝࣿ Java Python ӝр 3׳ - 1֙ 2׳ - 6׳ ೟ण ࠺ਊ
  37. प೯ਸ ਤೠ Ѿ੿ ೟णਸ ਤೠ Ѿ੿ ޙઁ ੿੄ ࢿמ ޙઁ

    ੉೧ ӝࣿ Java Python ӝр 3׳ - 1֙ 2׳ - 6׳ ೟ण ࠺ਊ x10 -
  38.       ഥ  ੌর࢖ୌசߔசभ݅ߣ҅࢑೧ࢲաীѱݏח஠٘ٯѐܳ଺ইળ׮

  39.   WT""

  40. ৉۝ դ੉ب

  41. ৉۝ դ੉ب

  42. ৉۝ դ੉ب

  43. *UJTGBTUFSUPNBLFBGPVSJODINJSSPSUIFOBTJYJODINJSSPS UIBOUPNBLFBTJYJODINJSSPS n"MMZO5IPNQTPO<><>

  44. None
  45.  *0  %BUB4USVDUVSF"MHPSJUIN  .BJO#PUUMFOFDL

  46.  *0  .BJO#PUUMFOFDL %PNBJO   %BUB4USVDUVSF"MHPSJUIN

  47. @staticmethod cdef int _get_largest_index(list spendings, datetime date): cdef: int lo

    = 0, hi = len(spendings) - 1, ans = 0, mid while lo <= hi: mid = (lo + hi) // 2 if spendings[mid].date <= date: ans = mid lo = mid + 1 else: hi = mid - 1 return ans  *0  .BJO#PUUMFOFDL %PNBJO   %BUB4USVDUVSF"MHPSJUIN
  48. @tailrec private def largestIndex( l: Int, h: Int, i: Int,

    sp: Vector[Spending], target: LocalDateTime ): Int = if (l <= h) { val m = (l + h) / 2 sp lift m match { case Some(s) if !s.datetime.isAfter(target) ⇒ largestIndex(m + 1, h, m, sp, target) case _ ⇒ largestIndex(l, m - 1, i, sp, target) } } else { i }  *0  .BJO#PUUMFOFDL %PNBJO   %BUB4USVDUVSF"MHPSJUIN
  49. प೯ೞח ઑ૒ ೟णೞח ઑ૒[6] ള۲ ߓ਋Ҋ աࢲ ೯زೞӝ ೯زೣਵ۽ॄ ߓ਑

    ૒ਗ ੤۝ ઱য૓ ২࣌ ઺ীࢲ ࢶఖ द೯଱য়ܳ ాೠ प೷ पಁ ׼न, ઁ؀۽ ೮য? ਋ܻ, ߓ਍ Ѫ੉ ੓ա?
  50.  ࢜۽਍ജ҃঱য੄դ੉ب࢚ܳࣧೡ݅ఀ੄بݫੋ૑ध  ೧Ѿೞ۰חޙઁী؀ೠݫఋ੸ੋ੉೧ ৬ݫఋ੸ੋޙઁ೧Ѿ   וܻҊ ࠛউ੿೮૑݅ पઁࢲ࠺झ਍৔ਸాೠ೟ण

  51.  ࢜۽਍ജ҃঱য੄դ੉ب࢚ܳࣧೡ݅ఀ੄بݫੋ૑ध  ೧Ѿೞ۰חޙઁী؀ೠݫఋ੸ੋ੉೧ ৬ݫఋ੸ੋޙઁ೧Ѿ   וܻҊ ࠛউ੿೮૑݅ पઁࢲ࠺झ਍৔ਸాೠ೟ण

  52. None
  53. ࢲ࠺झ઱ਃ૑಴ ࢎਊ੗݅઒ب/14஠٘न୒ܫ஠٘ߊәܫ

  54. None
  55. 5IFSFJTOPUIJOHQFSNBOFOUFYDFQUDIBOHF n)FSBDMJUVT

  56. 3FGFSFODFT [1] ী੉޷ ী٘ݢ٘ट, <౭߁>; p.29 [2] “ߛ௼࢟۞٘о ઁউೞח Ҋё઺ब

    UX/UI”; https://brunch.co.kr/@banksalad/298 [3] “PEP 20: The Zen of Python”; https://www.python.org/dev/peps/pep-0020/ [4] Allyn J. Thompson, <Making Your Own Telescope> [5] “؊ ݆਷ ੌਸ ೞݶࢲ ؊ ࡈܻ ೞӝ”; http://agile.egloos.com/1762301 [6] ী੉޷ ী٘ݢ٘ट, <౭߁>; p.46
  57. ߛ௼࢟۞٘ܳ ೣԋ ٜ݅যт Python ѐߊ੗ ࠙ਸ ଺णפ׮ https://rainist.com

  58. def ask(question: str) -> Optional[str]: pass