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
漸進。
ssssota
0
1.8k
#QiitaBash TDDでAIに設計イメージを伝える
ryosukedtomita
2
1.7k
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
110
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
740
Agent Rules as Domain Parser
yodakeisuke
1
570
GoのWebAssembly活用パターン紹介
syumai
3
9.6k
Parallel::Pipesの紹介
skaji
2
900
Use Perl as Better Shell Script
karupanerura
0
690
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
650
從零到一:搭建你的第一個 Observability 平台
blueswen
1
810
単体テストの始め方/作り方
toms74209200
0
410
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
120
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
Designing for humans not robots
tammielis
253
25k
We Have a Design System, Now What?
morganepeng
52
7.6k
Thoughts on Productivity
jonyablonski
69
4.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
A designer walks into a library…
pauljervisheath
206
24k
Done Done
chrislema
184
16k
Why Our Code Smells
bkeepers
PRO
337
57k
Become a Pro
speakerdeck
PRO
28
5.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Designing Experiences People Love
moore
142
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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