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
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
810
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
160
iOS開発スターターキットの作り方
akidon0000
0
240
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
The State of Fluid (2025)
s2b
0
160
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
120
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
kiroでゲームを作ってみた
iriikeita
0
160
あのころの iPod を どうにか再生させたい
orumin
2
2.4k
CEDEC2025 長期運営ゲームをあと10年続けるための0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~
akatsukigames_tech
0
130
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
140
エンジニアのための”最低限いい感じ”デザイン入門
shunshobon
0
110
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2k
Designing Experiences People Love
moore
142
24k
A designer walks into a library…
pauljervisheath
207
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
We Have a Design System, Now What?
morganepeng
53
7.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Docker and Python
trallard
45
3.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
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