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
객체지향의 사실과오해 책 리뷰
Search
Len Kim
May 19, 2019
Programming
1
83
객체지향의 사실과오해 책 리뷰
책 읽고 리뷰 발표한 자료.
Len Kim
May 19, 2019
Tweet
Share
More Decks by Len Kim
See All by Len Kim
오늘도 여러분의 API 는 안녕하신가요? - 김정규(인프콘2023)
lenkim
0
48
Hands-on-Machine-Learning Book Review
lenkim
1
19
Other Decks in Programming
See All in Programming
LLMチャットボットのアプリケーション設計Tips
os1ma
4
660
自動テスト実行結果の目的を整理する / Organizing objectives of automated test results
twada
PRO
10
2.1k
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
150
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
9
2.4k
Learning PHP and Static Analysis with PHP Parser
inouehi
1
250
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
2
220
object-oriented-conference-2024
fuwasegu
6
1.9k
[スクリプト] Swiftの型推論を学ぼう
omochi
0
120
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
24
7.5k
Open Source Swiftc Workshop
kitasuke
1
290
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
イベントストーミングによるオブジェクトモデリング・オブジェクト指向プログラミングの適用・開発プロセスの変遷・アーキテクチャの変革 / Object modeling with Event Storming.
nrslib
12
3.1k
Featured
See All Featured
How to name files
jennybc
62
92k
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Git: the NoSQL Database
bkeepers
PRO
421
63k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Clear Off the Table
cherdarchuk
82
310k
Producing Creativity
orderedlist
PRO
335
39k
Optimizing for Happiness
mojombo
369
69k
Building a Modern Day E-commerce SEO Strategy
aleyda
15
6.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
Documentation Writing (for coders)
carmenintech
59
3.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Rails Girls Zürich Keynote
gr2m
91
13k
Transcript
r䟤ೱࢎपҗয়䞹s 䤠ೡ 䥣 䧗䢁
ӣӏ SFHVMBS -FO https://github.com/LenKIM !ӝࣿ
ܻח䟤ೱী೧ࢲ য٣өইחѦө SOLID? ङച? ഋࢿ? ୶࢚ച? OOP?
दցܳ ࢤпೞۄ. ח ࠗ࠙ ࠁ . - झ౭࠵ ࠺(Stephen R.
Covey) Ӓۢ ܻח৵䟤ೱਸ೧ঠغחо
ёೱ۽Ӓې߁ (Object-Oriented Programming) : ёೱۆ पࣁ҅ܳ Ҋ ҙਵ۽ ݽ؛݂ೡ ࣻ
ח ಁ۞ : ёೱۆ पࣁ҅ܳ Ҋ ҙਵ۽ ݽ؛݂ೡ ࣻ ח ಁ۞ 소프트웨어 시스템이 해결하려고 하는 실재는 잘해봐야 먼 친척밖에는 되지 않는다. - 버트란드 마이어(Bertrand Meyer) : ࢜۽ ࣁ࢚ਸ ହઑೞח Ѫ.
䟤ܳझझ۽ࢤпೞҊझझ۽Ѿೞח 䧔पࣁ҅ࢤݺী࠺ਬೞחਬח ࢚క৬೯ਤܳrङചsೞחࣗਝয৬䟤rਯࢿs ӒܻҊ 䧔पࣁ҅ࢎۈٜrঐޗੋডࣘҗݺदੋ҅ডsਸӝ߈ਵ۽䧗䢁ೞৈ ݾܳ׳ࢿ೧աоחҗrݫदsܳҊ߉ਵݴ ҕزݾܳ׳ࢿೞӝਤ೧r䧗䢁sೞח 䟤ٜҙ҅ܳ䣞ݺೞӝীೞӝೞݴ
पࣁ҅ࢎޛਸӝ߈ਵ۽ࣗਝয䟤ܳध߹ೞҊ ҳഅөযрחѐ䠺 䟤ೱࢸ҅೨बࢎ࢚ੋrোѾ৮䥅ࢿ TFBNMFTTOFTT sীೠౣ
ழೖਸ۽ٜযࠁ
$VTUPNFS $BTIFS #BSJTUFS
$VTUPNFS $BTIFS #BSJTUFS ழೖ ޙ ழೖ ઁઑ ழೖ ৮ࢿ ழೖ
৮ࢿ !䧗䢁 !࢚క৬೯زਸೣԋצਯੋ䟤 !䧗䢁җݫद !ݫࢲ٘৬ਯࢿ
$VTUPNFS $BTIFS #BSJTUFS ழೖ ޙ ழೖ ઁઑ ழೖ ৮ࢿ ழೖ
৮ࢿ ৈ۞ࢎۈزੌೠ䤠ೡਸࣻ೯ೡࣻ ࣚשੑী䞵न䟎ޙೠழೖח־оٜ࢚݅ٚҙ9 䤠ೡоמࢿਸೠ ࣚשੑী䞵நदযחоמ TVCTUJUVUBCMF 䥣ਸࣻ೯ೞחߑ䢲ਯਵ۽䣜ఖೡࣻ ਃਸ߉ࢎۈٜਃਸܻೞחߑ䢲ਸਬ܂ѱ䣜ఖೡࣻ ೠࢎۈزदীৈ۞䤠ೡਸࣻ೯ೡࣻ நदয৬߄ܻझఋۄחѐੋੋ䤠ೡਸਊ೧䧗䢁ҙ҅ܳޑࢎ೮݅ ೠࢎۈநदয৬߄ܻझఋ䤠ೡਸزदীࣻ೯ೞחѪоמ
Ӓېࢲ䟤ೱۆ 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해
시스템을 분할하는 방법. 자율적인 객체란 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 개체를 의미 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력하며, 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합. 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택.
ഴܕೠёೱࢸ҅оغӝਤ೧Ѣঠೡߣ૩ب٘ܳחېझ ҙীࢲݫदܳҊ߉חёҙਵ۽ࢎҊबਸജೞחѪ ਃೠѪযڃېझоਃೠооইפۄযڃёٜযڃݫदܳҊ߉ਵ ݴഈ۱ೞחоېझחёٜഈ۱ҙ҅ܳ٘۽ӝחبҳীࠛҗೞ ېझחёೱࣁ҅بदࢸ
ࣚש ё ߄ܻझఋ ё ۄݮ ݃ఃইژ ё ীझۨࣗ ё ಹ֢
ё ইݫܻ֢ ё ইݫܻ֢ ё ಹ֢ ё ۄݮ ݃ఃইژ ё ীझۨࣗ ё ࣚש ݫ౸ীࢲ ழೖܳ ࢶఖೡ ࣻ . ࣚש ߄ܻझఋীѱ ழೖܳ ޙೠ. ழೖܳ ઁઑೠ. Menu
ࣚש ݫ౸ ݫ ೦ݾ 4 ߄ܻझఋ ߄ܻझఋ
ழೖܳ ޙೞۄ. ݫ ܴ ࣚש ݫ ೦ݾਸ ইۄ ݫ ܴ
ݫ ೦ݾ ݫ౸ ழೖܳ ઁઑೞۄ ழೖ ݫ ೦ݾ ߄ܻझఋ ழೖ ࢤࢿೞۄ
ழೖܳ ޙೞۄ. ݫ ܴ ݫ ೦ݾਸ ইۄ ݫ ܴ ࣚש
ݫ ೦ݾ ݫ౸ ழೖܳ ઁઑೞۄ ழೖ ݫ ೦ݾ ߄ܻझఋ ழೖ ࢤࢿೞۄ
ழೖܳ ޙೞۄ. ݫ ܴ ࣚש ݫ ೦ݾਸ ইۄ ݫ ܴ
ݫ ೦ݾ ݫ౸ ழೖ ࢤࢿೞۄ ழೖܳ ઁઑೞۄ ழೖ ݫ ೦ݾ ߄ܻझఋ
ઁ೩ૉৡਵ۽पणਸ೧ࠁ
order(menuName, menu, barista) Customer choose(name):MenuItem Menu name price MenuItem cost()
getName() makeCoffee(menuItem):Coffee Barista <<create>> name price Coffee Coffee(name, price)
٘חࣁоҙਸݽفઁҕ೧ঠೠ ѐ䠺ҙ ݺࣁҙ ҳഅҙ Customer, Menu, MenuItem, Barista, Coffee ېझ
$VTUPNFS .FOV .FOV*UFN #BSJTUB $PGGFFېझ ېझੋఠಕझ 䧗䢁җҙ҅غח ېझղࠗҳഅ FY ېझݫࢲ٘৬ࣘࢿ
ੋఠಕझ৬ҳഅਸܻ࠙ೞۄ ݺࣁҙҗҳഅҙٍࢴৈഒۆझۣѱٜ݅݃ۄ ݺࣁҙ䥈ېझউੋஏݶ⬆ ҳഅҙ䥈ېझࠛউೠஏݶ⬇ ѐ֛ੋҙҗݺࣁҙࢎחӒۧѱਃೞঋ҃о݆݅ ݺࣁҙҗҳഅҙਸܻ࠙ೞחѪݒਃೞ݃౯۞<GPXMFSC>
2"хࢎפ ҡଳਵݶ 䥣җݫࣁ ୶࢚ച