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

8년째 같은 제품을 만들고 있습니다

RIDI
July 06, 2018

8년째 같은 제품을 만들고 있습니다

RIDI

July 06, 2018
Tweet

More Decks by RIDI

Other Decks in Technology

Transcript

  1. 8֙૩ э਷ ઁಿਸ ٜ݅Ҋ ੓णפ׮
    թഅ਋

    View Slide

  2. ਋ܻо ݽৈ੓ח ੉ਬ
    ਋ܻ\ӝദ੗¾ѐߊ੗¾٣੗੉ց^

    View Slide

  3. ൔೠ IT ӝস੄ ੄ࢎѾ੿ ҳઑ

    View Slide

  4. ਋ܻח ৈӝ

    View Slide

  5. ਋ܻח,

    ഥࢎ੄ ޷࣌ਸ ׳ࢿೞҊ੗
    ࢸ੿ػ ੹ۚী ࠗ೤ೞח

    ઁಿਸ ٜ݅ӝ ਤ೧ ݽৈ੓णפ׮.

    View Slide

  6. ખ୊ۢ ߸ೞ૑ ঋח Ѫ
    दрҗ ജ҃ী ٮۄ

    ࣻद۽ ߸ೞח Ѫ

    View Slide

  7. ખ୊ۢ ߸ೞ૑ ঋח Ѫ
    दрҗ ജ҃ী ٮۄ

    ࣻद۽ ߸ೞח Ѫ
    ੹ۚ੉ ߄Շח ਗੋ: ةࢲ ੋҳ੄ ߸ച, بࢲ ੿оઁ, ӝࣿ੄ ߊ׳, ...

    View Slide

  8. ઁಿ ѐߊ੄ ౠ૚
    ӝദ੗о ইޖܻ ৮߷೧ب ਃҳࢎ೦਷ ߄Ո׮.

    → ੹ۚ੉ ߸ೞӝ ٸޙী

    ੜ ٜ݅য ֬਷ ઁಿب ࢎۄ૓׮.

    → ੹ۚ੉ ߸ೞӝ ٸޙী

    View Slide

  9. ܻ٣࠘झ ѐߊ੄ ౠ૚
    ܻ٣࠘झח ੉ઁ ҍ 9࢓
    • cf. ݽ߄ੌ ѱ੐੄ ಣӐ ࣻݺ: 6ѐਘ

    • ਋ܻח ѱ੐ਸ ݅٘ח Ѫ੉ ইפ׮.

    খਵ۽ب ҅ࣘ יযт Ѫ੉׮.
    • ܻ٣࠘झ 2ח হ׮.

    • ૑ࣘغח ߸ചী ੜ ੸਽ೞח Ѫ੉ ઺ਃೞ׮.

    View Slide

  10. ܻ٣࠘झী ؀ೠ ҙबب

    View Slide

  11. গפ౿ী ؀ೠ ҙबب

    View Slide

  12. View Slide

  13. য়ט੄ ઱ઁ
    ޖ঺ਸ ٜ݅ө (x)
    যڌѱ ٜ݅ө (o)

    View Slide

  14. য়ېоח ઁಿ਷

    যڌѱ ٜ݅ө?

    View Slide

  15. ૞ӝ৬ ઑ݀ೞӝ

    View Slide

  16. ૞׮1, ᭂ᪦
    ޖ঺ਸ о۽ ࣁ۽۽ ৊য ୥୥൤ ٜ݅׮.

    View Slide

  17. ణप۽ झਝఠܳ ૞׮.
    ر੗ܻܳ ૞׮.
    ೐۽Ӓ۔ਸ ૞׮.

    View Slide

  18. ణप۽ झਝఠܳ ૞׮.
    ر੗ܻܳ ૞׮.
    ೐۽Ӓ۔ਸ ૞׮.

    View Slide

  19. View Slide

  20. ઑ݀ೞ׮1, ᪝ር
    ৈ۞ ࠗಿਸ ݽই ೞա੄ ޛѤਸ ٜ݅׮.

    View Slide

  21. ۨҊܳ ઑ݀ೞ׮.
    ஹೊఠܳ ઑ݀ೞ׮.
    ੉ாই оҳܳ ઑ݀ೞ׮.

    View Slide

  22. View Slide

  23. ࢻࣁೞ׮
    ૞׮ ઑ݀ೞ׮
    ೙ਃೠ ਃࣗܳ ૊द ؔ؂׮
    ټࡎ੉ ਊ੉ೞ׮ (patch: Ӥ׮)
    ೧୓о য۵׮
    ੤ࢎਊ੉ য۵׮
    ࠽٬࠶۟ਸ ݢ੷ ݅ٚ׮
    ټࡎ੉ য۵׮
    ೧୓о औ׮
    ੤ࢎਊ੉ औ׮
    ై߅ೞ׮

    View Slide

  24. য়ېоח ઁಿ਷
    ઑ݀غযঠ ೞ૑ ঋਸө?

    View Slide

  25. ׮নೠ ࠙ঠ੄ ઑ݀ࢎ۹
    Composition
    f ∘ g

    View Slide

  26. ೞ٘ਝয ٣੗ੋীࢲ
    1. ઁಿ ٣੗ੋ
    ୭ઙ Ѿҗޛਸ ࢚࢚ೞӝ

    2. ӝҳ ࢸ҅
    Ѿҗޛਸ ઑ݀ؼ ࣻ ੓ח ਃٜࣗ۽ ࠙೧ೞӝ

    3. ࠗಿ ѐࢶ
    п ਃٜࣗ੄ ৮ࢿبܳ ֫੉ӝ

    ߸҃ী ٮܲ ࠺ਊ੉ ݒ਋ ழࢲ ݽٕച੄ ೙ਃࢿ੉ ъઑؽ

    View Slide

  27. CPU ٣੗ੋীࢲ
    ੋభ: CISC (complex)
    • ೙ਃೠ ݺ۸যܳ ࢸ҅ী ݒߣ ୶оೞח ߑध

    cf. Ү଱য - ೞ׮, ೞ, ೧, ೮, ೧ࢲ, ೞחؘ, ೞפ, ೠ, ೡ, ...

    ARM: RISC (reduced)
    • ӝࠄ ݺ۸যܳ ઑ೤ೞৈ ো࢑ਸ ࣻ೯ೞח ߑध

    cf. Ҋ݀য - do, did, done, do+ing, to do, must do, …

    ߸ചೞח ߈ب୓, ஹ౵ੌ۞ ӝࣿী ਬোೠ ARM ߑध੄ थܻ

    View Slide

  28. ೐۽Ӓ۔ ٣੗ੋীࢲ
    ё୓૑ೱ ਗ஗ (SOLID)
    • ױੌ ଼੐੄ ਗ஗ - ೠ ௿ېझח ೞա੄ ҙबࢎ݅

    • ѐߑ-ತࣧ੄ ਗ஗ - ӝઓ ۽૒ ࣻ੿ হ੉ ഛ੢੉ оמ೧ঠ ೣ

    ೣࣻഋ ೐۽Ӓې߁
    • ଵઑ ైݺࢿ - ё୓ী ૞ৈ૓ ࢚క(state)ܳ ܻ࠙

    • ઑ݀ оמࢿ - HOC , Mixin

    ل ׮ ਬ૑ࠁࣻ৬ ഛ੢ਸ औѱ ೞӝ ਤೠ ݾ੸

    View Slide

  29. ݃੉௼۽ࢲ࠺झ ইఃఫ୛
    • ੹୓ܳ ੘਷ ࢲ࠺झٜ۽ ࠙೧

    • ӒѪٜਸ וटೞѱ Ѿ೤

    ਬץझ ୍೟
    • ೐۽Ӓ۔਷ ೞա੄ ੌ݅ ੜ ೧ঠ ೣ

    • ೐۽Ӓ۔਷ োѾؼ ࣻ ੓যঠ ೣ

    दझమ ٣੗ੋীࢲ
    ݃ଲо૑۽ ਬ૑ࠁࣻ৬ ഛ੢ਸ औѱ ೞӝ ਤೠ ݾ੸

    View Slide

  30. ҕా੼:
    ࠂ੟ೠ അपীࢲ ࢓ইթӝ ਤ೧

    ઑ݀ೞӝ ߑधਸ ࢶఖ
    ೞ٘ਝয ٣੗ੋ
    CPU ٣੗ੋ
    ೐۽Ӓ۔ ٣੗ੋ
    दझమ ٣੗ੋ

    View Slide

  31. ೞ٘ਝয ٣੗ੋ
    CPU ٣੗ੋ
    ೐۽Ӓ۔ ٣੗ੋ
    दझమ ٣੗ੋ
    ઁಿ ٣੗ੋ

    View Slide

  32. ઑӘ ؊ ୶࢚ച غ঻ਸ ࡺ,

    ઁಿ ٣੗ੋب ׮ܰ૑ ঋਸ Ѫ੉׮.

    View Slide

  33. ઁಿ੄ ࠙೧৬ ઑ݀
    Components & Composing

    View Slide

  34. ਋ܻо ೞח ੌ:
    ਃҳࢎ೦ਸ ୓҅੸ਵ۽ ઁಿী ߈৔ೞח Ѫ

    View Slide

  35. ਋ܻо ೞח ੌ:
    ਃҳࢎ೦ਸ ୓҅੸ਵ۽ ઁಿী ߈৔ೞח Ѫ
    ˝ ˞
    ˟
    ૞ৈઉ ੓য ࠙೧о оמೠ ਃٜࣗ

    View Slide

  36. 1. ਃҳࢎ೦ਸ ࠙೧
    ਃҳࢎ೦(ݺࣁ)ܳ ਃҳೞѱ ػ ޙઁٜਸ ଺ӝ
    • ֈযয়ח ਃ୒ী ޙઁо ࠙ݺೠ ҃਋ח ٘ޛ׮.

    • ӓ൤ ٘ޛ׮.

    • XY Problem੉ۄҊب ೠ׮.

    ޙઁ(X)ী ૞ৈ૓ ೧Ѿ଼(Y)ਸ ࠙೧
    • Yо component

    View Slide

  37. যڃ ࣳೝށ੄ ࢎ۹

    “Ҋёীѱ ഌఖਸ ઱੗!”
    (੤ߑޙਯਸ ֫੉ӝ ਤ೧)

    View Slide

  38. Aࢎ੄ ҃਋

    View Slide

  39. Aࢎ੄ ҃਋
    Solutions

    View Slide

  40. Bࢎ੄ ҃਋

    View Slide

  41. Bࢎ੄ ҃਋
    Solutions

    View Slide

  42. ઁಿ ѐߊ਷ x ↦ y ଺ӝ੄ োࣘ
    Solutions

    View Slide


  43. ਋ܻ੄ ऀѹ૓ ޷࣌
    যڌѱ ੹৉੸ਵ۽ ୭੸ചೡ Ѫੋо

    View Slide

  44. Σbenefit - Σcost = ?
    Solutions

    View Slide

  45. arg max(Σbenefit - Σcost)
    ࠗ࠙੸ੋ ޙઁٜী ୭ࢶਸ ׮ೞݶ Ѿҗ੸ੋ ബਊ੉ ղ۰оח ৉ࢸ
    • Costח ਬ૑ࠁࣻ۽ ੋೠ ઑ૒੄ ࣘب੷ೞب ನೣ

    ӓࠂ ߑউ:
    1. ೧Ѿ଼੄ ബਯਸ ֫੉Ѣա (੗ݺೠ ߑߨ)

    2. ޙઁ੄ о૙ࣻܳ ઴੉Ѣա

    3. ೧Ѿ଼ਸ ੤ࢎਊೞѢա

    View Slide

  46. 2. ೐۽ࣁझܳ ࠙೧
    • ೐۽ࣁझח ࣽࢲ۽ ૞ৈ૓ ױਤ ੘সٜ

    ৘) ࣚש੉ ਺धਸ ઱ޙೞݶ ઱ߑীࢲ ਃܻܳ ೞৈ ղ઱Ҋ تਸ ߉ח׮.

    • Ѿ೤਷ ؀ӝৌ(Queue)۽ॄ ࠙೧ؼ ࣻ ੓׮.

    ৘) ध׼ ߑޙ → Q → ਺ध ઱ޙ → Q → ઱ߑ ਃܻ → Q → Ѿઁ

    • ױਤ ੘স੉ component

    View Slide

  47. ܻ٣நद

    ߸҃
    ղ ଼੢

    ߸҃
    ҳݒ ݫੌ ߊ࣠
    ؘ੉ఠ੄ ൒ܴ
    ஹನք౟

    View Slide

  48. ܻ٣நद

    ߸҃
    ղ ଼੢

    ߸҃
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    ݫੌ ߊ࣠

    View Slide

  49. ܻ٣நद

    ߸҃
    ղ ଼੢

    ߸҃
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    नр ୹द
    CRM
    ݫੌ ߊ࣠
    ಹद ߊ࣠

    View Slide

  50. ܻ٣நद

    ߸҃
    ղ ଼੢

    ߸҃
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    नр ୹द
    CRM
    Ҋё ޙ੄
    ੽ࣻ/਽؀
    ݫੌ ߊ࣠
    ಹद ߊ࣠

    View Slide

  51. 3. ੘স੗ب ࠙೧
    • ஹನք౟ী ૞ৈ૓ ־о(by whom)৬ ޖ঺(what)ਸ ࠙೧

    • ੤ࢎਊ੉ оמೞ׮ח Ѫ = ־ҵо ੉޷ ٜ݅঻ਸ૑ب ݽܲ׮ח Ѫ

    • ߄௰ܳ ੤ߊݺೡ ݺ࠙ਸ ࠙ݺ൤

    • ߄௰ܳ ਬ૑ࠁࣻೡ ݺ࠙ب ࠙ݺ൤

    View Slide

  52. ܻ٣நद

    ߸҃
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    नр ୹द
    CRM
    Ҋё ޙ੄
    ݫੌ ߊ࣠
    ಹद ߊ࣠
    ੽ࣻ/਽؀
    Zendesk
    ղ ଼੢

    ߸҃

    View Slide

  53. ܻ٣நद

    ߸҃
    ݫੌ ߊ࣠
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    नр ୹द
    CRM
    Ҋё ޙ੄
    ੽ࣻ/਽؀
    ಹद ߊ࣠
    Zendesk
    Amazon SNS
    Mailchimp
    ղ ଼੢

    ߸҃

    View Slide

  54. ܻ٣நद

    ߸҃
    ղ ଼੢

    ߸҃
    ݫੌ ߊ࣠
    ҳݒ
    ੗ز୽੹
    ؀ৈ ݅ܐ
    नр ୹द
    CRM
    Ҋё ޙ੄
    ੽ࣻ/਽؀
    ಹद ߊ࣠
    ҅੿౱
    Zendesk
    Amazon SNS
    Mailchimp

    View Slide

  55. ઑ݀਷ যڌѱ?
    ஹನք౟ ઑ݀ ߑध ৘द

    View Slide

  56. ઑ݀਷ যڌѱ?
    ஹನք౟ ઑ݀ ߑध ৘द
    ೞ٘ਝয ࠗಿ ӝ҅ध ݫழפ્ ߡౡ, ٘ۄ੉ߡ, ੽଱ઁ

    View Slide

  57. ઑ݀਷ যڌѱ?
    ஹನք౟ ઑ݀ ߑध ৘द
    ೞ٘ਝয ࠗಿ ӝ҅ध ݫழפ્ ߡౡ, ٘ۄ੉ߡ, ੽଱ઁ
    ࣗ೐౟ਝয ۄ੉࠳۞ܻ ஹ౵ੌ, ݂௼ node_modules, *.dll

    View Slide

  58. ઑ݀਷ যڌѱ?
    ஹನք౟ ઑ݀ ߑध ৘द
    ೞ٘ਝয ࠗಿ ӝ҅ध ݫழפ્ ߡౡ, ٘ۄ੉ߡ, ੽଱ઁ
    ࣗ೐౟ਝয ۄ੉࠳۞ܻ ஹ౵ੌ, ݂௼ node_modules, *.dll
    ઁಿ ೧Ѿ଼ / ױਤ੘স ؘ੉ఠ ੑ୹۱
    ଼ ੿ࠁ, ҳݒ ੿ࠁ,

    ܻ࠭ ੿ࠁ, ഋҟಗ ੿ࠁ

    View Slide

  59. Product Composition
    ™
    ޙઁী؀ೠ೧Ѿ଼ٜਸ
    ؘ੉ఠ੄൒ܴਵ۽ઑ݀ೞחѪ

    View Slide

  60. ૞ח ೯ਤח ਋ߊ੸੉Ҋ
    ઑ݀ध ࢎҊח ײഃ੓׮

    View Slide

  61. 1
    Quick & Dirty

    View Slide

  62. Quick & Dirty
    • ૑੷࠙ೞ؊ۄب ੌױ ࡅܰѱ ݅ٚ׮.

    • Agile!

    • Lean!

    • MVP!

    View Slide

  63. ⚠

    ؊ۣഃب غח Ѫ੉ ੓Ҋ

    উغח Ѫ੉ ੓਺

    View Slide

  64. ઑӘ ؊ۣഃب غח Ѫ
    • दп੸ੋ ੌҙࢿ

    • ࠛ஘੺ೠ UX

    • ௏٘ ಿ૕

    • ࢿמ ߂ উ੿ࢿ

    i.e. ա઺ী ஖਋ӝ ए਍ Ѫ
    ೣࠗ۽ ؊ۣ൤ݶ উغח Ѫ ✨
    • ޙઁ ৔৉ (Domain)

    ցޖ և਷ ޙઁܳ ಹח Ѫ਷ ইקө?

    • ੤ࢎਊࢿ (Composability)

    ঱ઃо ઑ݀ؼ ࣻ ੓ਸө?

    i.e. दр੉ ૑աب ࣻण੉ উغח Ѫ

    View Slide

  65. 1. بݫੋਸ झ౵ѱ౭୊ۢ ٜ݅঻ਵݶ,

    ަ ೧ب झ౵ѱ౭ ௏٘݅ աৡ׮.
    2. ੤ࢎਊࢿਸ ҙܻೞ૑ ޅೞݶ,

    ੢ӝ੸ਵ۽ ࡅܰѱ ਑૒ੌ ࣻ হ׮.

    View Slide

  66. "৵ ޙҳೞա ࣻ੿ೞחؘ 1઱ੌ੉ա Ѧ۰ਃ?"
    ੉۠ ࢚ടਸ ੄بೞח ࢎۈ਷ হ׮

    View Slide

  67. PS. ੤ࢎਊࢿ ҙ੼ীࢲ ਤ Ӓܿਸ ׮दࠁ੗

    View Slide

  68. 2
    Automation

    View Slide

  69. Automation
    ੗زചۆ?
    • ѐߊ੗ٜ੉ ޷؋੉ۄҊ ৈӝח Ѫ

    • ױࣽ ߈ࠂ ੘স ઴ৈ઱ח Ѫ

    • पࣻܳ ઴ৈ઱ח Ѫ

    ੗زചܳ ా೧ ੔ৈदрਸ ঳঻׮ݶ ޖ঺ਸ ੏঻ਸө?

    View Slide

  70. ޙઁܳ ੜ ಹח Ѫ੉ ইצ, ࡈܻ ಹח Ѫ
    • ೞ૑݅ ޙઁח ҅ࣘ ߸ೠ׮. (੹ۚ੉ ߸ೞפө)

    • ബਯ੸ != ബҗ੸

    ࠙೧ػ ױਤ ੘সਸ Ѿ೤ೞৈ ೐۽ࣁझܳ ݅٘ח Ѫ
    • ஹನք౟о ૞ৈ૑Ҋ ੓૑ח ঋ਷૑?
    ੗زച੄ ੉ݶ

    View Slide

  71. ઑ૒੄ য়ߡೖ౴
    ઑ૒੄ ࢎҊߑध੉ա दझమ੉ ૑աр ޙઁী ցޖ ୭੸ചغח Ѫ

    View Slide

  72. о஖ ઁউ
    য়ېب۾ ૓ചೞח ઁಿਸ ٜ݅੗

    ೐۽Ӓ۔ਸ ૞૑ ݈Ҋ ઁಿب ૞૑ ݈੗

    Ѥъೠ ஹನք౟ܳ ݆੉ ٜ݅Ҋ ੜ ҙܻೞ੗

    View Slide

  73. ਋ܻ݅ ॳ૑ب ݈੗
    ଼ API

    ܻ࠭ API

    Ѩ࢝ API

    ةࢲ֢౟ API

    ...
    ఃਕ٘ ౵ੋ؊

    ੉޷૑ ݧ૑ѱ ҕਬೞӝ

    ௑బஎ ࠭য

    ଼ ୶ୌ ূ૓

    ...
    ؘ੉ఠܳ ઁҕೞח ஹನք౟ ؘ੉ఠܳ ഝਊೞח ஹನք౟

    View Slide

  74. Always Be a Composer

    View Slide

  75. ଵҊ੗ܐ
    • The Pyramid of Clarity by Wavelength, Asana

    https://wavelength.asana.com/pyramid-clarity-strategic-alignment/

    • The Language of the System by Rich Hickey

    https://www.youtube.com/watch?v=ROor6_NGIWU

    • Choose Boring Technology by Dan McKinley

    http://boringtechnology.club/

    • Unix Philosophy by Ken Thomson

    https://en.wikipedia.org/wiki/Unix_philosophy

    • Simplicity Matters by Rich Hickey

    https://www.youtube.com/watch?v=rI8tNMsozo0

    • Worse is Better by Richard P. Gabriel

    https://en.wikipedia.org/wiki/Worse_is_better

    • Images from: mojs, Composer, Docker Compose, React, LEGO®

    View Slide