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

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

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

Manjong Han

July 30, 2018
Tweet

More Decks by Manjong Han

Other Decks in Programming

Transcript

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

    @ೠࣁࢎ੉ߡࠁউҊ١೟Ү ൤ٚ౟ۑ CTO ೠ݅ઙ
  2. ࣗ೐౟ਝযۆ? • ࢎۈ੉ ೞ٘ਝযܳ ز੘दఃӝ ਤ೧ ࢎਊೞח ࣻױ • ੿ࠁܳ

    ੋध, ࠙ࢳ, ੷੢ೞח ৉ೡਸ ࣻ೯ • ஹೊఠ৬ ࣗాೞݴ ই੉٣যܳ पഅೞҊ ׮নೠ ޙઁܳ ೧Ѿೞח بҳ
  3. ࣗ೐౟ਝযۆ? • ੹׳ ߑधী ٮܲ ࠙ܨ - ಁః૑ SW ‣

    SW স୓ীࢲ ੗୓੸ਵ۽ ࢸ҅ೞৈ ࢚স੸ਵ۽ ౸ݒೞח ࣗ೐౟ਝয ‣ MS ਦب਋, MS য়ೖझ, ೠஹয়ೖझ, যب࠺ CC, ... - ઱ޙഋ SW ‣ ౠ੿ Ҋё(ӝস)੄ ਃҳܳ ݅઒दఃӝ ਤ೧ ઁ੘ೠ ࣗ೐౟ਝয ‣ SI(दझమ ా೤) ೐۽ં౟, ੐߬٣٘ SW, ...
  4. ࣗ೐౟ਝয ѐߊ੉ۆ? • ୭ઙ ࢎਊ੗о ࢎਊೡ ࣻ ੓ח ࣻળ੄ ৮ࢿبо

    ы୶য૑ח दӝ ৘࢚ • ৘࢚؀۽ ੘زغ૑ ঋѢա ৘࢚ೞ૑ ঋও؍ য়ز੘ਸ ୭ࣗച
  5. ࣗ೐౟ਝয ѐߊ੉ۆ? • ୭ઙ ࢎਊ੗о ࢎਊೡ ࣻ ੓ח ࣻળ੄ ৮ࢿبо

    ы୶য૑ח दӝ ৘࢚ • ৘࢚؀۽ ੘زغ૑ ঋѢա ৘࢚ೞ૑ ঋও؍ য়ز੘ਸ ୭ࣗച ࢤ࢑ࢿ ಿ૕
  6. ࣗ೐౟ਝয ѐߊ੉ۆ? • “ࣗ೐౟ਝয ਤӝ(software crisis)” - ੿ഛೞҊ ੉೧ೡ ࣻ

    ੓Ҋ, Ѩૐ оמೠ ஹೊఠ ೐۽Ӓ۔ਸ ੘ࢿೞח Ѫ੉ ঴݃ա য ۰਍оܳ ڷೞח ݈ - दझమ ؀ӏݽചী ٮܲ ࣗ೐౟ਝয੄ न܉ࢿ ੷ೞ, ѐߊ࠺੄ ૐ؀, ҅ദ੄ ૑ো - ؀਽ ߑউ ‣ ҕ೟੸ ੽Ӕ(׮নೠ ߑߨۿ) ‣ ಴ળച(੤ࢎਊࢿ ૐ؀, ݽٕച) ‣ ੗زച بҳ ࢎਊ
  7. ࣗ೐౟ਝয ѐߊ੉ۆ? • “਷ࡄ ఍ജ਷ হ׮(No silver bullet)” - Frederick

    P. Brooks, 1986. - ࣗ೐౟ਝয ѐߊ੄ ࠂ੟ࢿਸ ೠߣী ೧Ѿೡ ݃ߨ(਷ࡄ ఍ജ)਷ হ׮ - ؀਽ߑউ ‣ ࣗ೐౟ਝযܳ ٜ݅૑ ঋҊ, ࣗ೐౟ਝয ઁಿਸ ҳݒೠ׮ ‣ ਃҳࢎ೦ ҳ୓ച, ࡅܲ ೐۽షఋ੉ೝ ‣ ੼૓੸ ѐߊ
  8. ࣗ೐౟ਝয ѐߊ੉ۆ? • ױ҅੸ ೐۽ࣁझ - ࣗ೐౟ਝয ޙઁܳ ৈ۞ ױ҅۽

    ա־য ೧Ѿೞח ߑध ਃҳࢎ೦ ࠙ࢳ ࢸ҅ ҳഅ పझ౟ ਬ૑ࠁࣻ ҅ദ
  9. ࣗ೐౟ਝয ѐߊ੉ۆ? • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ - જ਷ Ѫਸ

    ࡅܰҊ խ࠺হѱ ѐߊೞח Ѫਸ оמೞѱ - “о߶਍ ೐۽ࣁझ” - less document-oriented, code-oriented - ੿ഋ੸੉Ѣա ৘ஏী ੄ೠ Ѫ੉ ইצ adaptive ೞҊ ҃೷੸ਵ۽
  10. ࣗ೐౟ਝয ѐߊ੉ۆ? • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ - ׮਺ਸ о஖੓ѱ:

    ‣ ҕ੿җ بҳࠁ׮ ѐੋҗ ࢚ഐ੘ਊਸ ‣ ನҚ੸ੋ ޙࢲࠁ׮ ੘زೞח ࣗ೐౟ਝযܳ ‣ ҅ড ഈ࢚ࠁ׮ Ҋёҗ੄ ഈ۱ਸ ‣ ҅ദਸ ٮܰӝࠁ׮ ߸ചী ؀਽ೞӝܳ
  11. ࣗ೐౟ਝয ѐߊ੉ۆ? • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ - Extreme Programming(XP)

    ‣ Test-Driven Development ‣ Pair Programming ‣ Continuous Integration ‣ Refactoring
  12. ࣗ೐౟ਝয ѐߊ੉ۆ? • গ੗ੌ ࣗ೐౟ਝয ѐߊ ߑߨۿ - Scrum ‣

    Backlog ‣ Sprint (Iteration) ‣ Scrum Master ‣ Scrum Meeting
  13. ਃҳࢎ೦ ࠙ࢳ • ‘যڌѱ(How)’о ইפۄ ‘ޖ঺ਸ(What)’ী ୡ੼ • ‘೧Ѿߑߨ’ ઁदо

    ইפۄ ‘ޙઁ’ܳ ੿੄ • ࣗ೐౟ਝযо ޖ঺ਸ ਤ೧ ೙ਃೠ૑ ੿ഛ൤ ੉೧ • ੉೧ೠ Ѫਸ ׮ܲ ѐߊ੗ীѱ ੿ഛ൤ ੹׳ • दझమ੄ ѐߊ ߑೱ ҙܻܳ ਤ೧ ೙ਃ
  14. ਃҳࢎ೦ ࠙ࢳ • ࢎਊ੗ח ز੘ೞח SWܳ ࠁӝ ੹ীח पઁ۽ ੗न੉

    ޖ঺ਸ ਗೞח૑ ঌ૑ ޅೠ׮. • ߓ҃ ૑ध੄ ର੉, ਊয ࠛੌ஖ ١ ੄ࢎ ࣗా੄ য۰਑ਸ ೧Ѿ೧ঠ ೠ׮. • ੌߑ੸ੋ ੄ࢎࣗాࠁ׮ ҕхਸ ా೧ࢲ SWо ೧Ѿೞ۰ח ޙઁܳ ੉೧ೠ׮. • ࢎਊ੗৬ ѐߊ੗ р੄ ੉Ѽ ର੉ܳ ગഃ ࢲ۽ ժٙ оמೠ ݾ಴ܳ ࣁਕঠ ೠ׮.
  15. ਃҳࢎ೦ ࠙ࢳ • ਃҳࢎ೦ ࣻ૘(୶୹) ߑߨ - ੋఠ࠭: ૒੽ ؀ചܳ

    ా೧ ࣗ೐౟ਝযо যڌѱ ز੘೧ঠ ೞח૑ী ؀ೠ ੄Ѽਸ ٛ ח ߑߨ - ҙ଴: ࣗ೐౟ਝযо ೙ਃೠ അ੢ীࢲ সޖ ژח ೐۽ࣁझо যڃ ߑߨਵ۽ ૓೯غҊ ੓ח૑ ૒੽ ૑ெࠁח ߑߨ - ࠳ۨੋझష߁: ࣗࣻ੄ ੋਗ੉ ӏ஗ਸ ࣁਕ ৈ۞ ই੉٣যо ઁदؼ ࣻ ੓ب۾ ޷౴ ਸ ૓೯ೞৈ ೖ٘ߔਸ ੿ܻೞח ߑߨ - ೐۽షఋ੉ೝ: ৘࢚غח ઁಿ੄ ੘زೞח ݽणਸ ݽഋਵ۽ ٜ݅যࢲ ޷ܻ ೖ٘ߔਸ ߉ӝ ਤೠ ߑߨ
  16. ਃҳࢎ೦ ࠙ࢳ • ਃҳࢎ೦ ݽ؛݂ - ҳઑ੸ ࠙ࢳ(structured analysis) ߑߨ:

    ؘ੉ఠ ൒ܴਸ ઺बਵ۽ ݽٕചೞৈ ӝמ ҙ੼ਵ۽ दझమਸ ಴അೞח ߑߨ - ё୓૑ೱ ࠙ࢳ(object-oriented analysis) ߑߨ: ؘ੉ఠ৬ ೐۽ࣁझܳ ೣԋ ஭ङച ೠ ё୓ܳ ױਤ۽ दझమਸ ಴അೞח ߑߨ
  17. ਃҳࢎ೦ ࠙ࢳ • ё୓૑ೱ ࠙ࢳ(Object Oriented Analysis, OOA) - ࢎਊ੗੄

    ਃҳࢎ೦ਸ ࠙ࢳೞৈ ਃҳػ ޙઁ৬ ҙ۲ػ ݽٚ ௿ېझ(ё୓), ҙ۲ ࣘࢿ ߂ ো࢑, ё୓ р੄ ҙ҅١ਸ ੿੄ೞৈ ݽ؛݂ೞח Ѫ - ޙઁ ৔৉ীࢲ ё୓ա ѐ֛ٜਸ ଺ইࢲ ӝࣿೞחؘ ઺੼ਸ ك׮.
  18. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ • ҳઑ੸ SW ѐߊ ߑߨۿ - ҳઑ੸

    ࠙ࢳ(Structured Analysis) - ҳઑ੸ ࢸ҅(Structured Design) - ҳઑ੸ ೐۽Ӓې߁(Structured Programming) • ё୓૑ೱ SW ѐߊ ߑߨۿ - ё୓૑ೱ ࠙ࢳ(Object Oriented Analysis, OOA) - ё୓૑ೱ ࢸ҅(Object Oriented Design, OOD) - ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP)
  19. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP) -

    ೐۽Ӓ۔ਸ ৈ۞ ѐ੄ ة݀ػ ױਤ, ૊ “ё୓”ٜ੄ ݽ੐ਵ۽ ౵ঈೞҊ੗ ೞח Ѫ - “ஹೊఠ ೐۽Ӓ۔ਸ അप ࣁ҅ী ࡁ؀য ൑ղմ ѐߊ ߑߨ” - ೐۽Ӓې߁ਸ ؊ ߓ਋ӝ औѱ ೞҊ ࣗ೐౟ਝয ѐߊҗ ࠁࣻܳ рಞೞѱ ೞݴ, ࠁ׮ ૒ҙ੸ੋ ௏٘ ࠙ࢳਸ оמೞѱ ೞח ੢੼ਸ ыҊ ੓׮. - ೐۽Ӓ۔ਸ ਬোೞҊ ߸҃੉ ਊ੉ೞѱ ٜ݅ӝ ٸޙী ؀ӏݽ ࣗ೐౟ਝয ѐߊী ݆ ੉ ࢎਊػ׮.
  20. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP) -

    ё୓(object) ‣ data + operation on data ‣ instance of class - ௿ېझ(class) ‣ description, abstraction - ݫࣁ૑(message) ‣ ё୓ р ࢚ഐ ੘ਊ(ݫࣗ٘ ഐ୹) ࣻױ
  21. ё୓૑ೱ ࣗ೐౟ਝয ѐߊ • ё୓૑ೱ ೐۽Ӓې߁(Object Oriented Programming, OOP) -

    ୶࢚ച(abstraction) ‣ ࢚ࣁೠ ղਊਸ ऀӝҊ ೨ब੸ੋ ࠗ࠙(ౠ૚)ਸ ъઑೞৈ ݽ؛ച - ஭ङച(encapsulation) ‣ ੿ࠁ ਷ץਸ ా೧ ё୓ р Ѿ೤بܳ хࣗदெ ਬ૑ࠁࣻ ਊ੉, ੤ࢎਊࢿ ૐ؀ - ࢚ࣘࢿ(inheritance) ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ੄ ӝמਸ ࢎਊೞৈ ഛ੢ೡ ࣻ ੓ب۾ ೲਊ - ׮ഋࢿ(polymorphism) ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ੉ ઁҕೞח ߑߨਸ ా೧ Ҋਬೠ ز੘ਸ ࣻ೯ оמ