Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
웹 어플리케이션 설계와 구현 I - 요구사항 분석에 관하여
Search
Manjong Han
July 30, 2018
Programming
1
320
웹 어플리케이션 설계와 구현 I - 요구사항 분석에 관하여
Manjong Han
July 30, 2018
Tweet
Share
More Decks by Manjong Han
See All by Manjong Han
Git을 이용한 더 나은 버전관리
ibluemind
2
1.1k
웹 어플리케이션 설계와 구현 III - 소프트웨어 구현에 관하여
ibluemind
1
140
웹 어플리케이션 설계와 구현 II - 소프트웨어 설계에 관하여
ibluemind
1
240
Xamarin으로 모바일 앱 개발 빠르게 시작하기
ibluemind
1
250
AWS 클라우드 입문하기
ibluemind
2
430
Other Decks in Programming
See All in Programming
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
420
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
150
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
790
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
120
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
400
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
240
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
Select API from Kotlin Coroutine
jmatsu
1
190
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
380
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
410
エラーって何種類あるの?
kajitack
5
310
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Scaling GitHub
holman
459
140k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Why Our Code Smells
bkeepers
PRO
337
57k
Music & Morning Musume
bryan
46
6.6k
Rails Girls Zürich Keynote
gr2m
94
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
4 Signs Your Business is Dying
shpigford
184
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Making Projects Easy
brettharned
116
6.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Transcript
ਢ যܻா࣌ ࢸ҅৬ ҳഅ I - ਃҳࢎ೦ ࠙ࢳী ҙೞৈ 2018.07.30
@ೠࣁࢎߡࠁউҊ١Ү ٚۑ CTO ೠ݅ઙ
ࣗਝযۆ? • ࢎۈ ೞ٘ਝযܳ زदఃӝ ਤ೧ ࢎਊೞח ࣻױ • ࠁܳ
ੋध, ࠙ࢳ, ೞח ೡਸ ࣻ೯ • ஹೊఠ৬ ࣗాೞݴ ই٣যܳ पഅೞҊ নೠ ޙઁܳ ೧Ѿೞח بҳ
ࣗਝযۆ?
ࣗਝযۆ? • ӝמ ࠙ܨ
ࣗਝযۆ? • ׳ ߑधী ٮܲ ࠙ܨ - ಁః SW ‣
SW সীࢲ ਵ۽ ࢸ҅ೞৈ ࢚সਵ۽ ౸ݒೞח ࣗਝয ‣ MS ਦب, MS য়ೖझ, ೠஹয়ೖझ, যب࠺ CC, ... - ޙഋ SW ‣ ౠ Ҋё(ӝস) ਃҳܳ ݅दఃӝ ਤ೧ ઁೠ ࣗਝয ‣ SI(दझమ ా) ۽ં, ߬٣٘ SW, ...
ࣗਝয ѐߊۆ? • ۽షఋੑ(prototype) • োҳ ࢤޛ(R&D) • ࢚ಿചػ ಁః(production)
ࣗਝয ѐߊۆ? • ୭ઙ ࢎਊо ࢎਊೡ ࣻ ח ࣻળ ৮ࢿبо
ы୶যח दӝ ࢚ • ࢚۽ زغ ঋѢա ࢚ೞ ঋও؍ য়زਸ ୭ࣗച
ࣗਝয ѐߊۆ? • ୭ઙ ࢎਊо ࢎਊೡ ࣻ ח ࣻળ ৮ࢿبо
ы୶যח दӝ ࢚ • ࢚۽ زغ ঋѢա ࢚ೞ ঋও؍ য়زਸ ୭ࣗച ࢤࢿ ಿ
ࣗਝয ѐߊۆ? • “ࣗਝয ਤӝ(software crisis)” - ഛೞҊ ೧ೡ ࣻ
Ҋ, Ѩૐ оמೠ ஹೊఠ ۽Ӓ۔ਸ ࢿೞח Ѫ ݃ա য ۰оܳ ڷೞח ݈ - दझమ ӏݽചী ٮܲ ࣗਝয न܉ࢿ ೞ, ѐߊ࠺ ૐ, ҅ദ ো - ߑউ ‣ ҕ Ӕ(নೠ ߑߨۿ) ‣ ળച(ࢎਊࢿ ૐ, ݽٕച) ‣ زച بҳ ࢎਊ
ࣗਝয ѐߊۆ? • “ࡄ ജ হ(No silver bullet)” - Frederick
P. Brooks, 1986. - ࣗਝয ѐߊ ࠂࢿਸ ೠߣী ೧Ѿೡ ݃ߨ(ࡄ ജ) হ - ߑউ ‣ ࣗਝযܳ ٜ݅ ঋҊ, ࣗਝয ઁಿਸ ҳݒೠ ‣ ਃҳࢎ೦ ҳച, ࡅܲ ۽షఋೝ ‣ ѐߊ
ࣗਝয ѐߊۆ? • ױ҅ ۽ࣁझ - ࣗਝয ޙઁܳ ৈ۞ ױ҅۽
ա־য ೧Ѿೞח ߑध ਃҳࢎ೦ ࠙ࢳ ࢸ҅ ҳഅ పझ ਬࠁࣻ ҅ദ
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - જ Ѫਸ
ࡅܰҊ խ࠺হѱ ѐߊೞח Ѫਸ оמೞѱ - “о߶ ۽ࣁझ” - less document-oriented, code-oriented - ഋѢա ஏী ೠ Ѫ ইצ adaptive ೞҊ ҃ਵ۽
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - ਸ оѱ:
‣ ҕҗ بҳࠁ ѐੋҗ ࢚ഐਊਸ ‣ ನҚੋ ޙࢲࠁ زೞח ࣗਝযܳ ‣ ҅ড ഈ࢚ࠁ Ҋёҗ ഈ۱ਸ ‣ ҅ദਸ ٮܰӝࠁ ߸ചী ೞӝܳ
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - Extreme Programming(XP)
‣ Test-Driven Development ‣ Pair Programming ‣ Continuous Integration ‣ Refactoring
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - Scrum ‣
Backlog ‣ Sprint (Iteration) ‣ Scrum Master ‣ Scrum Meeting
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - Kanban ‣
Card ‣ WIP Limit ‣ Kaizen
ࣗਝয ѐߊۆ? • গੌ ࣗਝয ѐߊ ߑߨۿ - Lean ‣
MVP ‣ Build - Measure - Learn
ਃҳࢎ೦ ࠙ࢳ • ‘যڌѱ(How)’о ইפۄ ‘ޖਸ(What)’ী ୡ • ‘೧Ѿߑߨ’ ઁदо
ইפۄ ‘ޙઁ’ܳ • ࣗਝযо ޖਸ ਤ೧ ਃೠ ഛ ೧ • ೧ೠ Ѫਸ ܲ ѐߊীѱ ഛ ׳ • दझమ ѐߊ ߑೱ ҙܻܳ ਤ೧ ਃ
ਃҳࢎ೦ ࠙ࢳ
ਃҳࢎ೦ ࠙ࢳ • ࢎਊח زೞח SWܳ ࠁӝ ীח पઁ۽ न
ޖਸ ਗೞח ঌ ޅೠ. • ߓ҃ ध ର, ਊয ࠛੌ ١ ࢎ ࣗా য۰ਸ ೧Ѿ೧ঠ ೠ. • ੌߑੋ ࢎࣗాࠁ ҕхਸ ా೧ࢲ SWо ೧Ѿೞ۰ח ޙઁܳ ೧ೠ. • ࢎਊ৬ ѐߊ р Ѽ ରܳ ગഃ ࢲ۽ ժٙ оמೠ ݾܳ ࣁਕঠ ೠ.
ਃҳࢎ೦ ࠙ࢳ • ਃҳࢎ೦ ࣻ(୶) ߑߨ - ੋఠ࠭: ചܳ
ా೧ ࣗਝযо যڌѱ ز೧ঠ ೞחী ೠ Ѽਸ ٛ ח ߑߨ - ҙ: ࣗਝযо ਃೠ അীࢲ সޖ ژח ۽ࣁझо যڃ ߑߨਵ۽ ೯غҊ ח ெࠁח ߑߨ - ࠳ۨੋझష߁: ࣗࣻ ੋਗ ӏਸ ࣁਕ ৈ۞ ই٣যо ઁदؼ ࣻ ب۾ ਸ ೯ೞৈ ೖ٘ߔਸ ܻೞח ߑߨ - ۽షఋೝ: ࢚غח ઁಿ زೞח ݽणਸ ݽഋਵ۽ ٜ݅যࢲ ܻ ೖ٘ߔਸ ߉ӝ ਤೠ ߑߨ
ਃҳࢎ೦ ࠙ࢳ • Oven(https://ovenapp.io)ਸ ਊೠ ۽షఋೝ पण
ਃҳࢎ೦ ࠙ࢳ • ਃҳࢎ೦ ݽ؛݂ - ҳઑ ࠙ࢳ(structured analysis) ߑߨ:
ؘఠ ܴਸ बਵ۽ ݽٕചೞৈ ӝמ ҙਵ۽ दझమਸ അೞח ߑߨ - ёೱ ࠙ࢳ(object-oriented analysis) ߑߨ: ؘఠ৬ ۽ࣁझܳ ೣԋ ङച ೠ ёܳ ױਤ۽ दझమਸ അೞח ߑߨ
ਃҳࢎ೦ ࠙ࢳ • ёೱ ࠙ࢳ(Object Oriented Analysis, OOA) - ࢎਊ
ਃҳࢎ೦ਸ ࠙ࢳೞৈ ਃҳػ ޙઁ৬ ҙ۲ػ ݽٚ ېझ(ё), ҙ۲ ࣘࢿ ߂ ো, ё р ҙ҅١ਸ ೞৈ ݽ؛݂ೞח Ѫ - ޙઁ ীࢲ ёա ѐ֛ٜਸ ইࢲ ӝࣿೞחؘ ਸ ك.
ёೱ ࣗਝয ѐߊ • ҳઑ SW ѐߊ ߑߨۿ - ҳઑ
࠙ࢳ(Structured Analysis) - ҳઑ ࢸ҅(Structured Design) - ҳઑ ۽Ӓې߁(Structured Programming) • ёೱ SW ѐߊ ߑߨۿ - ёೱ ࠙ࢳ(Object Oriented Analysis, OOA) - ёೱ ࢸ҅(Object Oriented Design, OOD) - ёೱ ۽Ӓې߁(Object Oriented Programming, OOP)
ёೱ ࣗਝয ѐߊ • ёೱ ۽Ӓې߁(Object Oriented Programming, OOP) -
۽Ӓ۔ਸ ৈ۞ ѐ ة݀ػ ױਤ, “ё”ٜ ݽਵ۽ ঈೞҊ ೞח Ѫ - “ஹೊఠ ۽Ӓ۔ਸ അप ࣁ҅ী ࡁয ղմ ѐߊ ߑߨ” - ۽Ӓې߁ਸ ؊ ߓӝ औѱ ೞҊ ࣗਝয ѐߊҗ ࠁࣻܳ рಞೞѱ ೞݴ, ࠁ ҙੋ ٘ ࠙ࢳਸ оמೞѱ ೞח ਸ ыҊ . - ۽Ӓ۔ਸ ਬোೞҊ ߸҃ ਊೞѱ ٜ݅ӝ ٸޙী ӏݽ ࣗਝয ѐߊী ݆ ࢎਊػ.
ёೱ ࣗਝয ѐߊ • ёೱ ۽Ӓې߁(Object Oriented Programming, OOP) -
ё(object) ‣ data + operation on data ‣ instance of class - ېझ(class) ‣ description, abstraction - ݫࣁ(message) ‣ ё р ࢚ഐ ਊ(ݫࣗ٘ ഐ) ࣻױ
ёೱ ࣗਝয ѐߊ • ёೱ ۽Ӓې߁(Object Oriented Programming, OOP) -
୶࢚ച(abstraction) ‣ ࢚ࣁೠ ղਊਸ ऀӝҊ ೨बੋ ࠗ࠙(ౠ)ਸ ъઑೞৈ ݽ؛ച - ङച(encapsulation) ‣ ࠁ ץਸ ా೧ ё р Ѿبܳ хࣗदெ ਬࠁࣻ ਊ, ࢎਊࢿ ૐ - ࢚ࣘࢿ(inheritance) ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ ӝמਸ ࢎਊೞৈ ഛೡ ࣻ ب۾ ೲਊ - ഋࢿ(polymorphism) ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ ઁҕೞח ߑߨਸ ా೧ Ҋਬೠ زਸ ࣻ೯ оמ
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