$30 off During Our Annual Pro Sale. View Details »

Geofront 개발 후기: Python 2와 작별하고 Python 3로 개발하기

Geofront 개발 후기: Python 2와 작별하고 Python 3로 개발하기

Geofront는 소규모 팀에서 운영하는 서버에 인증하는 SSH 키를 관리하기 위한 오픈 소스 소프트웨어입니다. (Geofront 자체에 대한 설명은 스포카 개발팀 블로그에 올라온 “Geofront: 소규모 팀을 위한 SSH 키 관리 서비스”를 읽어주세요. http://spoqa.github.io/2014/07/09/geofront.html)

Geofront는 Python 3 전용으로 작성되었는데, Python 3만 사용하여 개발하며 경험한 바를 공유합니다.

주로 Python 2를 쓸 때에 비교해서 Python 3를 쓰면 어떤 점이 좋은지, 과연 이제 정말 Python 3를 써도 괜찮은 것인지, Python 3를 쓸 때 유의해야할 것이 무엇이 있는지를 다루려고 합니다.

Hong Minhee (洪 民憙)

August 30, 2014
Tweet

More Decks by Hong Minhee (洪 民憙)

Other Decks in Programming

Transcript

  1. (FPGSPOUѐߊറӝ
    1ZUIPO৬੘߹ೞҊ1ZUIPO۽ѐߊೞӝ

    झನ஠
    ഘ޹൞

    View Slide

  2. ߊ಴੗ഘ޹൞

    View Slide

  3. ߊ಴੗ഘ޹൞
    ↟ झನ஠ TQPRBDPN
    ীࢲ

    ببನੋ౟ EPEPQPJOUDPN
    ѐߊ

    View Slide

  4. ߊ಴੗ഘ޹൞
    ↟ झನ஠ TQPRBDPN
    ীࢲ

    ببನੋ౟ EPEPQPJOUDPN
    ѐߊ
    ↟ ੗ਬࣗ೐౟ਝয૑૑੗ য়೑ࣗझগഐо

    View Slide

  5. ߊ಴੗ഘ޹൞
    ↟ झನ஠ TQPRBDPN
    ীࢲ

    ببನੋ౟ EPEPQPJOUDPN
    ѐߊ
    ↟ ੗ਬࣗ೐౟ਝয૑૑੗ য়೑ࣗझগഐо
    ↟ ҍ౵੉ॆ֙ର

    View Slide

  6. ߊ಴੗ഘ޹൞
    ↟ झನ஠ TQPRBDPN
    ীࢲ

    ببನੋ౟ EPEPQPJOUDPN
    ѐߊ
    ↟ ੗ਬࣗ೐౟ਝয૑૑੗ য়೑ࣗझগഐо
    ↟ ҍ౵੉ॆ֙ର
    ↟ IUUQIPOHNJOIFFPSH

    View Slide

  7. ੉࢚ೠߊ಴

    View Slide

  8. ੉࢚ೠߊ಴
    ↟ ୨ठۄ੉٘੢

    View Slide

  9. ੉࢚ೠߊ಴
    ↟ ୨ठۄ੉٘੢
    ↟ Ӓ઺ীࢲ੢੉૑য়೐ۿ౟ࣗѐ

    View Slide

  10. ੉࢚ೠߊ಴
    ↟ ୨ठۄ੉٘੢
    ↟ Ӓ઺ীࢲ੢੉૑য়೐ۿ౟ࣗѐ
    ↟ ౵੉ॆফӝח੢

    View Slide

  11. ࠙۝ઑ੺ীपಁ

    View Slide

  12. ࠙۝ઑ੺ীपಁ
    ↟ ਗېחۄ੉౟׬ష௼۽౵੉ॆফӝաೞ۰೮ਵա

    View Slide

  13. ࠙۝ઑ੺ীपಁ
    ↟ ਗېחۄ੉౟׬ష௼۽౵੉ॆফӝաೞ۰೮ਵա
    ↟ दрਸֈӡѪэইࢲݫੋߊ಴۽߸҃

    View Slide

  14. ࠙۝ઑ੺ীपಁ
    ↟ ਗېחۄ੉౟׬ష௼۽౵੉ॆফӝաೞ۰೮ਵա
    ↟ दрਸֈӡѪэইࢲݫੋߊ಴۽߸҃
    ↟ ੉ߣীחदр੉թਸѪэইࢲ੉Ѫ੷Ѫ୶о

    View Slide

  15. ࠙۝ઑ੺ীपಁ
    ↟ ਗېחۄ੉౟׬ష௼۽౵੉ॆফӝաೞ۰೮ਵա
    ↟ दрਸֈӡѪэইࢲݫੋߊ಴۽߸҃
    ↟ ੉ߣীחदр੉թਸѪэইࢲ੉Ѫ੷Ѫ୶о
    ↟ ߊ಴חೞա૑݅पઁ۽חفѐ੄઱ઁա݃ଲо૑

    View Slide

  16. ࠙۝ઑ੺ীपಁ
    ↟ ਗېחۄ੉౟׬ష௼۽౵੉ॆফӝաೞ۰೮ਵա
    ↟ दрਸֈӡѪэইࢲݫੋߊ಴۽߸҃
    ↟ ੉ߣীחदр੉թਸѪэইࢲ੉Ѫ੷Ѫ୶о
    ↟ ߊ಴חೞա૑݅पઁ۽חفѐ੄઱ઁա݃ଲо૑
    ↟ દ࣠೤פ׮

    View Slide

  17. ࠗ૑য়೐ۿ౟ࣗѐ

    View Slide

  18. Photographed by Peas; CC-BY-NC-ND 2.0

    View Slide

  19. Photographed by Juan J. Martínez; CC-BY-SA 2.0

    View Slide

  20. ౱ࣗਬ੄ࢲߡ੽Ӕޙઁ

    View Slide

  21. ౱ࣗਬ੄ࢲߡ੽Ӕޙઁ
    ↟ ࠁউ੄धҗӈଳ਺ࢎ੉੄઴׮ܻӝ

    View Slide

  22. ౱ࣗਬ੄ࢲߡ੽Ӕޙઁ
    ↟ ࠁউ੄धҗӈଳ਺ࢎ੉੄઴׮ܻӝ
    ↟ ؀ࠗ࠙੄ࣗӏݽ౱਷ࠁউ੄ध੉Ѣ੄হ׮दೖೞ׮

    View Slide

  23. ౱ࣗਬ੄ࢲߡ੽Ӕޙઁ
    ↟ ࠁউ੄धҗӈଳ਺ࢎ੉੄઴׮ܻӝ
    ↟ ؀ࠗ࠙੄ࣗӏݽ౱਷ࠁউ੄ध੉Ѣ੄হ׮दೖೞ׮
    ↟ ইޖب਋ܻэ਷੘਷౱੄ࢲߡ֢ܻܳ૑ঋਸѢۄח

    ࠺Ү੸
    ೤ܻ੸౸ױীӔѢ

    View Slide

  24. ౱ࣗਬ੄ࢲߡ੽Ӕޙઁ
    ↟ ࠁউ੄धҗӈଳ਺ࢎ੉੄઴׮ܻӝ
    ↟ ؀ࠗ࠙੄ࣗӏݽ౱਷ࠁউ੄ध੉Ѣ੄হ׮दೖೞ׮
    ↟ ইޖب਋ܻэ਷੘਷౱੄ࢲߡ֢ܻܳ૑ঋਸѢۄח

    ࠺Ү੸
    ೤ܻ੸౸ױীӔѢ
    ↟ ೞ૑݅ޖର߹੸ӝ҅੸ҕѺ਷౱੄ӏݽա࠺ૉפझ੸
    о஖ܳٮ૑૑ঋחѱೣ੿

    View Slide

  25. ӈରפ્؀ࠁউ੄ध

    View Slide

  26. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘

    View Slide

  27. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘
    ↟ ହস੗੹ചߣഐ

    View Slide

  28. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘
    ↟ ହস੗੹ചߣഐ
    ↟ ହস੗੉ܴ੉աഥࢎݺਸفߥधª௪౭۽ࠗഐച

    tഘ޹൞uªtHIEBMTHNMu

    View Slide

  29. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘
    ↟ ହস੗੹ചߣഐ
    ↟ ହস੗੉ܴ੉աഥࢎݺਸفߥधª௪౭۽ࠗഐച

    tഘ޹൞uªtHIEBMTHNMu

    ↟ о੢উજ਷҃਋tBTEGu tu tu…

    View Slide

  30. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘
    ↟ ହস੗੹ചߣഐ
    ↟ ହস੗੉ܴ੉աഥࢎݺਸفߥधª௪౭۽ࠗഐച

    tഘ޹൞uªtHIEBMTHNMu

    ↟ о੢উજ਷҃਋tBTEGu tu tu…
    ↟ ରۄܻ࠺޻ߣഐܳࢸ੿ೞ૑݈૑

    View Slide

  31. ӈରפ્؀ࠁউ੄ध
    ↟ ҕਬ࠺޻ߣഐ੄৘
    ↟ ହস੗੹ചߣഐ
    ↟ ହস੗੉ܴ੉աഥࢎݺਸفߥधª௪౭۽ࠗഐച

    tഘ޹൞uªtHIEBMTHNMu

    ↟ о੢উજ਷҃਋tBTEGu tu tu…
    ↟ ରۄܻ࠺޻ߣഐܳࢸ੿ೞ૑݈૑
    ↟ ࠺޻ߣഐহগחѱ؊ӈଳਵפө੷ۧѱೞ૑ݨ୒ই

    View Slide

  32. ޙઁחӈରפ્

    View Slide

  33. ޙઁחӈରפ્
    ↟ ڪযդѐߊ੗ٜઑରӈରפ્খীࢲҷࠂ

    View Slide

  34. ޙઁחӈରפ્
    ↟ ڪযդѐߊ੗ٜઑରӈରפ્খীࢲҷࠂ
    ↟ ؀ѐށۄࢲޅೞחѱইפۄঌ૑݅ӈଳইࢲউೞחѪ

    View Slide

  35. ޙઁחӈରפ્
    ↟ ڪযդѐߊ੗ٜઑରӈରפ્খীࢲҷࠂ
    ↟ ؀ѐށۄࢲޅೞחѱইפۄঌ૑݅ӈଳইࢲউೞחѪ
    ↟ ࠁউࢿ੉֫ইبӈଳ਷दझమ਷ࢶఖغ૑ঋ਺

    View Slide

  36. ޙઁחӈରפ્
    ↟ ڪযդѐߊ੗ٜઑରӈରפ્খীࢲҷࠂ
    ↟ ؀ѐށۄࢲޅೞחѱইפۄঌ૑݅ӈଳইࢲউೞחѪ
    ↟ ࠁউࢿ੉֫ইبӈଳ਷दझమ਷ࢶఖغ૑ঋ਺
    ↟ ୭؀ೠ؏ӈଳѱೞחѪ੉Ӓա݃ࠁউࢿਸ֫੉חؘ

    ബҗ੸

    View Slide

  37. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D

    View Slide

  38. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  39. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  40. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  41. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  42. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  43. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  44. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  45. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  46. ҕਬੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  47. ҕਬੋૐఃߑध

    View Slide

  48. ҕਬੋૐఃߑध
    ↟ ই઱੘਷౱ীࢲ੗઱ॳ੉חߑध

    View Slide

  49. ҕਬੋૐఃߑध
    ↟ ই઱੘਷౱ীࢲ੗઱ॳ੉חߑध
    ↟ ׼ো൤
    ಁझ೐ۨ੉ૉחহ׮

    View Slide

  50. ҕਬੋૐఃߑध
    ↟ ই઱੘਷౱ীࢲ੗઱ॳ੉חߑध
    ↟ ׼ো൤
    ಁझ೐ۨ੉ૉחহ׮
    ↟ ৵ջೞݶ…

    View Slide

  51. ҕਬੋૐఃߑध
    ↟ ই઱੘਷౱ীࢲ੗઱ॳ੉חߑध
    ↟ ׼ো൤
    ಁझ೐ۨ੉ૉחহ׮
    ↟ ৵ջೞݶ…
    ↟ ࠺޻ߣഐੑ۱ೞחѪبӈଳইࢲॳחѢפө

    View Slide

  52. ҕਬੋૐఃߑध
    ↟ ই઱੘਷౱ীࢲ੗઱ॳ੉חߑध
    ↟ ׼ো൤
    ಁझ೐ۨ੉ૉחহ׮
    ↟ ৵ջೞݶ…
    ↟ ࠺޻ߣഐੑ۱ೞחѪبӈଳইࢲॳחѢפө
    ↟ աоחࢎۈ੉੓ਸٸ݃׮࢜ੋૐఃٜܳ݅যঠೞ૑݅

    Ӓٰӈଳ਷૙ਸೡܻо…

    View Slide

  53. View Slide

  54. œ઱ো୹ੑפ׮


    View Slide

  55. œ઱ো୹ੑפ׮

    झನ஠חҕਬੋૐఃܳࢎਊೞ૑ঋਵݴ ҕਬੋૐఃܳ%SPQCPYীҕਬೠ੸بহणפ׮੸যبઁоੑࢎೠ੉റীח…

    View Slide

  56. п੗ੋૐఃߑध

    View Slide

  57. п੗ੋૐఃߑध
    ↟ %7$4੄ࢿҕਵ۽੹ࠁ׮഻ঁ݆੉ࠁәػ࢚ട

    View Slide

  58. п੗ੋૐఃߑध
    ↟ %7$4੄ࢿҕਵ۽੹ࠁ׮഻ঁ݆੉ࠁәػ࢚ട
    ↟ ઱ਃ੷੢ࣗࢲ࠺झীࢲੋૐਸਤ೧ࢎਊೞӝٸޙ

    View Slide

  59. п੗ੋૐఃߑध
    ↟ %7$4੄ࢿҕਵ۽੹ࠁ׮഻ঁ݆੉ࠁәػ࢚ട
    ↟ ઱ਃ੷੢ࣗࢲ࠺झীࢲੋૐਸਤ೧ࢎਊೞӝٸޙ
    ↟ п੗ੋૐఃܳযରೖо૑Ҋ੓ਵפӒѦ۽ੋૐೞ੗

    View Slide

  60. п੗ੋૐఃߑध
    ↟ %7$4੄ࢿҕਵ۽੹ࠁ׮഻ঁ݆੉ࠁәػ࢚ട
    ↟ ઱ਃ੷੢ࣗࢲ࠺झীࢲੋૐਸਤ೧ࢎਊೞӝٸޙ
    ↟ п੗ੋૐఃܳযରೖо૑Ҋ੓ਵפӒѦ۽ੋૐೞ੗
    ↟ authorized_keys

    View Slide

  61. п੗ੋૐఃߑध
    ↟ %7$4੄ࢿҕਵ۽੹ࠁ׮഻ঁ݆੉ࠁәػ࢚ട
    ↟ ઱ਃ੷੢ࣗࢲ࠺झীࢲੋૐਸਤ೧ࢎਊೞӝٸޙ
    ↟ п੗ੋૐఃܳযରೖо૑Ҋ੓ਵפӒѦ۽ੋૐೞ੗
    ↟ authorized_keys
    ↟ ssh-copy-id

    View Slide

  62. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D

    View Slide

  63. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  64. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  65. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  66. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  67. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  68. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D

    View Slide

  69. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa

    View Slide

  70. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa

    View Slide

  71. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa

    View Slide

  72. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa

    View Slide

  73. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa

    View Slide

  74. п੗ੋૐఃߑध
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa

    View Slide

  75. п੗ੋૐఃߑध

    View Slide

  76. п੗ੋૐఃߑध
    ↟ ౱ਗ੉࢜۽ٜযয়ݶয૵૑

    View Slide

  77. п੗ੋૐఃߑध
    ↟ ౱ਗ੉࢜۽ٜযয়ݶয૵૑
    ↟ ౱ਗ੉աоݶ

    View Slide

  78. п੗ੋૐఃߑध
    ↟ ౱ਗ੉࢜۽ٜযয়ݶয૵૑
    ↟ ౱ਗ੉աоݶ
    ↟ ਗѺ૑ࣻ݅ఀࣻ੿

    View Slide

  79. п੗ੋૐఃߑध
    ↟ ౱ਗ੉࢜۽ٜযয়ݶয૵૑
    ↟ ౱ਗ੉աоݶ
    ↟ ਗѺ૑ࣻ݅ఀࣻ੿
    ↟ ࢜۽ٜযৡࢎۈ੄ੋૐఃܳਗѺ૑݃׮୶оೞחѪ਷

    ೖೡࣻহӟ೧ب…

    View Slide

  80. п੗ੋૐఃߑध
    ↟ ౱ਗ੉࢜۽ٜযয়ݶয૵૑
    ↟ ౱ਗ੉աоݶ
    ↟ ਗѺ૑ࣻ݅ఀࣻ੿
    ↟ ࢜۽ٜযৡࢎۈ੄ੋૐఃܳਗѺ૑݃׮୶оೞחѪ਷

    ೖೡࣻহӟ೧ب…
    ↟ աрࢎۈࡐחѤӈଳਵפөա઺ী

    View Slide

  81. п੗ੋૐఃߑध

    View Slide

  82. п੗ੋૐఃߑध
    ↟ ࢜۽਍ࢎۈ աрࢎۈࢤӡٸ݃׮ݽٚਗѺ૑੄
    authorized_keysࣻ੿೧ঠೣ

    View Slide

  83. п੗ੋૐఃߑध
    ↟ ࢜۽਍ࢎۈ աрࢎۈࢤӡٸ݃׮ݽٚਗѺ૑੄
    authorized_keysࣻ੿೧ঠೣ
    ↟ Ӕؘ־о୶оೞҊઁѢೞ૑

    View Slide

  84. п੗ੋૐఃߑध
    ↟ ࢜۽਍ࢎۈ աрࢎۈࢤӡٸ݃׮ݽٚਗѺ૑੄
    authorized_keysࣻ੿೧ঠೣ
    ↟ Ӕؘ־о୶оೞҊઁѢೞ૑
    ↟ tഘשੋૐః୶оખࠗఌ٘۰ਃu

    View Slide

  85. п੗ੋૐఃߑध
    ↟ ࢜۽਍ࢎۈ աрࢎۈࢤӡٸ݃׮ݽٚਗѺ૑੄
    authorized_keysࣻ੿೧ঠೣ
    ↟ Ӕؘ־о୶оೞҊઁѢೞ૑
    ↟ tഘשੋૐః୶оખࠗఌ٘۰ਃu
    ↟ "Ƅղо೧ঠೣ

    View Slide

  86. View Slide

  87. View Slide

  88. Ҋ޹

    View Slide

  89. Ҋ޹
    ↟ ࢜۽ৡࢎۈҕѐఃܳݒߣࠁղ׳ۄҊೞӝӈଳ׮

    View Slide

  90. Ҋ޹
    ↟ ࢜۽ৡࢎۈҕѐఃܳݒߣࠁղ׳ۄҊೞӝӈଳ׮
    ↟ ࢎۈաтٸӒࢎۈҕѐఃࡐঠೠ׮חѢ੗Բөݡח׮

    View Slide

  91. Ҋ޹
    ↟ ࢜۽ৡࢎۈҕѐఃܳݒߣࠁղ׳ۄҊೞӝӈଳ׮
    ↟ ࢎۈաтٸӒࢎۈҕѐఃࡐঠೠ׮חѢ੗Բөݡח׮
    ↟ Ӓրೠߣ੗زച೧֬Ҋաחইޖ૙بউ೧ب

    جইщ਺જѷ׮

    View Slide

  92. ই੉٣য

    View Slide

  93. ই੉٣য
    ↟ য Ӕؘ࢜۽ৡࢎۈبӥ೸҅੿਷੓૑ঋա

    View Slide

  94. ই੉٣য
    ↟ য Ӕؘ࢜۽ৡࢎۈبӥ೸҅੿਷੓૑ঋա
    ↟ ӥ೸ীਗېп੗ҕѐఃחৢ۰فҊॳ૑ঋա

    View Slide

  95. ই੉٣য
    ↟ য Ӕؘ࢜۽ৡࢎۈبӥ೸҅੿਷੓૑ঋա
    ↟ ӥ೸ীਗېп੗ҕѐఃחৢ۰فҊॳ૑ঋա
    ↟ ଵ ਋ܻഥࢎبӥ೸ॳ૑

    View Slide

  96. ই੉٣য
    ↟ য Ӕؘ࢜۽ৡࢎۈبӥ೸҅੿਷੓૑ঋա
    ↟ ӥ೸ীਗېп੗ҕѐఃחৢ۰فҊॳ૑ঋա
    ↟ ଵ ਋ܻഥࢎبӥ೸ॳ૑
    ↟ ӥ೸PSHBOJ[BUJPOী౱ਗ୶оઁѢೞח೯زਵ۽

    ঌইࢲغѱՔޅೞ۰ա

    View Slide

  97. ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    id_rsa

    View Slide

  98. !
    Geofront
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    id_rsa

    View Slide

  99. !
    Geofront
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    id_rsa

    View Slide

  100. !
    Geofront
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  101. !
    Geofront
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  102. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  103. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  104. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  105. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  106. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  107. !
    Geofront
    .pub
    .pub
    .pub
    ݃झఠః
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  108. ݃झఠఃই੉٣য

    View Slide

  109. ݃झఠఃই੉٣য
    ↟ ૑য়೐ۿ౟ࢲߡחೞա੄݃झఠఃܳਬ૑

    View Slide

  110. ݃झఠఃই੉٣য
    ↟ ૑য়೐ۿ౟ࢲߡחೞա੄݃झఠఃܳਬ૑
    ↟ ݃झఠఃח૑য়೐ۿ౟ࢲߡ݅੽ӔоמೠҔীࠁઓ

    View Slide

  111. ݃झఠఃই੉٣য
    ↟ ૑য়೐ۿ౟ࢲߡחೞա੄݃झఠఃܳਬ૑
    ↟ ݃झఠఃח૑য়೐ۿ౟ࢲߡ݅੽ӔоמೠҔীࠁઓ
    ↟ ݽٚਗѺ૑ח݃झఠః݅ೲਊೞחױ઴૞ܻ
    authorized_keys݅ਬ૑

    View Slide

  112. ݃झఠఃই੉٣য
    ↟ ૑য়೐ۿ౟ࢲߡחೞա੄݃झఠఃܳਬ૑
    ↟ ݃झఠఃח૑য়೐ۿ౟ࢲߡ݅੽ӔоמೠҔীࠁઓ
    ↟ ݽٚਗѺ૑ח݃झఠః݅ೲਊೞחױ઴૞ܻ
    authorized_keys݅ਬ૑
    ↟ য٣ࢲ݆੉ࠄ…ҕਬఃߑध

    View Slide

  113. ݃झఠఃই੉٣য
    ↟ ૑য়೐ۿ౟ࢲߡחೞա੄݃झఠఃܳਬ૑
    ↟ ݃झఠఃח૑য়೐ۿ౟ࢲߡ݅੽ӔоמೠҔীࠁઓ
    ↟ ݽٚਗѺ૑ח݃झఠః݅ೲਊೞחױ઴૞ܻ
    authorized_keys݅ਬ૑
    ↟ য٣ࢲ݆੉ࠄ…ҕਬఃߑध
    ↟ ݃झఠఃח઱ӝ੸ਵ۽౵ӝറ੤ࢤࢿ ӝࠄчೞܖ

    View Slide

  114. ૑য়೐ۿ౟$-*

    View Slide

  115. ૑য়೐ۿ౟$-*
    $ pip install --user geofront-cli

    View Slide

  116. ૑য়೐ۿ౟$-*
    $ pip install --user geofront-cli
    $ geofront-cli authorize server-2

    View Slide

  117. !
    Geofront
    .pub
    .pub
    .pub
    ೠद੸ೲਊ
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  118. !
    Geofront
    .pub
    .pub
    .pub
    ೠद੸ೲਊ
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  119. ೲਊػਗѺ૑ী੽ࣘ
    $ pip install --user geofront-cli
    $ geofront-cli authorize server-2
    $ ssh server-2

    View Slide

  120. ೠߣী
    $ pip install --user geofront-cli
    $ geofront-cli authorize server-2
    $ ssh server-2
    $ geofront-cli ssh server-2 # shortcut

    View Slide

  121. ೠद੸ೲਊই੉٣য

    View Slide

  122. ೠद੸ೲਊই੉٣য
    ↟ ౱ਗ਷૑য়೐ۿ౟ࢲߡী౱੄ੌਗ੐ਸੋૐ

    View Slide

  123. ೠद੸ೲਊই੉٣য
    ↟ ౱ਗ਷૑য়೐ۿ౟ࢲߡী౱੄ੌਗ੐ਸੋૐ
    ↟ ੋૐػ౱ਗ੄ҕѐఃܳ੽ࣘೡਗѺ૑੄
    authorized_keysীೠद੸ਵ۽୶о

    View Slide

  124. ೠद੸ೲਊই੉٣য
    ↟ ౱ਗ਷૑য়೐ۿ౟ࢲߡী౱੄ੌਗ੐ਸੋૐ
    ↟ ੋૐػ౱ਗ੄ҕѐఃܳ੽ࣘೡਗѺ૑੄
    authorized_keysীೠद੸ਵ۽୶о
    ↟ ೧׼ҕѐఃחডୡറী׮दࡅ૗

    View Slide

  125. !
    Geofront
    .pub
    .pub
    .pub
    ೠद੸ೲਊ
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  126. !
    Geofront
    .pub
    .pub
    .pub
    ೠद੸ೲਊ
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    authoriz
    ed_keys
    id_rsa
    A
    B
    C
    D
    id_rsa
    id_rsa
    id_rsa
    .pub
    id_rsa

    View Slide

  127. ౱ਗੋૐ

    View Slide

  128. ౱ਗੋૐ
    ↟ ౱੉ੌਗ੉ۄחѪਸযڌѱૐݺೞ૑

    View Slide

  129. ౱ਗੋૐ
    ↟ ౱੉ੌਗ੉ۄחѪਸযڌѱૐݺೞ૑
    ↟ ӥ೸0"VUI۽۽Ӓੋ೧ࢲ਋ܻ౱PSHBOJ[BUJPO

    ҅੿ীٜয੓ח૑"1*۽ഛੋ

    View Slide

  130. ౱ਗੋૐ
    ↟ ౱੉ੌਗ੉ۄחѪਸযڌѱૐݺೞ૑
    ↟ ӥ೸0"VUI۽۽Ӓੋ೧ࢲ਋ܻ౱PSHBOJ[BUJPO

    ҅੿ীٜয੓ח૑"1*۽ഛੋ
    ↟ ౱ীࢲࡅ૑ݶੋૐب੗زਵ۽উؽ

    View Slide

  131. ౱ਗੋૐ
    ↟ ౱੉ੌਗ੉ۄחѪਸযڌѱૐݺೞ૑
    ↟ ӥ೸0"VUI۽۽Ӓੋ೧ࢲ਋ܻ౱PSHBOJ[BUJPO

    ҅੿ীٜয੓ח૑"1*۽ഛੋ
    ↟ ౱ীࢲࡅ૑ݶੋૐب੗زਵ۽উؽ
    ↟ ౱ਗੋૐߑध਷ੋఠಕ੉झ৬ҳഅ੉ܻ࠙غয੓਺

    View Slide

  132. ౱ਗੋૐ
    ↟ ౱੉ੌਗ੉ۄחѪਸযڌѱૐݺೞ૑
    ↟ ӥ೸0"VUI۽۽Ӓੋ೧ࢲ਋ܻ౱PSHBOJ[BUJPO

    ҅੿ীٜয੓ח૑"1*۽ഛੋ
    ↟ ౱ীࢲࡅ૑ݶੋૐب੗زਵ۽উؽ
    ↟ ౱ਗੋૐߑध਷ੋఠಕ੉झ৬ҳഅ੉ܻ࠙غয੓਺
    ↟ ࡁߡఉӥەҳӖজझ੗୓۽Ӓੋ١ҳഅоמ

    View Slide

  133. ҕѐః١۾

    View Slide

  134. ҕѐః١۾
    ↟ п੗ҕѐఃܳ૑য়೐ۿ౟ী૒੽ৢܻա

    View Slide

  135. ҕѐః١۾
    ↟ п੗ҕѐఃܳ૑য়೐ۿ౟ী૒੽ৢܻա
    ↟ Ӓۡࣻب੓਺

    View Slide

  136. ҕѐః١۾
    ↟ п੗ҕѐఃܳ૑য়೐ۿ౟ী૒੽ৢܻա
    ↟ Ӓۡࣻب੓਺
    ↟ ೞ૑݅ӥ೸োزਸࢸ੿ೞݶ੉޷ӥ೸҅੿ী

    ١۾ೠҕѐఃبࢎਊೡࣻ੓਺

    View Slide

  137. ҕѐః١۾
    ↟ п੗ҕѐఃܳ૑য়೐ۿ౟ী૒੽ৢܻա
    ↟ Ӓۡࣻب੓਺
    ↟ ೞ૑݅ӥ೸োزਸࢸ੿ೞݶ੉޷ӥ೸҅੿ী

    ١۾ೠҕѐఃبࢎਊೡࣻ੓਺
    ↟ नӏ౱ਗੑ੢ীࢲחӥ೸PSHBOJ[BUJPO҅੿ী

    ୶о݅غݶইޖࢸ੿بೡѱহ਺

    View Slide

  138. ҕѐః١۾
    ↟ п੗ҕѐఃܳ૑য়೐ۿ౟ী૒੽ৢܻա
    ↟ Ӓۡࣻب੓਺
    ↟ ೞ૑݅ӥ೸োزਸࢸ੿ೞݶ੉޷ӥ೸҅੿ী

    ١۾ೠҕѐఃبࢎਊೡࣻ੓਺
    ↟ नӏ౱ਗੑ੢ীࢲחӥ೸PSHBOJ[BUJPO҅੿ী

    ୶о݅غݶইޖࢸ੿بೡѱহ਺
    ↟ ӝઓ౱ਗੑ੢ীࢲبӥ೸PSHBOJ[BUJPO҅੿ী

    ೧׼नӏ౱ਗ୶о݅ೞݶ׮ܲѤ೧઴೙ਃহ਺

    View Slide

  139. ਗѺ૑୶о

    View Slide

  140. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺

    View Slide

  141. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺
    ↟ "84ੋझఢझݾ۾Ӓ؀۽ࢎਊೞחҳഅ୓ب੓਺

    View Slide

  142. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺
    ↟ "84ੋझఢझݾ۾Ӓ؀۽ࢎਊೞחҳഅ୓ب੓਺
    ↟ ࢎप਷-JCDMPVEॄࢲਬ௿ۄ਋٘بغ૑܄…

    View Slide

  143. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺
    ↟ "84ੋझఢझݾ۾Ӓ؀۽ࢎਊೞחҳഅ୓ب੓਺
    ↟ ࢎप਷-JCDMPVEॄࢲਬ௿ۄ਋٘بغ૑܄…
    ↟ դউॶѢ૑݅…

    View Slide

  144. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺
    ↟ "84ੋझఢझݾ۾Ӓ؀۽ࢎਊೞחҳഅ୓ب੓਺
    ↟ ࢎप਷-JCDMPVEॄࢲਬ௿ۄ਋٘بغ૑܄…
    ↟ դউॶѢ૑݅…
    ↟ ೞ٘௏٬ݾ۾ਵ۽ҙܻೞחҳഅ୓ب੓਺

    View Slide

  145. ਗѺ૑୶о
    ↟ ਗѺ૑ݾ۾ਸҙܻೞחੋఠಕ੉झ৬ҳഅ੉ܻ࠙ظ੓਺
    ↟ "84ੋझఢझݾ۾Ӓ؀۽ࢎਊೞחҳഅ୓ب੓਺
    ↟ ࢎप਷-JCDMPVEॄࢲਬ௿ۄ਋٘بغ૑܄…
    ↟ դউॶѢ૑݅…
    ↟ ೞ٘௏٬ݾ۾ਵ۽ҙܻೞחҳഅ୓ب੓਺
    ↟ ૒੽ҳഅ௿ېझ૞ࢲࢎਊ೧بؽ

    View Slide

  146. ҙ۲݂௼

    View Slide

  147. ҙ۲݂௼
    ↟ IUUQTHJUIVCDPNTQPRBHFPGSPOU

    View Slide

  148. ҙ۲݂௼
    ↟ IUUQTHJUIVCDPNTQPRBHFPGSPOU
    ↟ IUUQTHFPGSPOUSFBEUIFEPDTPSH

    View Slide

  149. ҙ۲݂௼
    ↟ IUUQTHJUIVCDPNTQPRBHFPGSPOU
    ↟ IUUQTHFPGSPOUSFBEUIFEPDTPSH
    ↟ IUUQTQPRBHJUIVCJPHFPGSPOUIUNM

    View Slide

  150. pip۽ࢸ஖оמ
    $ pip install Geofront

    View Slide

  151. ࠗ૑য়೐ۿ౟ѐߊറӝ
    ౵੉ॆࢿࠛӝ

    View Slide

  152. Photographed by w00kie; CC-BY 2.0

    View Slide

  153. ੹੸

    View Slide

  154. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ

    View Slide

  155. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ
    ↟ s8BOE ౵੉ॆ੹ਊªزद૑ਗ

    View Slide

  156. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ
    ↟ s8BOE ౵੉ॆ੹ਊªزद૑ਗ

    ↟ sBMFNCJD ౵੉ॆ੹ਊªزद૑ਗ

    View Slide

  157. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ
    ↟ s8BOE ౵੉ॆ੹ਊªزद૑ਗ

    ↟ sBMFNCJD ౵੉ॆ੹ਊªزद૑ਗ

    ↟ s42-"MDIFNZ*NBHF"UUBDI زद૑ਗ

    View Slide

  158. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ
    ↟ s8BOE ౵੉ॆ੹ਊªزद૑ਗ

    ↟ sBMFNCJD ౵੉ॆ੹ਊªزद૑ਗ

    ↟ s42-"MDIFNZ*NBHF"UUBDI زद૑ਗ

    ↟ s&BSUI3FBEFS زद૑ਗ

    View Slide

  159. ੹੸
    ↟ sਢ೐ۨ੐ਕ௼ ౵੉ॆ੹ਊ
    nपಁ
    ↟ s8BOE ౵੉ॆ੹ਊªزद૑ਗ

    ↟ sBMFNCJD ౵੉ॆ੹ਊªزद૑ਗ

    ↟ s42-"MDIFNZ*NBHF"UUBDI زद૑ਗ

    ↟ s&BSUI3FBEFS زद૑ਗ

    ↟ sMJCTBTTQZUIPO ౵੉ॆ੹ਊªزद૑ਗ

    View Slide

  160. ੹੸

    View Slide

  161. ੹੸
    ↟ ౵੉ॆ੹ਊªزद૑ਗನ౴ߣ

    View Slide

  162. ੹੸
    ↟ ౵੉ॆ੹ਊªزद૑ਗನ౴ߣ
    ↟ ୊਺ࠗఠزद૑ਗߣ

    View Slide

  163. ੹੸
    ↟ ౵੉ॆ੹ਊªزद૑ਗನ౴ߣ
    ↟ ୊਺ࠗఠزद૑ਗߣ
    ↟ ౵੉ॆ੹ਊߣnपಁ

    View Slide

  164. ౵੉ॆӝೖૐ

    View Slide

  165. ౵੉ॆӝೖૐ
    ↟ ֙ী௼ѱपಁೠٍ۽౵੉ॆח୛׮بউࠌ׮

    View Slide

  166. ౵੉ॆӝೖૐ
    ↟ ֙ী௼ѱपಁೠٍ۽౵੉ॆח୛׮بউࠌ׮
    ↟ Ӓؘ۠֙ࠗఠ8BOE੉ग౟ېழীࢲ౵੉ॆಁ
    ஖о ৈ۞ߣ
    ৢۄ১

    View Slide

  167. ౵੉ॆӝೖૐ
    ↟ ֙ী௼ѱपಁೠٍ۽౵੉ॆח୛׮بউࠌ׮
    ↟ Ӓؘ۠֙ࠗఠ8BOE੉ग౟ېழীࢲ౵੉ॆಁ
    ஖о ৈ۞ߣ
    ৢۄ১
    ↟ MJCTBTTQZUIPO੉ग౟ېழীࢲب౵੉ॆ૑ਗਃ୒੉
    ৢۄ১

    View Slide

  168. View Slide

  169. View Slide

  170. View Slide

  171. ౵੉ॆഐജࢿ੘স

    View Slide

  172. ౵੉ॆഐജࢿ੘স
    ↟ Բળೠࣻਃ۽૑ਗਸউೡࣻоহ঻਺

    View Slide

  173. ౵੉ॆഐജࢿ੘স
    ↟ Բળೠࣻਃ۽૑ਗਸউೡࣻоহ঻਺
    ↟ ౵੉ॆزद૑ਗೞח௏٘ܳ૞ח֢ೞ਋୷੸

    View Slide

  174. ౵੉ॆഐജࢿ੘স
    ↟ Բળೠࣻਃ۽૑ਗਸউೡࣻоহ঻਺
    ↟ ౵੉ॆزद૑ਗೞח௏٘ܳ૞ח֢ೞ਋୷੸
    ↟ ౵੉ॆӝೖૐ੉ઑӘঀࢎۄ૗

    View Slide

  175. ౵੉ॆഐജࢿ੘স
    ↟ Բળೠࣻਃ۽૑ਗਸউೡࣻоহ঻਺
    ↟ ౵੉ॆزद૑ਗೞח௏٘ܳ૞ח֢ೞ਋୷੸
    ↟ ౵੉ॆӝೖૐ੉ઑӘঀࢎۄ૗
    ↟ s֙ࠗఠחই৘੗ߊ੸ਵ۽౵੉ॆഐജ੘সਸद੘

    View Slide

  176. ৵ӝೖ೮؊ۄ

    View Slide

  177. ৵ӝೖ೮؊ۄ
    ↟ ౵੉ॆী؀೧੼ର੤ಣоೞѱؽ

    View Slide

  178. ৵ӝೖ೮؊ۄ
    ↟ ౵੉ॆী؀೧੼ର੤ಣоೞѱؽ
    ↟ গୡী౵੉ॆܳӝೖೞѱع؍੉ਬܳغجইࠆ

    View Slide

  179. ౟ۄ਋݃

    View Slide

  180. ౟ۄ਋݃
    ↟ ֙੄पಁо౟ۄ਋݃оغ঻਺

    View Slide

  181. ౟ۄ਋݃
    ↟ ֙੄पಁо౟ۄ਋݃оغ঻਺
    ↟ 84(*೐۽ష௒੉౵੉ॆীࢲযڌѱغযঠ

    ೞח૑ী؀ೠ೤੄оহ؍द੺ 1&1হ঻਺

    View Slide

  182. ౟ۄ਋݃
    ↟ ֙੄पಁо౟ۄ਋݃оغ঻਺
    ↟ 84(*೐۽ష௒੉౵੉ॆীࢲযڌѱغযঠ

    ೞח૑ী؀ೠ೤੄оহ؍द੺ 1&1হ঻਺

    ↟ ౵੉ॆद੺੄಴ળۄ੉࠳۞ܻחഒت੄஠য়झ

    View Slide

  183. ౟ۄ਋݃
    ↟ ֙੄पಁо౟ۄ਋݃оغ঻਺
    ↟ 84(*೐۽ష௒੉౵੉ॆীࢲযڌѱغযঠ

    ೞח૑ী؀ೠ೤੄оহ؍द੺ 1&1হ঻਺

    ↟ ౵੉ॆद੺੄಴ળۄ੉࠳۞ܻחഒت੄஠য়झ
    ↟ 63-౵यҗ)551ݫࣁ૑౵यਸࣚਵ۽૞ঠ೮਺

    View Slide

  184. ౟ۄ਋݃
    ↟ ֙੄पಁо౟ۄ਋݃оغ঻਺
    ↟ 84(*೐۽ష௒੉౵੉ॆীࢲযڌѱغযঠ

    ೞח૑ী؀ೠ೤੄оহ؍द੺ 1&1হ঻਺

    ↟ ౵੉ॆद੺੄಴ળۄ੉࠳۞ܻחഒت੄஠য়झ
    ↟ 63-౵यҗ)551ݫࣁ૑౵यਸࣚਵ۽૞ঠ೮਺
    ↟ ౵੉ॆܳॳחҊёبহ঻਺

    View Slide

  185. ࢤక҅੄ਤӝ

    View Slide

  186. ࢤక҅੄ਤӝ
    ↟ ցޖաࠗ઒೮؍ࢲ٘౵౭ۄ੉࠳۞ܻ

    View Slide

  187. ࢤక҅੄ਤӝ
    ↟ ցޖաࠗ઒೮؍ࢲ٘౵౭ۄ੉࠳۞ܻ
    ↟ 1Z1*ীࢲ౵੉ॆ૑ਗೞחಁః૑оࣚীԞഊਸ੿ب

    View Slide

  188. ࢤక҅੄ਤӝ
    ↟ ցޖաࠗ઒೮؍ࢲ٘౵౭ۄ੉࠳۞ܻ
    ↟ 1Z1*ীࢲ౵੉ॆ૑ਗೞחಁః૑оࣚীԞഊਸ੿ب
    ↟ ীࢲਬפ௏ܻ٘ఠۡ u'...'
    ੉ࠗഝೞӝ੹ө૑

    ഐജ௏٘૞ӝחޖୋ൨ٜ঻਺

    View Slide

  189. ࢤక҅੄ਤӝ
    ↟ ցޖաࠗ઒೮؍ࢲ٘౵౭ۄ੉࠳۞ܻ
    ↟ 1Z1*ীࢲ౵੉ॆ૑ਗೞחಁః૑оࣚীԞഊਸ੿ب
    ↟ ীࢲਬפ௏ܻ٘ఠۡ u'...'
    ੉ࠗഝೞӝ੹ө૑

    ഐജ௏٘૞ӝחޖୋ൨ٜ঻਺
    ↟ 1Z1Z৉द౵੉ॆܳ୭Ӕө૑بҳഅউ೮਺

    View Slide

  190. ࢤ೙ಿࠗ઒

    View Slide

  191. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ

    View Slide

  192. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI

    View Slide

  193. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL

    View Slide

  194. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP QBSBNJLP

    View Slide

  195. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP QBSBNJLP
    ↟ LPNCV DFMFSZ

    View Slide

  196. ࢤ೙ಿࠗ઒
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP QBSBNJLP
    ↟ LPNCV DFMFSZ
    ↟ 1*-

    View Slide

  197. ೒ۖಬ

    View Slide

  198. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲ౵੉ॆоӝࠄ੉঻Ѣա

    View Slide

  199. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲ౵੉ॆоӝࠄ੉঻Ѣա
    ↟ ই৘౵੉ॆಁః૑оহחߓನ౸ب

    View Slide

  200. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲ౵੉ॆоӝࠄ੉঻Ѣա
    ↟ ই৘౵੉ॆಁః૑оহחߓನ౸ب
    ↟ ݓ৉द౵੉ॆܳߣٜೞ૑ঋ਺

    View Slide

  201. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲ౵੉ॆоӝࠄ੉঻Ѣա
    ↟ ই৘౵੉ॆಁః૑оহחߓನ౸ب
    ↟ ݓ৉द౵੉ॆܳߣٜೞ૑ঋ਺
    ↟ ҳӖজূ૓١੄1BB4ب౵੉ॆܳ૑ਗউ೮਺

    View Slide

  202. ա੗नҗ੄ऱ਑

    View Slide

  203. ա੗नҗ੄ऱ਑
    ↟ ղо૧؍ۨѢदחژয૸Ѣৈ

    View Slide

  204. ૑য়೐ۿ౟ח…

    View Slide

  205. ૑য়೐ۿ౟ח…
    ↟ ૑য়೐ۿ౟ࢲߡח౵੉ॆ੹ਊ

    View Slide

  206. ૑য়೐ۿ౟ח…
    ↟ ૑য়೐ۿ౟ࢲߡח౵੉ॆ੹ਊ
    ↟ ૑য়೐ۿ౟$-*௿ۄ੉঱౟ח౵੉ॆ੉࢚ ੉࢚

    View Slide

  207. ૑য়೐ۿ౟ח…
    ↟ ૑য়೐ۿ౟ࢲߡח౵੉ॆ੹ਊ
    ↟ ૑য়೐ۿ౟$-*௿ۄ੉঱౟ח౵੉ॆ੉࢚ ੉࢚
    ↟ য૵׮Ӓ۠ࢤпਸ…

    View Slide

  208. ౵੉ॆ੄അ੤

    View Slide

  209. ౵੉ॆ੄അ੤
    ↟ ౵੉ॆо৘੿ػ޷ېۄחؘীழޭפ౭о೤੄ೞח

    ୶ࣁ

    View Slide

  210. ౵੉ॆ੄അ੤
    ↟ ౵੉ॆо৘੿ػ޷ېۄחؘীழޭפ౭о೤੄ೞח

    ୶ࣁ
    ↟ ൞ݎೞח޷ېоইפۄ৘੿ػ޷ې

    View Slide

  211. ౵੉ॆ੄അ੤
    ↟ ౵੉ॆо৘੿ػ޷ېۄחؘীழޭפ౭о೤੄ೞח

    ୶ࣁ
    ↟ ൞ݎೞח޷ېоইפۄ৘੿ػ޷ې
    ↟ ౵੉ॆחݺߔೞѱיযоҊ੓਺

    View Slide

  212. ౵੉ॆ੄അ੤
    ↟ ౵੉ॆо৘੿ػ޷ېۄחؘীழޭפ౭о೤੄ೞח

    ୶ࣁ
    ↟ ൞ݎೞח޷ېоইפۄ৘੿ػ޷ې
    ↟ ౵੉ॆחݺߔೞѱיযоҊ੓਺
    ↟ ౵੉ॆীࢲח੼ର؊੉࢚࢜۽਍Ѫ੉աয়૑ঋ਺

    View Slide

  213. ౵੉ॆ੄അ੤

    View Slide

  214. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ

    View Slide

  215. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ
    ↟ ழ૑חоࣘب৉दૐо

    View Slide

  216. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ
    ↟ ழ૑חоࣘب৉दૐо
    ↟ ӝઓ౵੉ॆޙઁ੄Ѣ੄؀ࠗ࠙਷ࢤక҅੄ޙઁ

    View Slide

  217. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ
    ↟ ழ૑חоࣘب৉दૐо
    ↟ ӝઓ౵੉ॆޙઁ੄Ѣ੄؀ࠗ࠙਷ࢤక҅੄ޙઁ
    ↟ Ӓؘ۠ࢤక҅оࡅܰѱߊ੹ೞҊ੓׮

    View Slide

  218. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ
    ↟ ழ૑חоࣘب৉दૐо
    ↟ ӝઓ౵੉ॆޙઁ੄Ѣ੄؀ࠗ࠙਷ࢤక҅੄ޙઁ
    ↟ Ӓؘ۠ࢤక҅оࡅܰѱߊ੹ೞҊ੓׮
    ↟ ౵੉ॆী؀ೠಣоبददпп੤ಣоೞ૑ঋਵݶ

    View Slide

  219. ౵੉ॆ੄അ੤
    ↟ ߈ݶ౵੉ॆ੄ࢤక҅ח੼ରழ૑Ҋ੓ਸࡺ݅ইפۄ
    ↟ ழ૑חоࣘب৉दૐо
    ↟ ӝઓ౵੉ॆޙઁ੄Ѣ੄؀ࠗ࠙਷ࢤక҅੄ޙઁ
    ↟ Ӓؘ۠ࢤక҅оࡅܰѱߊ੹ೞҊ੓׮
    ↟ ౵੉ॆী؀ೠಣоبददпп੤ಣоೞ૑ঋਵݶ
    ↟ ݒ׳౵੉ॆ੄ࢤక҅੄ࢎ੿਷׳ۄ૗

    View Slide

  220. ֙੄౵੉ॆ
    ↟ OVNQZ TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP QBSBNJLP
    ↟ DFMFSZ
    ↟ 1*-

    View Slide

  221. ֙੄౵੉ॆ
    ↟ OVNQZ
    TDJQZ
    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP QBSBNJLP
    ↟ DFMFSZ
    ↟ 1*-

    View Slide

  222. ֙੄౵੉ॆ
    ↟ OVNQZ
    TDJQZ

    ↟ %KBOHP 4PVUI
    ↟ 8FSL[FVH 'MBTL
    ↟ QZDSZQUP
    QBSBNJLP
    ↟ DFMFSZ

    ↟ 1*-

    View Slide

  223. ֙੄౵੉ॆ
    ↟ OVNQZ
    TDJQZ

    ↟ %KBOHP
    4PVUI

    ↟ 8FSL[FVH
    'MBTL

    ↟ QZDSZQUP
    QBSBNJLP
    ↟ DFMFSZ

    ↟ 1JMMPX

    View Slide

  224. ֙੄౵੉ॆ
    ↟ OVNQZ
    TDJQZ

    ↟ %KBOHP
    4PVUI

    ↟ 8FSL[FVH
    'MBTL

    ↟ QZDSZQUP
    QBSBNJLP

    ↟ DFMFSZ

    ↟ 1JMMPX

    View Slide

  225. View Slide

  226. ೒ۖಬ

    View Slide

  227. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ

    View Slide

  228. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ
    ↟ ઃై ই஖١਷ই৘౵੉ॆоӝࠄ

    View Slide

  229. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ
    ↟ ઃై ই஖١਷ই৘౵੉ॆоӝࠄ
    ↟ ই૒ҳӖজূ૓਷౵੉ॆ݅૑ਗೞ૑݅ 

    ೻۽௢ח౵੉ॆܳ૑ਗೣ

    View Slide

  230. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ
    ↟ ઃై ই஖١਷ই৘౵੉ॆоӝࠄ
    ↟ ই૒ҳӖজূ૓਷౵੉ॆ݅૑ਗೞ૑݅ 

    ೻۽௢ח౵੉ॆܳ૑ਗೣ
    ↟ ইऔ૑݅ݓীࢲחৈ੹൤౵੉ॆ ݅ߣٜ

    View Slide

  231. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ
    ↟ ઃై ই஖١਷ই৘౵੉ॆоӝࠄ
    ↟ ই૒ҳӖজূ૓਷౵੉ॆ݅૑ਗೞ૑݅ 

    ೻۽௢ח౵੉ॆܳ૑ਗೣ
    ↟ ইऔ૑݅ݓীࢲחৈ੹൤౵੉ॆ ݅ߣٜ
    ↟ QZFOW١ਵ۽ࢸ஖ೞݶޙઁũũ

    View Slide

  232. ೒ۖಬ
    ↟ ઱ਃֿܻझߓನ౸ীࢲݽف౵੉ॆܳಁః૑۽૑ਗ
    ↟ ઃై ই஖١਷ই৘౵੉ॆоӝࠄ
    ↟ ই૒ҳӖজূ૓਷౵੉ॆ݅૑ਗೞ૑݅ 

    ೻۽௢ח౵੉ॆܳ૑ਗೣ
    ↟ ইऔ૑݅ݓীࢲחৈ੹൤౵੉ॆ ݅ߣٜ
    ↟ QZFOW١ਵ۽ࢸ஖ೞݶޙઁũũ
    ↟ 1Z1Zب੉ઁ౵੉ॆҳഅ೮਺

    View Slide

  233. ࢤక҅৻੄ޙઁ

    View Slide

  234. ࢤక҅৻੄ޙઁ
    ↟ ౵੉ॆޙઁ੄؀ࠗ࠙੉ࢤక҅৓׮ݶ…

    View Slide

  235. ࢤక҅৻੄ޙઁ
    ↟ ౵੉ॆޙઁ੄؀ࠗ࠙੉ࢤక҅৓׮ݶ…
    ↟ ࢤక҅ޙઁоࢎۄ૓૑Ә਷؀୓যڃޙઁоթওਸө

    View Slide

  236. ࢤక҅৻੄ޙઁ
    ↟ ౵੉ॆޙઁ੄؀ࠗ࠙੉ࢤక҅৓׮ݶ…
    ↟ ࢤక҅ޙઁоࢎۄ૓૑Ә਷؀୓যڃޙઁоթওਸө
    ↟ ই݃ӒѪ਷ղ੗न੉ऱ૕۞كڜ௏٘

    View Slide

  237. ࢤక҅৻੄ޙઁ
    ↟ ౵੉ॆޙઁ੄؀ࠗ࠙੉ࢤక҅৓׮ݶ…
    ↟ ࢤక҅ޙઁоࢎۄ૓૑Ә਷؀୓যڃޙઁоթওਸө
    ↟ ই݃ӒѪ਷ղ੗न੉ऱ૕۞كڜ௏٘
    ↟ Ӓېب࢜۽ऱחڜ਷౵੉ॆ۽ڜசೡࣻ੓׮

    View Slide

  238. ૑য়೐ۿ౟੄҃਋

    View Slide

  239. ૑য়೐ۿ౟੄҃਋
    ↟ नӏ೐۽ં౟

    View Slide

  240. ૑য়೐ۿ౟੄҃਋
    ↟ नӏ೐۽ં౟
    ↟ ૊౵੉ॆ۽ॻয૓ۨѢद௏٘হ਺

    View Slide

  241. ૑য়೐ۿ౟੄҃਋
    ↟ नӏ೐۽ં౟
    ↟ ૊౵੉ॆ۽ॻয૓ۨѢद௏٘হ਺
    ↟ ࢲߡ੉޲۽୭؀ೠৈ۞ജ҃ীࢲجইঠೡ೙ਃبহ਺

    View Slide

  242. ૑য়೐ۿ౟੄҃਋
    ↟ नӏ೐۽ં౟
    ↟ ૊౵੉ॆ۽ॻয૓ۨѢद௏٘হ਺
    ↟ ࢲߡ੉޲۽୭؀ೠৈ۞ജ҃ীࢲجইঠೡ೙ਃبহ਺
    ↟ ૑য়೐ۿ౟$-*௿ۄח౵੉ॆ ب૑ਗ

    View Slide

  243. ૑য়೐ۿ౟੄҃਋
    ↟ नӏ೐۽ં౟
    ↟ ૊౵੉ॆ۽ॻয૓ۨѢद௏٘হ਺
    ↟ ࢲߡ੉޲۽୭؀ೠৈ۞ജ҃ীࢲجইঠೡ೙ਃبহ਺
    ↟ ૑য়೐ۿ౟$-*௿ۄח౵੉ॆ ب૑ਗ

    ↟ ੄ઓೞחۄ੉࠳۞ܻחযڄө

    View Slide

  244. ݽف౵੉ॆ૑ਗ

    View Slide

  245. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ

    View Slide

  246. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ
    ↟ 8FSL[FVH 'MBTLnਢۄ੉࠳۞ܻ

    View Slide

  247. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ
    ↟ 8FSL[FVH 'MBTLnਢۄ੉࠳۞ܻ
    ↟ BQBDIFMJCDMPVEn*BB4௿ۄ੉঱౟ۄ੉࠳۞ܻ

    View Slide

  248. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ
    ↟ 8FSL[FVH 'MBTLnਢۄ੉࠳۞ܻ
    ↟ BQBDIFMJCDMPVEn*BB4௿ۄ੉঱౟ۄ੉࠳۞ܻ
    ↟ XBJUSFTTn84(*ࢲߡ ਢࢲߡ

    View Slide

  249. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ
    ↟ 8FSL[FVH 'MBTLnਢۄ੉࠳۞ܻ
    ↟ BQBDIFMJCDMPVEn*BB4௿ۄ੉঱౟ۄ੉࠳۞ܻ
    ↟ XBJUSFTTn84(*ࢲߡ ਢࢲߡ

    ↟ QZUFTUnױਤపझ౟೐ۨ੐ਕ௼

    View Slide

  250. ݽف౵੉ॆ૑ਗ
    ↟ QBSBNJLPn44)ۄ੉࠳۞ܻ
    ↟ 8FSL[FVH 'MBTLnਢۄ੉࠳۞ܻ
    ↟ BQBDIFMJCDMPVEn*BB4௿ۄ੉঱౟ۄ੉࠳۞ܻ
    ↟ XBJUSFTTn84(*ࢲߡ ਢࢲߡ

    ↟ QZUFTUnױਤపझ౟೐ۨ੐ਕ௼
    ↟ 4QIJOYnޙࢲചبҳ

    View Slide

  251. पઁ۽ो؍न߅ೠӝמٜ

    View Slide

  252. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n࠽౟ੋо࢚ജ҃ pyvenv

    View Slide

  253. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n࠽౟ੋо࢚ജ҃ pyvenv

    ↟ 1&1n࠽౟ੋpip

    View Slide

  254. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n࠽౟ੋо࢚ജ҃ pyvenv

    ↟ 1&1n࠽౟ੋpip
    ↟ 1&1nೣࣻয֢ప੉࣌

    View Slide

  255. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n࠽౟ੋо࢚ജ҃ pyvenv

    ↟ 1&1n࠽౟ੋpip
    ↟ 1&1nೣࣻয֢ప੉࣌
    ↟ 1&1nfunctools.singledispatch

    View Slide

  256. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n࠽౟ੋо࢚ജ҃ pyvenv

    ↟ 1&1n࠽౟ੋpip
    ↟ 1&1nೣࣻয֢ప੉࣌
    ↟ 1&1nfunctools.singledispatch
    • datetime.timezone

    View Slide

  257. 1&1n࠽౟ੋо࢚ജ҃

    View Slide

  258. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙

    View Slide

  259. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙
    • easy_install pip

    View Slide

  260. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙
    • easy_install pip
    • pip install virtualenv

    View Slide

  261. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙
    • easy_install pip
    • pip install virtualenv
    • virtualenv project-name-env

    View Slide

  262. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙
    • easy_install pip
    • pip install virtualenv
    • virtualenv project-name-env
    ↟ ੉ઁӒրղ੢ػpyvenvݺ۸যॳݶؽ

    View Slide

  263. 1&1n࠽౟ੋо࢚ജ҃
    ↟ ౵੉ॆ୊਺ࣁ౴ೡٸݔզೞ؍૙
    • easy_install pip
    • pip install virtualenv
    • virtualenv project-name-env
    ↟ ੉ઁӒրղ੢ػpyvenvݺ۸যॳݶؽ
    • pyvenv project-name-env

    View Slide

  264. 1&1n࠽౟ੋpip

    View Slide

  265. 1&1n࠽౟ੋpip
    ↟ ؊੉࢚౵੉ॆ୊਺ࣁ౴ೡٸsetuptools pip

    ࢸ஖উ೧بؽ

    View Slide

  266. 1&1n࠽౟ੋpip
    ↟ ؊੉࢚౵੉ॆ୊਺ࣁ౴ೡٸsetuptools pip

    ࢸ஖উ೧بؽ
    ↟ 5SJWJBpipחղࠗ੸ਵ۽requests html5lib

    ١ਸࢎਊ

    View Slide

  267. 1&1n࠽౟ੋpip
    ↟ ؊੉࢚౵੉ॆ୊਺ࣁ౴ೡٸsetuptools pip

    ࢸ஖উ೧بؽ
    ↟ 5SJWJBpipחղࠗ੸ਵ۽requests html5lib

    ١ਸࢎਊ
    ↟ pip._vendor.{requests,html5lib}

    ҳ҃೧ࠁࣁਃ

    View Slide

  268. 1&1nೣࣻয֢ప੉࣌
    class Team:
    """Backend interface for team membership auth..."""
    @typed
    def authenticate(self,
    auth_nonce: str,
    requested_redirect_url: str,
    wsgi_environ: collections.abc.Mapping
    ) -> Identity:
    """Second step of authentication process, ..."""

    View Slide

  269. 1&1singledispatch

    View Slide

  270. 1&1singledispatch
    ↟ ઁցܼݫࢲ٘ ഑਷ઁցܼೣࣻۄҊࠗܰחѪ

    View Slide

  271. 1&1singledispatch
    ↟ ઁցܼݫࢲ٘ ഑਷ઁցܼೣࣻۄҊࠗܰחѪ
    ↟ ղоҳഅೞ૑ঋ਷௿ېझ҅கҳઑীݫࢲ٘ܳ୶оೞҊ
    रਸٸࢎਊ

    View Slide

  272. 1&1singledispatch
    ↟ ઁցܼݫࢲ٘ ഑਷ઁցܼೣࣻۄҊࠗܰחѪ
    ↟ ղоҳഅೞ૑ঋ਷௿ېझ҅கҳઑীݫࢲ٘ܳ୶оೞҊ
    रਸٸࢎਊ
    ↟ ഑਷ ௿ېझ੗୓੄ੋఠಕ੉झ۽֍ӝগݒೠӝמٜਸ

    ٮ۽ೣࣻ۽ࡐݶࢲب׮ഋࢿਸӒ؀۽ࢎਊೡࣻ੓਺

    View Slide

  273. 1&1singledispatch
    ↟ ઁցܼݫࢲ٘ ഑਷ઁցܼೣࣻۄҊࠗܰחѪ
    ↟ ղоҳഅೞ૑ঋ਷௿ېझ҅கҳઑীݫࢲ٘ܳ୶оೞҊ
    रਸٸࢎਊ
    ↟ ഑਷ ௿ېझ੗୓੄ੋఠಕ੉झ۽֍ӝগݒೠӝמٜਸ

    ٮ۽ೣࣻ۽ࡐݶࢲب׮ഋࢿਸӒ؀۽ࢎਊೡࣻ੓਺
    ↟ ׮݅ ׮઺٣झಁ஖ח૑ਗউೣ ੗઱೙ਃೠѤইש

    View Slide

  274. 1&1singledispatch
    @singledispatch
    def get_metadata(driver: NodeDriver,
    node: Node) -> collections.abc.Mapping:
    return driver.ex_get_metadata(node)
    !
    @get_metadata.register(GCENodeDriver)
    def gce_get_metadata(driver: GCENodeDriver,
    node: Node
    ) -> collections.abc.Mapping:
    return node.extra['metadata']

    View Slide

  275. datetime.timezone

    View Slide

  276. datetime.timezone
    ↟ ಴ળdatetimeݽٕীחৈ۞ࠛಞೠ੼੉݆਷ؘ

    View Slide

  277. datetime.timezone
    ↟ ಴ળdatetimeݽٕীחৈ۞ࠛಞೠ੼੉݆਷ؘ
    ↟ ࢎपӒ઺݆਷ࠗ࠙਷౵੉ॆীࢲ੉޷ݻ֙੹ী

    Ҋ୛૓ࢎ೦ٜ

    View Slide

  278. datetime.timezone
    ↟ ಴ળdatetimeݽٕীחৈ۞ࠛಞೠ੼੉݆਷ؘ
    ↟ ࢎपӒ઺݆਷ࠗ࠙਷౵੉ॆীࢲ੉޷ݻ֙੹ী

    Ҋ୛૓ࢎ೦ٜ
    ↟ ౵੉ॆоיযоҊ੓׮חѪਸ੉Ѧࢎਊೞݶࢲו՝

    View Slide

  279. datetime.timezone
    ↟ ಴ળdatetimeݽٕীחৈ۞ࠛಞೠ੼੉݆਷ؘ
    ↟ ࢎपӒ઺݆਷ࠗ࠙਷౵੉ॆীࢲ੉޷ݻ֙੹ী

    Ҋ୛૓ࢎ೦ٜ
    ↟ ౵੉ॆоיযоҊ੓׮חѪਸ੉Ѧࢎਊೞݶࢲו՝
    ↟ Ӓ઺ೞաоदр؀ੋఠಕ੉झ tzinfo
    ݅ઁҕೡࡺद
    р؀੄ҳഅ਷ઁҕೞ૑ঋח׮חѪ

    View Slide

  280. datetime.timezone
    ↟ ಴ળdatetimeݽٕীחৈ۞ࠛಞೠ੼੉݆਷ؘ
    ↟ ࢎपӒ઺݆਷ࠗ࠙਷౵੉ॆীࢲ੉޷ݻ֙੹ী

    Ҋ୛૓ࢎ೦ٜ
    ↟ ౵੉ॆоיযоҊ੓׮חѪਸ੉Ѧࢎਊೞݶࢲו՝
    ↟ Ӓ઺ೞաоदр؀ੋఠಕ੉झ tzinfo
    ݅ઁҕೡࡺद
    р؀੄ҳഅ਷ઁҕೞ૑ঋח׮חѪ
    ↟ ब૑য65$ઑରب

    View Slide

  281. datetime.timezone

    View Slide

  282. datetime.timezone
    ↟ Ӓؘ۠౵੉ॆীࢲח੉޷Ҋ୛ઉ੓঻؍Ѫ੉׮

    View Slide

  283. datetime.timezone
    ↟ Ӓؘ۠౵੉ॆীࢲח੉޷Ҋ୛ઉ੓঻؍Ѫ੉׮
    • datetime.timezone.utc

    View Slide

  284. datetime.timezone
    ↟ Ӓؘ۠౵੉ॆীࢲח੉޷Ҋ୛ઉ੓঻؍Ѫ੉׮
    • datetime.timezone.utc
    • timezone(timedelta(housrs=9), 'KST')

    View Slide

  285. datetime.timezone
    ↟ Ӓؘ۠౵੉ॆীࢲח੉޷Ҋ୛ઉ੓঻؍Ѫ੉׮
    • datetime.timezone.utc
    • timezone(timedelta(housrs=9), 'KST')
    ↟ ݒ೐۽ં౟݃׮myproject.tzݽٕٜ݅؍૙

    ؊੉࢚উ೧بؽ

    View Slide

  286. पઁ۽ो؍न߅ೠӝמٜ

    View Slide

  287. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n঱ಁఊীࢲ*ো࢑੗ࢎਊ

    View Slide

  288. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n঱ಁఊীࢲ*ো࢑੗ࢎਊ
    ↟ 1&1nউଃ৘৻ࠁৈ઱ӝ

    View Slide

  289. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n঱ಁఊীࢲ*ো࢑੗ࢎਊ
    ↟ 1&1nউଃ৘৻ࠁৈ઱ӝ
    ↟ 1&1nৌѢഋ

    View Slide

  290. पઁ۽ो؍न߅ೠӝמٜ
    ↟ 1&1n঱ಁఊীࢲ*ো࢑੗ࢎਊ
    ↟ 1&1nউଃ৘৻ࠁৈ઱ӝ
    ↟ 1&1nৌѢഋ
    • urllib.request.Request.method

    View Slide

  291. 1&1঱ಁఊীࢲ*ো࢑੗

    View Slide

  292. 1&1঱ಁఊীࢲ*ো࢑੗
    ↟ ౵੉ॆীࢲبೣࣻੋ੗ীח*ো࢑੗ܳॶࣻ੓਺

    View Slide

  293. 1&1঱ಁఊীࢲ*ো࢑੗
    ↟ ౵੉ॆীࢲبೣࣻੋ੗ীח*ো࢑੗ܳॶࣻ੓਺
    ↟ ੉ઁחౚ೒঱ಁఊ١ীࢲبڙэ੉ॶࣻ੓׮חѪ

    View Slide

  294. 1&1঱ಁఊীࢲ*ো࢑੗
    ↟ ౵੉ॆীࢲبೣࣻੋ੗ীח*ো࢑੗ܳॶࣻ੓਺
    ↟ ੉ઁחౚ೒঱ಁఊ١ীࢲبڙэ੉ॶࣻ੓׮חѪ
    • fst, snd, *rest = get_list()

    View Slide

  295. 1&1঱ಁఊীࢲ*ো࢑੗
    ↟ ౵੉ॆীࢲبೣࣻੋ੗ীח*ো࢑੗ܳॶࣻ੓਺
    ↟ ੉ઁחౚ೒঱ಁఊ١ীࢲبڙэ੉ॶࣻ੓׮חѪ
    • fst, snd, *rest = get_list()
    • fst, snd, *mid, last = get_list()

    View Slide

  296. 1&1nউଃ৘৻಴द
    def a():
    raise ValueError('something went wrong')
    def b():
    try:
    a()
    except ValueError:
    raise RuntimeError('crashed')
    b()

    View Slide

  297. 1&1nউଃ৘৻಴द

    View Slide

  298. 1&1nউଃ৘৻಴द
    ↟ ৘৻ܳ੟ইࢲ׮ܲഋక੄৘৻ఋੑਵ۽׮द؍૕ٸ

    View Slide

  299. 1&1nউଃ৘৻಴द
    ↟ ৘৻ܳ੟ইࢲ׮ܲഋక੄৘৻ఋੑਵ۽׮द؍૕ٸ
    ↟ ౵੉ॆীࢲחী۞ݫࣁ૑ী߄Ӵଃ੄झఖ౟ۨ੉झ݅

    ಴दؽ

    View Slide

  300. 1&1nউଃ৘৻಴द
    ↟ ৘৻ܳ੟ইࢲ׮ܲഋక੄৘৻ఋੑਵ۽׮द؍૕ٸ
    ↟ ౵੉ॆীࢲחী۞ݫࣁ૑ী߄Ӵଃ੄झఖ౟ۨ੉झ݅

    ಴दؽ
    ↟ ٣ߡӒೡٸ೧׼झఖө૑ٜযоࢲউଃীࢲपઁ۽ח

    যڃ৘৻оդѤ૑૒੽଺ইࠊঠೣ

    View Slide

  301. 1&1nউଃ৘৻಴द
    ↟ ৘৻ܳ੟ইࢲ׮ܲഋక੄৘৻ఋੑਵ۽׮द؍૕ٸ
    ↟ ౵੉ॆীࢲחী۞ݫࣁ૑ী߄Ӵଃ੄झఖ౟ۨ੉झ݅

    ಴दؽ
    ↟ ٣ߡӒೡٸ೧׼झఖө૑ٜযоࢲউଃীࢲपઁ۽ח

    যڃ৘৻оդѤ૑૒੽଺ইࠊঠೣ
    ↟ ౵੉ॆীࢲחউଃীࢲդয়ܨبэ੉ࠁৈષ

    View Slide

  302. 1&1nউଃ৘৻಴द
    Traceback (most recent call last):
    File "t.py", line 6, in b
    a()
    File "t.py", line 2, in a
    raise ValueError('something went wrong')
    ValueError: something went wrong
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
    File "t.py", line 10, in
    b()
    File "t.py", line 8, in b
    raise RuntimeError('crashed')
    RuntimeError: crashed

    View Slide

  303. 1&1nৌѢഋ
    class KeyType(enum.Enum):
    """SSH key types."""
    ecdsa_ssh2_nistp256 = 'ecdsa-sha2-nistp256'
    ecdsa_ssh2_nistp384 = 'ecdsa-sha2-nistp384'
    ecdsa_ssh2_nistp521 = 'ecdsa-sha2-nistp521'
    ssh_dss = 'ssh-dss'
    ssh_rsa = 'ssh-rsa'

    View Slide

  304. 1&1nৌѢഋ
    >>> list(KeyType)
    [KeyType.ecdsa_ssh2_nistp256, KeyType.ecdsa_ssh2_nistp384,
    KeyType.ecdsa_ssh2_nistp521, KeyType.ssh_dss,
    KeyType.ssh_rsa]
    >>> KeyType.ssh_rsa
    KeyType.ssh_rsa
    >>> KeyType.ssh_rsa.name
    'ssh_rsa'
    >>> KeyType.ssh_rsa.value
    'ssh-rsa'

    View Slide

  305. Request.method

    View Slide

  306. Request.method
    ↟ ౵੉ॆীࢲurllib2оurllib.request۽

    ੉ܴ߸҃ؽ

    View Slide

  307. Request.method
    ↟ ౵੉ॆীࢲurllib2оurllib.request۽

    ੉ܴ߸҃ؽ

    ↟ ӝઓীחurllib2ীࢲGET POSTݫࢲ٘݅ࢎਊоמ

    View Slide

  308. Request.method
    ↟ ౵੉ॆীࢲurllib2оurllib.request۽

    ੉ܴ߸҃ؽ

    ↟ ӝઓীחurllib2ীࢲGET POSTݫࢲ٘݅ࢎਊоמ
    ↟ ੉ઁחPUT DELETE١׮ܲݫࢲ٘بࢎਊоמ

    View Slide

  309. Request.method
    ↟ ౵੉ॆীࢲurllib2оurllib.request۽

    ੉ܴ߸҃ؽ

    ↟ ӝઓীחurllib2ীࢲGET POSTݫࢲ٘݅ࢎਊоמ
    ↟ ੉ઁחPUT DELETE١׮ܲݫࢲ٘بࢎਊоמ
    ↟ PUTೞաࠁղ੗Ҋrequestsӭইࢲॳ؍૙਷উ֞

    View Slide

  310. Request.method
    ↟ ౵੉ॆীࢲurllib2оurllib.request۽

    ੉ܴ߸҃ؽ

    ↟ ӝઓীחurllib2ীࢲGET POSTݫࢲ٘݅ࢎਊоמ
    ↟ ੉ઁחPUT DELETE١׮ܲݫࢲ٘بࢎਊоמ
    ↟ PUTೞաࠁղ੗Ҋrequestsӭইࢲॳ؍૙਷উ֞
    ↟ Ӓր౵੉ॆо੿࢚੉ইפ঻؍Ѫэ૑݅

    View Slide

  311. ౵੉ॆ ੉ઁࢿࠛदఈद׮

    View Slide

  312. ౵੉ॆ ੉ઁࢿࠛदఈद׮
    ↟ ౵੉ॆח੼੼؊౵੉ॆࣁ࢚੄ഌఖਸޅࠁѱؼѪ

    View Slide

  313. ౵੉ॆ ੉ઁࢿࠛदఈद׮
    ↟ ౵੉ॆח੼੼؊౵੉ॆࣁ࢚੄ഌఖਸޅࠁѱؼѪ
    ↟ ੉޷౵੉ॆח݆਷ࠛ੉੊ਸ߉Ҋ੓਺

    View Slide

  314. ౵੉ॆ ੉ઁࢿࠛदఈद׮
    ↟ ౵੉ॆח੼੼؊౵੉ॆࣁ࢚੄ഌఖਸޅࠁѱؼѪ
    ↟ ੉޷౵੉ॆח݆਷ࠛ੉੊ਸ߉Ҋ੓਺
    ↟ ৘1&1n1ZUIPOYਸਤೠ֎౟ਕ௼ࠁউъച

    View Slide

  315. ౵੉ॆ ੉ઁࢿࠛदఈद׮
    ↟ ౵੉ॆח੼੼؊౵੉ॆࣁ࢚੄ഌఖਸޅࠁѱؼѪ
    ↟ ੉޷౵੉ॆח݆਷ࠛ੉੊ਸ߉Ҋ੓਺
    ↟ ৘1&1n1ZUIPOYਸਤೠ֎౟ਕ௼ࠁউъച
    ↟ ࢿ੢੉হח౵੉ॆ ੉ઁ֬ইસद׮

    View Slide

  316. WE’RE HIRING
    ૌѩѱѐߊೞחӝࢄਸೣԋաׂزܐܳ଺णפ׮
    IUUQTQPRBHJUIVCJPKPCIUNM

    View Slide