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

웹 어플리케이션 설계와 구현 I - 요구사항 분석에 관하여

웹 어플리케이션 설계와 구현 I - 요구사항 분석에 관하여

Manjong Han

July 30, 2018
Tweet

More Decks by Manjong Han

Other Decks in Programming

Transcript

  1. ਢ য೒ܻா੉࣌ ࢸ҅৬ ҳഅ I
    - ਃҳࢎ೦ ࠙ࢳী ҙೞৈ
    2018.07.30

    @ೠࣁࢎ੉ߡࠁউҊ١೟Ү

    ൤ٚ౟ۑ CTO ೠ݅ઙ

    View Slide

  2. ࣗ೐౟ਝযۆ?
    • ࢎۈ੉ ೞ٘ਝযܳ ز੘दఃӝ ਤ೧ ࢎਊೞח ࣻױ

    • ੿ࠁܳ ੋध, ࠙ࢳ, ੷੢ೞח ৉ೡਸ ࣻ೯

    • ஹೊఠ৬ ࣗాೞݴ ই੉٣যܳ पഅೞҊ ׮নೠ ޙઁܳ ೧Ѿೞח بҳ

    View Slide

  3. ࣗ೐౟ਝযۆ?

    View Slide

  4. ࣗ೐౟ਝযۆ?
    • ӝמ੸ ࠙ܨ

    View Slide

  5. ࣗ೐౟ਝযۆ?
    • ੹׳ ߑधী ٮܲ ࠙ܨ

    - ಁః૑ SW

    ‣ SW স୓ীࢲ ੗୓੸ਵ۽ ࢸ҅ೞৈ ࢚স੸ਵ۽ ౸ݒೞח ࣗ೐౟ਝয

    ‣ MS ਦب਋, MS য়ೖझ, ೠஹয়ೖझ, যب࠺ CC, ...

    - ઱ޙഋ SW

    ‣ ౠ੿ Ҋё(ӝস)੄ ਃҳܳ ݅઒दఃӝ ਤ೧ ઁ੘ೠ ࣗ೐౟ਝয

    ‣ SI(दझమ ా೤) ೐۽ં౟, ੐߬٣٘ SW, ...

    View Slide

  6. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • ೐۽షఋੑ(prototype)

    • োҳ ࢤ࢑ޛ(R&D)

    • ࢚ಿചػ ಁః૑(production)

    View Slide

  7. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • ୭ઙ ࢎਊ੗о ࢎਊೡ ࣻ ੓ח ࣻળ੄ ৮ࢿبо ы୶য૑ח दӝ ৘࢚

    • ৘࢚؀۽ ੘زغ૑ ঋѢա ৘࢚ೞ૑ ঋও؍ য়ز੘ਸ ୭ࣗച

    View Slide

  8. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • ୭ઙ ࢎਊ੗о ࢎਊೡ ࣻ ੓ח ࣻળ੄ ৮ࢿبо ы୶য૑ח दӝ ৘࢚

    • ৘࢚؀۽ ੘زغ૑ ঋѢա ৘࢚ೞ૑ ঋও؍ য়ز੘ਸ ୭ࣗച
    ࢤ࢑ࢿ
    ಿ૕

    View Slide

  9. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • “ࣗ೐౟ਝয ਤӝ(software crisis)”

    - ੿ഛೞҊ ੉೧ೡ ࣻ ੓Ҋ, Ѩૐ оמೠ ஹೊఠ ೐۽Ӓ۔ਸ ੘ࢿೞח Ѫ੉ ঴݃ա য
    ۰਍оܳ ڷೞח ݈

    - दझమ ؀ӏݽചী ٮܲ ࣗ೐౟ਝয੄ न܉ࢿ ੷ೞ, ѐߊ࠺੄ ૐ؀, ҅ദ੄ ૑ো

    - ؀਽ ߑউ

    ‣ ҕ೟੸ ੽Ӕ(׮নೠ ߑߨۿ)

    ‣ ಴ળച(੤ࢎਊࢿ ૐ؀, ݽٕച)

    ‣ ੗زച بҳ ࢎਊ

    View Slide

  10. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • “਷ࡄ ఍ജ਷ হ׮(No silver bullet)”

    - Frederick P. Brooks, 1986.

    - ࣗ೐౟ਝয ѐߊ੄ ࠂ੟ࢿਸ ೠߣী ೧Ѿೡ ݃ߨ(਷ࡄ ఍ജ)਷ হ׮

    - ؀਽ߑউ

    ‣ ࣗ೐౟ਝযܳ ٜ݅૑ ঋҊ, ࣗ೐౟ਝয ઁಿਸ ҳݒೠ׮

    ‣ ਃҳࢎ೦ ҳ୓ച, ࡅܲ ೐۽షఋ੉ೝ

    ‣ ੼૓੸ ѐߊ

    View Slide

  11. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • ױ҅੸ ೐۽ࣁझ

    - ࣗ೐౟ਝয ޙઁܳ ৈ۞ ױ҅۽ ա־য ೧Ѿೞח ߑध
    ਃҳࢎ೦ ࠙ࢳ
    ࢸ҅
    ҳഅ
    పझ౟
    ਬ૑ࠁࣻ
    ҅ദ

    View Slide

  12. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - જ਷ Ѫਸ ࡅܰҊ խ࠺হѱ ѐߊೞח Ѫਸ оמೞѱ

    - “о߶਍ ೐۽ࣁझ”

    - less document-oriented, code-oriented

    - ੿ഋ੸੉Ѣա ৘ஏী ੄ೠ Ѫ੉ ইצ adaptive ೞҊ ҃೷੸ਵ۽

    View Slide

  13. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - ׮਺ਸ о஖੓ѱ:

    ‣ ҕ੿җ بҳࠁ׮ ѐੋҗ ࢚ഐ੘ਊਸ

    ‣ ನҚ੸ੋ ޙࢲࠁ׮ ੘زೞח ࣗ೐౟ਝযܳ

    ‣ ҅ড ഈ࢚ࠁ׮ Ҋёҗ੄ ഈ۱ਸ

    ‣ ҅ദਸ ٮܰӝࠁ׮ ߸ചী ؀਽ೞӝܳ

    View Slide

  14. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - Extreme Programming(XP)

    ‣ Test-Driven Development

    ‣ Pair Programming

    ‣ Continuous Integration

    ‣ Refactoring

    View Slide

  15. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - Scrum

    ‣ Backlog

    ‣ Sprint (Iteration)

    ‣ Scrum Master

    ‣ Scrum Meeting

    View Slide

  16. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - Kanban

    ‣ Card

    ‣ WIP Limit

    ‣ Kaizen

    View Slide

  17. ࣗ೐౟ਝয ѐߊ੉ۆ?
    • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ

    - Lean

    ‣ MVP

    ‣ Build - Measure - Learn

    View Slide

  18. ਃҳࢎ೦ ࠙ࢳ
    • ‘যڌѱ(How)’о ইפۄ ‘ޖ঺ਸ(What)’ী ୡ੼

    • ‘೧Ѿߑߨ’ ઁदо ইפۄ ‘ޙઁ’ܳ ੿੄

    • ࣗ೐౟ਝযо ޖ঺ਸ ਤ೧ ೙ਃೠ૑ ੿ഛ൤ ੉೧

    • ੉೧ೠ Ѫਸ ׮ܲ ѐߊ੗ীѱ ੿ഛ൤ ੹׳

    • दझమ੄ ѐߊ ߑೱ ҙܻܳ ਤ೧ ೙ਃ

    View Slide

  19. ਃҳࢎ೦ ࠙ࢳ

    View Slide

  20. ਃҳࢎ೦ ࠙ࢳ
    • ࢎਊ੗ח ز੘ೞח SWܳ ࠁӝ ੹ীח पઁ۽ ੗न੉ ޖ঺ਸ ਗೞח૑ ঌ૑ ޅೠ׮.

    • ߓ҃ ૑ध੄ ର੉, ਊয ࠛੌ஖ ١ ੄ࢎ ࣗా੄ য۰਑ਸ ೧Ѿ೧ঠ ೠ׮.

    • ੌߑ੸ੋ ੄ࢎࣗాࠁ׮ ҕхਸ ా೧ࢲ SWо ೧Ѿೞ۰ח ޙઁܳ ੉೧ೠ׮.

    • ࢎਊ੗৬ ѐߊ੗ р੄ ੉Ѽ ର੉ܳ ગഃ ࢲ۽ ժٙ оמೠ ݾ಴ܳ ࣁਕঠ ೠ׮.

    View Slide

  21. ਃҳࢎ೦ ࠙ࢳ
    • ਃҳࢎ೦ ࣻ૘(୶୹) ߑߨ

    - ੋఠ࠭: ૒੽ ؀ചܳ ా೧ ࣗ೐౟ਝযо যڌѱ ز੘೧ঠ ೞח૑ী ؀ೠ ੄Ѽਸ ٛ
    ח ߑߨ

    - ҙ଴: ࣗ೐౟ਝযо ೙ਃೠ അ੢ীࢲ সޖ ژח ೐۽ࣁझо যڃ ߑߨਵ۽ ૓೯غҊ
    ੓ח૑ ૒੽ ૑ெࠁח ߑߨ

    - ࠳ۨੋझష߁: ࣗࣻ੄ ੋਗ੉ ӏ஗ਸ ࣁਕ ৈ۞ ই੉٣যо ઁदؼ ࣻ ੓ب۾ ޷౴
    ਸ ૓೯ೞৈ ೖ٘ߔਸ ੿ܻೞח ߑߨ

    - ೐۽షఋ੉ೝ: ৘࢚غח ઁಿ੄ ੘زೞח ݽणਸ ݽഋਵ۽ ٜ݅যࢲ ޷ܻ ೖ٘ߔਸ
    ߉ӝ ਤೠ ߑߨ

    View Slide

  22. ਃҳࢎ೦ ࠙ࢳ
    • Oven(https://ovenapp.io)ਸ ੉ਊೠ ೐۽షఋ੉ೝ पण

    View Slide

  23. ਃҳࢎ೦ ࠙ࢳ
    • ਃҳࢎ೦ ݽ؛݂

    - ҳઑ੸ ࠙ࢳ(structured analysis) ߑߨ: ؘ੉ఠ ൒ܴਸ ઺बਵ۽ ݽٕചೞৈ ӝמ
    ҙ੼ਵ۽ दझమਸ ಴അೞח ߑߨ

    - ё୓૑ೱ ࠙ࢳ(object-oriented analysis) ߑߨ: ؘ੉ఠ৬ ೐۽ࣁझܳ ೣԋ ஭ङച
    ೠ ё୓ܳ ױਤ۽ दझమਸ ಴അೞח ߑߨ

    View Slide

  24. ਃҳࢎ೦ ࠙ࢳ
    • ё୓૑ೱ ࠙ࢳ(Object Oriented Analysis, OOA)

    - ࢎਊ੗੄ ਃҳࢎ೦ਸ ࠙ࢳೞৈ ਃҳػ ޙઁ৬ ҙ۲ػ ݽٚ ௿ېझ(ё୓), ҙ۲ ࣘࢿ
    ߂ ো࢑, ё୓ р੄ ҙ҅١ਸ ੿੄ೞৈ ݽ؛݂ೞח Ѫ

    - ޙઁ ৔৉ীࢲ ё୓ա ѐ֛ٜਸ ଺ইࢲ ӝࣿೞחؘ ઺੼ਸ ك׮.

    View Slide

  25. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ
    • ҳઑ੸ SW ѐߊ ߑߨۿ

    - ҳઑ੸ ࠙ࢳ(Structured Analysis)

    - ҳઑ੸ ࢸ҅(Structured Design)

    - ҳઑ੸ ೐۽Ӓې߁(Structured
    Programming)
    • ё୓૑ೱ SW ѐߊ ߑߨۿ

    - ё୓૑ೱ ࠙ࢳ(Object Oriented
    Analysis, OOA)

    - ё୓૑ೱ ࢸ҅(Object Oriented
    Design, OOD)

    - ё୓૑ೱ ೐۽Ӓې߁(Object
    Oriented Programming, OOP)

    View Slide

  26. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ
    • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP)

    - ೐۽Ӓ۔ਸ ৈ۞ ѐ੄ ة݀ػ ױਤ, ૊ “ё୓”ٜ੄ ݽ੐ਵ۽ ౵ঈೞҊ੗ ೞח Ѫ

    - “ஹೊఠ ೐۽Ӓ۔ਸ അप ࣁ҅ী ࡁ؀য ൑ղմ ѐߊ ߑߨ”

    - ೐۽Ӓې߁ਸ ؊ ߓ਋ӝ औѱ ೞҊ ࣗ೐౟ਝয ѐߊҗ ࠁࣻܳ рಞೞѱ ೞݴ, ࠁ׮
    ૒ҙ੸ੋ ௏٘ ࠙ࢳਸ оמೞѱ ೞח ੢੼ਸ ыҊ ੓׮.

    - ೐۽Ӓ۔ਸ ਬোೞҊ ߸҃੉ ਊ੉ೞѱ ٜ݅ӝ ٸޙী ؀ӏݽ ࣗ೐౟ਝয ѐߊী ݆
    ੉ ࢎਊػ׮.

    View Slide

  27. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ
    • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP)

    - ё୓(object)
    ‣ data + operation on data

    ‣ instance of class

    - ௿ېझ(class)
    ‣ description, abstraction

    - ݫࣁ૑(message)
    ‣ ё୓ р ࢚ഐ ੘ਊ(ݫࣗ٘ ഐ୹) ࣻױ

    View Slide

  28. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ
    • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP)

    - ୶࢚ച(abstraction)
    ‣ ࢚ࣁೠ ղਊਸ ऀӝҊ ೨ब੸ੋ ࠗ࠙(ౠ૚)ਸ ъઑೞৈ ݽ؛ച

    - ஭ङച(encapsulation)
    ‣ ੿ࠁ ਷ץਸ ా೧ ё୓ р Ѿ೤بܳ хࣗदெ ਬ૑ࠁࣻ ਊ੉, ੤ࢎਊࢿ ૐ؀

    - ࢚ࣘࢿ(inheritance)
    ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ੄ ӝמਸ ࢎਊೞৈ ഛ੢ೡ ࣻ ੓ب۾ ೲਊ

    - ׮ഋࢿ(polymorphism)
    ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ੉ ઁҕೞח ߑߨਸ ా೧ Ҋਬೠ ز੘ਸ ࣻ೯ оמ

    View Slide

  29. Reference

    https://www.spri.kr/posts/view/21850?code=annual_reports

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

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

    https://johngrib.github.io/wiki/No-Silver-Bullet/

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

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

    http://cjmyun.tripod.com/Knowledgebase/ConceptsOfObjectOriented.htm

    https://www.slideshare.net/plusjune/ss-46109239

    View Slide