Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
웹 어플리케이션 설계와 구현 III - 소프트웨어 구현에 관하여
Search
Manjong Han
August 01, 2018
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
웹 어플리케이션 설계와 구현 III - 소프트웨어 구현에 관하여
Manjong Han
August 01, 2018
More Decks by Manjong Han
See All by Manjong Han
Git을 이용한 더 나은 버전관리
ibluemind
2
1.2k
웹 어플리케이션 설계와 구현 II - 소프트웨어 설계에 관하여
ibluemind
1
270
웹 어플리케이션 설계와 구현 I - 요구사항 분석에 관하여
ibluemind
1
350
Xamarin으로 모바일 앱 개발 빠르게 시작하기
ibluemind
1
270
AWS 클라우드 입문하기
ibluemind
2
450
Other Decks in Programming
See All in Programming
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
190
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
120
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
5.7k
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
37k
XHTMLが残したもの
yosuke_furukawa
PRO
2
620
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
770
Building an Out-of-Order CPU
latte72
1
740
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Abbi's Birthday
coloredviolet
3
9.9k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Documentation Writing (for coders)
carmenintech
77
5.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Ethics towards AI in product and experience design
skipperchong
2
370
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Transcript
ਢ যܻா࣌ ࢸ҅৬ ҳഅ III - ࣗਝয ҳഅী ҙೞৈ 2018.08.01
@ೠࣁࢎߡࠁউҊ١Ү ٚۑ CTO ೠ݅ઙ
ёೱ ࣗਝয ѐߊ • ёೱ ۽Ӓې߁(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) ‣ ೞਤ ఋੑীࢲ ࢚ਤ ఋੑ ઁҕೞח ߑߨਸ ా೧ Ҋਬೠ زਸ ࣻ೯ оמ
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - Single
Responsibility Principle (SRP) ױੌ ଼ ਗ - Open-Closed Principle (OCP) ѐߑ ತࣧ ਗ - Liskov Substitution Principle (LSP) ܻझ ജ ਗ - Interface Segregation Principle (ISP) ੋఠಕझ ܻ࠙ ਗ - Dependency Inversion Principle (DIP) ઓ ਗ
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ױੌ
଼ ਗ (SRP) ‣ “ېझח ױ ೠ ѐ ଼ਸ оઉঠ ೠ.” ‣ “ېझܳ ߸҃ೞח ਬח ױ ೠ ѐৈঠ ೠ.”
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ױੌ
଼ ਗ (SRP) ‣ ೠ ېझী ࢲ۽ ܲ ਬ۽ ߸҃غח ଼ٜ ҕઓೞҊ ݶ SRPܳ ਤ߈ೞҊ ח ૐѢ ‣ ೧ ېझ п ݫٜࣗ٘ ־ҳী ೧ प೯غח ഛੋ റ ܻ࠙ ‣ ېझ ഐٜ ࢲ۽ ܲ ݫٜࣗ٘ਸ ࢎਊೠݶ, Ӓ ݫٜࣗ٘ пӝ ܲ ଼ী ࣘೡ оמࢿ ֫. ী ٮۄ ঌݏѱ ېझܳ ܻ࠙ೞب۾ ೠ.
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ѐߑ
ತࣧ ਗ (OCP) ‣ “ഛীח ৌ۰ যঠ ೞҊ, ߸҃ীח ײഃ যঠ ೠ.” ‣ “ӝמਸ ߸҃ೞѢա ഛೡ ࣻ ਵݶࢲ, Ӓ ӝמਸ ࢎਊೞח ٘ח ࣻغ ঋইঠ ೠ.” ‣ ӝמਸ ഛೞݶࢲب ӝמਸ ࢎਊೞח ӝઓ٘ח ߸҃غ ঋইঠ ೠ.
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ѐߑ
ತࣧ ਗ (OCP) ‣ ഛغח ࠗ࠙(, ߸ചೞח ࠗ࠙)ਸ ୶࢚ച೧ࢲ ೧Ѿ оמೞ. 1. ੋఠಕझܳ ਊೠ ୶࢚ച ߑߨ 2. ࢚ࣘਸ ਊೠ ࢚ਤ ېझ۽ ୶࢚ച ߑߨ
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ѐߑ
ತࣧ ਗ (OCP) ‣ ইې ҃ ࠗ࠙ OCPܳ ਤ߈ೞҊ ח ૐѢ. 1. நझਸ ೠ. (instanceof ࢎਊ) 2. ࠺तೠ if-else ࠶۾ ৈۤ ઓೠ.
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ѐߑ
ತࣧ ਗ (OCP) ‣ ߸ച৬ ҙ۲ػ ҳഅ(߸ചо ࢚غח ࠗ࠙)ਸ ୶࢚ചೞח Ѫ ೨ब ‣ OCPܳ ా೧ࢲ ߸҃ ਬোೣਸ ઁҕೡ ࣻ
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ܻझ
ജ ਗ (LSP) ‣ “࢚ਤ ఋੑ ёܳ ೞਤ ఋੑ ё۽ ജ೧ب ࢚ਤ ఋੑਸ ࢎਊೞח ۽Ӓ ۔ ࢚ਵ۽ ز೧ঠ ೠ.”
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ܻझ
ജ ਗ (LSP) ‣ OCPח ୶࢚ച(ੋఠಕझ ҳഅ)৬ ഋࢿ(࢚ࣘ)ਸ ా೧ ೧Ѿ ‣ LSPח OCPܳ ߉ח ഋࢿী ҙೠ ਗਸ ઁҕ
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ܻझ
ജ ਗ (LSP) ‣ ইې ҃ ࠗ࠙ LSPܳ ਤ߈ೞҊ ח ૐѢ. 1. ݺदػ ݺࣁীࢲ ߩযդ чਸ ܻఢೠ. 2. ݺदػ ݺࣁীࢲ ߩযդ ৻ܳ ߊࢤೠ. 3. ݺदػ ݺࣁীࢲ ߩযդ ӝמਸ ࣻ೯ೠ.
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ੋఠಕझ
ܻ࠙ ਗ (ISP) ‣ “ੋఠಕझח Ӓ ੋఠಕझܳ ࢎਊೞח ۄܳ ӝળਵ۽ ܻ࠙غযঠ ೠ .” ‣ “ۄח न ࢎਊೞח ݫࣗ٘ী݅ ઓ೧ঠ ೠ.”
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ੋఠಕझ
ܻ࠙ ਗ (ISP) ‣ ࢎਊೞ ঋח ੋఠಕझ ߸҃ী ೧ࢲ ߊࢤೞח ࠛਃೠ ೱ(ࣗझ ஹ ੌ ١)ਸ ݶ ISPܳ ਤ߈ೞҊ ח ૐѢ ‣ ۄ ੑীࢲ ࢎਊೞח ӝמ݅ ઁҕೞب۾ ੋఠಕझܳ ܻ࠙ ‣ ೞա ӝמী ೠ ߸҃ ৈܳ ୭ࣗച೧ળ.
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ઓ
ਗ (DIP) ‣ “Ҋࣻળ ݽٕ ࣻળ ݽٕ ҳഅী ઓ೧ࢲח উػ.” ‣ “ࣻળ ݽٕ Ҋࣻળ ݽٕীࢲ ೠ ୶࢚ ఋੑী ઓ೧ঠ ೠ.”
ёೱ ࣗਝয ѐߊ • ۽ߡ ݃౯ SOLID ਗ - ઓ
ਗ (DIP) ‣ ࣻળ ݽٕ ߸҃غ؊ۄب Ҋࣻળ ݽٕ ߸҃غ ঋইঠ ೠ.
ёೱ ࣗਝয ѐߊ • ёೱ ۽Ӓې߁ : ݽٕࢿ(modularity), ਬোࢿ(flexibility), ഛࢿ
(extensibility), ਬҙܻࢿ(maintainability) • “ಁఢ(pattern)”ਸ ా೧ ёೱ ۽Ӓې߁ ਸ पഅ - ٘ ױਤ(code level): ீ߭ ~ҳഅ ಁఢ, ۽ߡ ݃౯ ~Clean Code - ېझ ױਤ(class level): GoF ~٣ੋ ಁఢ, ݃౯ ۞ ~ܻಂష݂ - ಁః, ݽٕ ױਤ(package level): ীܼ ী߈झ ~Domain Driven Development, ݃౯ ۞ ~PoEAA
ёೱ ࣗਝয ѐߊ • GoF ٣ੋ ಁఢ - ࣗਝয ҳഅীࢲ
ߊࢤೞח ޙઁী ೠ ೧Ѿ ߑߨਸ ܻ - ёೱ য(C++, झށష)ܳ ӝ߈ਵ۽ ಁఢചػ ߑߨ - ࢤࢿ ಁఢ(Creational Pattern), ҳઑ ಁఢ(Structural Pattern), ೯ز ಁఢ (Behavioral Pattern)
ёೱ ࣗਝয ѐߊ • ীܼ ী߈झ Domain Driven Development -
Ҋё, ࠺ૉפझ, ਃҳࢎ೦ بݫੋਸ ੜѱ ݽ؛݂ೞҊ ҳഅೞӝ ए, ೧ೞӝ ए ҳઑ۽ ࣗਝযܳ ࢸ҅ೞӝ ਤೠ ߑߨ - بݫੋীࢲ ൔ ࢎਊغח ਊযܳ ӝ߈ਵ۽ ೠ Ubiquitous Language ࢎਊ - ೞਤ بݫੋ ೡ/ҙबࢎܳ बਵ۽, ઑਸ ӝળਵ۽ Bounded Context - بݫੋ ݽ؛ Entity, Value Object, Service, Aggregate ١ ਃࣗ۽ അ
Reference https://en.wikipedia.org/wiki/Unified_Modeling_Language http://contents.kocw.or.kr/document/lec/2011/33/04/Ch01.pdf http://byul124.cafe24.com/blog/wp-content/uploads/1/1059072550.pdf http://cjmyun.tripod.com/Knowledgebase/ConceptsOfObjectOriented.htm