°£Æí°áÁ¦, ½Å¿ëÄ«µå û±¸ÇÒÀÎ
ÀÎÅÍÆÄÅ© ·Ôµ¥Ä«µå 5% (39,100¿ø)
(ÃÖ´ëÇÒÀÎ 10¸¸¿ø / Àü¿ù½ÇÀû 40¸¸¿ø)
ºÏÇǴϾð ·Ôµ¥Ä«µå 30% (28,810¿ø)
(ÃÖ´ëÇÒÀÎ 3¸¸¿ø / 3¸¸¿ø ÀÌ»ó °áÁ¦)
NH¼îÇÎ&ÀÎÅÍÆÄÅ©Ä«µå 20% (32,920¿ø)
(ÃÖ´ëÇÒÀÎ 4¸¸¿ø / 2¸¸¿ø ÀÌ»ó °áÁ¦)
Close

Clean Architecture : A Craftsman's Guide to Software Structure and Design

¼Òµæ°øÁ¦

2013³â 9¿ù 9ÀÏ ÀÌÈÄ ´©Àû¼öÄ¡ÀÔ´Ï´Ù.

°øÀ¯Çϱâ
  • ÃâÆÇ»ç : Prentice Hall
  • ¹ßÇà : 2017³â 09¿ù 20ÀÏ
  • Âʼö : 0
  • ISBN : 9780134494166
Á¤°¡

51,440¿ø

  • 41,150¿ø (20%ÇÒÀÎ)

    1,240P (3%Àû¸³)

ÇÒÀÎÇýÅÃ
Àû¸³ÇýÅÃ
  • S-Point Àû¸³Àº ¸¶ÀÌÆäÀÌÁö¿¡¼­ Á÷Á¢ ±¸¸ÅÈ®Á¤ÇϽŠ°æ¿ì¸¸ Àû¸³ µË´Ï´Ù.
Ãß°¡ÇýÅÃ
  • 4/20(Åä) À̳» ¹ß¼Û ¿¹Á¤  (¼­¿ï½Ã °­³²±¸ »ï¼º·Î 512)
  • ¹«·á¹è¼Û
  • ÁÖ¹®¼ö·®
    °¨¼Ò Áõ°¡

    ¸ñÂ÷

    Foreword xv
    Preface xix
    Acknowledgments xxiii
    About the Author xxv
    Part I: Introduction 1
    Chapter 1: What Is Design and Architecture? 3
    The Goal? 4
    Case Study 5
    Conclusion 12
    Chapter 2: A Tale of Two Values 13
    Behavior 14
    Architecture 14
    The Greater Value 15
    Eisenhower's Matrix 16
    Fight for the Architecture 18
    Part II: Starting with the Bricks: Programming Paradigms 19
    Chapter 3: Paradigm Overview 21
    Structured Programming 22
    Object-Oriented Programming 22
    Functional Programming 22
    Food for Thought 23
    Conclusion 24
    Chapter 4: Structured Programming 25
    Proof 27
    A Harmful Proclamation 28
    Functional Decomposition 29
    No Formal Proofs 30
    Science to the Rescue 30
    Tests 31
    Conclusion 31
    Chapter 5: Object-Oriented Programming 33
    Encapsulation? 34
    Inheritance? 37
    Polymorphism? 40
    Conclusion 47
    Chapter 6: Functional Programming 49
    Squares of Integers 50
    Immutability and Architecture 52
    Segregation of Mutability 52
    Event Sourcing 54
    Conclusion 56
    Part III: Design Principles 57
    Chapter 7: SRP: The Single Responsibility Principle 61
    Symptom 1: Accidental Duplication 63
    Symptom 2: Merges 65
    Solutions 66
    Conclusion 67
    Chapter 8: OCP: The Open-Closed Principle 69
    A Thought Experiment 70
    Directional Control 74
    Information Hiding 74
    Conclusion 75
    Chapter 9: LSP: The Liskov Substitution Principle 77
    Guiding the Use of Inheritance 78
    The Square/Rectangle Problem 79
    LSP and Architecture 80
    Example LSP Violation 80
    Conclusion 82
    Chapter 10: ISP: The Interface Segregation Principle 83
    ISP and Language 85
    ISP and Architecture 86
    Conclusion 86
    Chapter 11: DIP: The Dependency Inversion Principle 87
    Stable Abstractions 88
    Factories 89
    Concrete Components 91
    Conclusion 91
    Part IV: Component Principles 93
    Chapter 12: Components 95
    A Brief History of Components 96
    Relocatability 99
    Linkers 100
    Conclusion 102
    Chapter 13: Component Cohesion 103
    The Reuse/Release Equivalence Principle 104
    The Common Closure Principle 105
    The Common Reuse Principle 107
    The Tension Diagram for Component Cohesion 108
    Conclusion 110
    Chapter 14: Component Coupling 111
    The Acyclic Dependencies Principle 112
    Top-Down Design 118
    The Stable Dependencies Principle 120
    The Stable Abstractions Principle 126
    Conclusion 132
    Part V: Architecture 133
    Chapter 15: What Is Architecture? 135
    Development 137
    Deployment 138
    Operation 138
    Maintenance 139
    Keeping Options Open 140
    Device Independence 142
    Junk Mail 144
    Physical Addressing 145
    Conclusion 146
    Chapter 16: Independence 147
    Use Cases 148
    Operation 149
    Development 149
    Deployment 150
    Leaving Options Open 150
    Decoupling Layers 151
    Decoupling Use Cases 152
    Decoupling Mode 153
    Independent Develop-ability 153
    Independent Deployability 154
    Duplication 154
    Decoupling Modes (Again) 155
    Conclusion 158
    Chapter 17: Boundaries: Drawing Lines 159
    A Couple of Sad Stories 160
    FitNesse 163
    Which Lines Do You Draw, and When Do You Draw Them? 165
    What About Input and Output? 169
    Plugin Architecture 170
    The Plugin Argument 172
    Conclusion 173
    Chapter 18: Boundary Anatomy 175
    Boundary Crossing 176
    The Dreaded Monolith 176
    Deployment Components 178
    Threads 179
    Local Processes 179
    Services 180
    Conclusion 181
    Chapter 19: Policy and Level 183
    Level 184
    Conclusion 187
    Chapter 20: Business Rules 189
    Entities 190
    Use Cases 191
    Request and Response Models 193
    Conclusion 194
    Chapter 21: Screaming Architecture 195
    The Theme of an Architecture 196
    The Purpose of an Architecture 197
    But What About the Web? 197
    Frameworks Are Tools, Not Ways of Life 198
    Testable Architectures 198
    Conclusion 199
    Chapter 22: The Clean Architecture 201
    The Dependency Rule 203
    A Typical Scenario 207
    Conclusion 209
    Chapter 23: Presenters and Humble Objects 211
    The Humble Object Pattern 212
    Presenters and Views 212
    Testing and Architecture 213
    Database Gateways 214
    Data Mappers 214
    Service Listeners 215
    Conclusion 215
    Chapter 24: Partial Boundaries 217
    Skip the Last Step 218
    One-Dimensional Boundaries 219
    Facades 220
    Conclusion 220
    Chapter 25: Layers and Boundaries 221
    Hunt the Wumpus 222
    Clean Architecture? 223
    Crossing the Streams 226
    Splitting the Streams 227
    Conclusion 228
    Chapter 26: The Main Component 231
    The Ultimate Detail 232
    Conclusion 237
    Chapter 27: Services: Great and Small 239
    Service Architecture? 240
    Service Benefits? 240
    The Kitty Problem 242
    Objects to the Rescue 244
    Component-Based Services 245
    Cross-Cutting Concerns 246
    Conclusion 247
    Chapter 28: The Test Boundary 249
    Tests as System Components 250
    Design for Testability 251
    The Testing API 252
    Conclusion 253
    Chapter 29: Clean Embedded Architecture 255
    App-titude Test 258
    The Target-Hardware Bottleneck 261
    Conclusion 273
    Part VI: Details 275
    Chapter 30: The Database Is a Detail 277
    Relational Databases 278
    Why Are Database Systems So Prevalent? 279
    What If There Were No Disk? 280
    Details 281
    But What about Performance? 281
    Anecdote 281
    Conclusion 283
    Chapter 31: The Web Is a Detail 285
    The Endless Pendulum 286
    The Upshot 288
    Conclusion 289
    Chapter 32: Frameworks Are Details 291
    Framework Authors 292
    Asymmetric Marriage 292
    The Risks 293
    The Solution 294
    I Now Pronounce You ... 295
    Conclusion 295
    Chapter 33: Case Study: Video Sales 297
    The Product 298
    Use Case Analysis 298
    Component Architecture 300
    Dependency Management 302
    Conclusion 302
    Chapter 34: The Missing Chapter 303
    Package by Layer 304
    Package by Feature 306
    Ports and Adapters 308
    Package by Component 310
    The Devil Is in the Implementation Details 315
    Organization versus Encapsulation 316
    Other Decoupling Modes 319
    Conclusion: The Missing Advice 321
    Part VII: Appendix 323

    Appendix A Architecture Archaeology 325
    Index 375
    Normal 0 false false false EN-US X-NONE X-NONE

    Ã¥¼Ò°³

    Practical Software Architecture Solutions from the Legendary Robert C. Martin ("Uncle Bob")

    By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin ("Uncle Bob") reveals those rules and helps you apply them.
    Martin's Clean Architecture doesn't merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you've come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you'll face--the ones that will make or break your projects.
    Learn what software architects need to achieve--and core disciplines and practices for achieving it
    Master essential software design principles for addressing function, component separation, and data management
    See how programming paradigms impose discipline by restricting what developers can do
    Understand what's critically important and what's merely a "detail"
    Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
    Define appropriate boundaries and layers, and organize components and services
    See why designs and architectures go wrong, and how to prevent (or fix) these failures
    Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager--and for every programmer who must execute someone else's designs.

    ÄÄÇ»ÅÍ ºÐ¾ß¿¡¼­ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥

      ¸®ºä

      0.0 (ÃÑ 0°Ç)

      100ÀÚÆò

      ÀÛ¼º½Ã À¯ÀÇ»çÇ×

      ÆòÁ¡
      0/100ÀÚ
      µî·ÏÇϱâ

      100ÀÚÆò

      0.0
      (ÃÑ 0°Ç)

      ÆǸÅÀÚÁ¤º¸

      • ÀÎÅÍÆÄÅ©µµ¼­¿¡ µî·ÏµÈ ¿ÀǸ¶ÄÏ »óÇ°Àº ±× ³»¿ë°ú Ã¥ÀÓÀÌ ¸ðµÎ ÆǸÅÀÚ¿¡°Ô ÀÖÀ¸¸ç, ÀÎÅÍÆÄÅ©µµ¼­´Â ÇØ´ç »óÇ°°ú ³»¿ë¿¡ ´ëÇØ Ã¥ÀÓÁöÁö ¾Ê½À´Ï´Ù.

      »óÈ£

      (ÁÖ)±³º¸¹®°í

      ´ëÇ¥ÀÚ¸í

      ¾Èº´Çö

      »ç¾÷ÀÚµî·Ï¹øÈ£

      102-81-11670

      ¿¬¶ôó

      1544-1900

      ÀüÀÚ¿ìÆíÁÖ¼Ò

      callcenter@kyobobook.co.kr

      Åë½ÅÆǸž÷½Å°í¹øÈ£

      01-0653

      ¿µ¾÷¼ÒÀçÁö

      ¼­¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù)

      ±³È¯/ȯºÒ

      ¹ÝÇ°/±³È¯ ¹æ¹ý

      ¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼­ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼­ ½Åû °¡´É

      ¹ÝÇ°/±³È¯°¡´É ±â°£

      º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É
      ´Ü, »óÇ°ÀÇ °áÇÔ ¹× °è¾à³»¿ë°ú ´Ù¸¦ °æ¿ì ¹®Á¦Á¡ ¹ß°ß ÈÄ 30ÀÏ À̳»

      ¹ÝÇ°/±³È¯ ºñ¿ë

      º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã
      »óÇ°À̳ª ¼­ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯/¹ÝÇ°Àº ¹Ý¼Û·á ÆǸÅÀÚ ºÎ´ã

      ¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯

      ·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
      (´ÜÁö È®ÀÎÀ» À§ÇÑ Æ÷Àå ÈѼÕÀº Á¦¿Ü)

      ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì
      ¿¹) È­ÀåÇ°, ½ÄÇ°, °¡ÀüÁ¦Ç°(¾Ç¼¼¼­¸® Æ÷ÇÔ) µî

      ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì
      ¿¹) À½¹Ý/DVD/ºñµð¿À, ¼ÒÇÁÆ®¿þ¾î, ¸¸È­Ã¥, ÀâÁö, ¿µ»ó È­º¸Áý

      ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì

      ·ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì

      »óÇ° Ç°Àý

      °ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½

      ¼ÒºñÀÚ ÇÇÇغ¸»ó
      ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó

      ·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© 󸮵Ê

      ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ

      (ÁÖ)KGÀ̴Ͻýº ±¸¸Å¾ÈÀü¼­ºñ½º¼­ºñ½º °¡ÀÔ»ç½Ç È®ÀÎ

      (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ ¸ðµç °Å·¡¿¡ ´ëÇÏ¿©
      (ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼­ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.

      ¹è¼Û¾È³»

      • ±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

      • Ãâ°í°¡´É ½Ã°£ÀÌ ¼­·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.

      • ±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.

      • ¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.

      • - µµ¼­ ±¸¸Å ½Ã 15,000¿ø ÀÌ»ó ¹«·á¹è¼Û, 15,000¿ø ¹Ì¸¸ 2,500¿ø - »óÇ°º° ¹è¼Ûºñ°¡ ÀÖ´Â °æ¿ì, »óÇ°º° ¹è¼Ûºñ Á¤Ã¥ Àû¿ë