ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클린 아키텍처 - 로버트 C. 마틴
    2022. 11. 8. 13:56
    728x90

    클린 아키텍처 (http://www.yes24.com/Product/Goods/77283734)

    소프트웨어 구조와 설계의 원칙

    로버트 C. 마틴 저/송준이 역 | 인사이트(insight) | 2019년 08월 20일 | 원제 : Clean Architecture: A Craftsman’s Guide to Software Structure and Design


    1. 설계와 아키텍처란?
      1. 어떠한 경우라도 개발 조직이 할 수 있는 최고의 선택은 조직에 스며든 과신을 인지하여 방지하고, 소프트웨어 아키텍처의 품질을 심각하게 고민하기 시작하는 것이다.
    2. 두 가지 가치에 대한 이야기
      1. 기능(행위)인가 아키텍처인가
      2. 아이젠하워 매트릭스
        1. 긴급한 문제는 중요하지 않으며, 중요한 문제는 절대 긴급하지 않습니다.
        2. 첫 번째 가치인 행위는 긴급하지만 매번 높은 중요도를 가지는 건 아니다.
        3. 두 번째 가치인 아키텍처는 중요하지만 즉각적인 긴급성을 필요로 하는 경우는 절대 없다.
    3. 패러다임 개요
      1. 구조적 프로그래밍
        1. 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
      2. 객체지향 프로그래밍
        1. 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
      3. 함수형 프로그래밍
        1. 할당문에 대해 규칙을 부과한다.
    4. 구조적 프로그래밍
      1. 아키텍처 관점에서는 기능적 분해를 최고의 실천법 중 하나로 여기는 이유이기도 하다.
      2. 가장 작은 기능에서부터 가장 큰 컴포넌트에 이르기까지 모든 수준에서 소프트웨어는 과학과 같고, 따라서 반증 가능성에 의해 주도된다.
      3. 소프트웨어 아키텍트는 모듈, 컴포넌트, 서비스가 쉽게 반증 가능하도록(테스트하기 쉽도록) 만들기 위해 분주히 노력해야 한다.
      4. 구조적 프로그래밍과 유사한 제한적인 규칙들을 받아들여 활용해야 한다.

    1. 객체지향 프로그래밍
    2. .
    3. SRP : 단일원칙
    4. OCP : 개방-폐쇄 원칙
      1. 목표는 시스템을 확장하기 쉬운 동시에 변경으로 인해 시스템이 너무 많은 영향을 받지 않도록 하는 데 있다.
    5. LSP : 리스코프 치환 원칙
      1. 위반하는 전형적인 문제 : 정사각형 <> 직사각형 문제
    6. ISP : 인터페이스 분리 원칙
      1. 의존성 문제
      2. 짐을 싫은 무언가에 의존하면 예상치도 못한 문제에 빠진다는 사실
    7. DIP : 의존성 역전 원칙
      1. 유연성이 극대화된 시스템이란 소스코드 의존성이 추상(Abstraction)에 의존하며 구체(Concretion)에는 의존하지 않는 시스템
      2. 변동성이 큰 구체 클래스를 참조하지 말라
      3. 변동성이 큰 구체 클래스로부터 파생하지 말라
      4. 구체 함수를 오버라이드 하지 말라
      5. 구체적이며 변동성이 크다면 절대로 그 이름을 언급하지 말라

    '' 카테고리의 다른 글

    훅(Hooked) 모델 - 니르 이얄  (0) 2022.11.08
    개발자의 글쓰기 - 김철수  (0) 2022.11.08
    소프트 스킬 - 존 손메즈  (1) 2022.11.08
Designed by Tistory.