DevelopersPath / Make-Clean-Architecture

만들면서 배우는 클린 아키텍처 책을보면서 공부하는 레포지토리입니다.
1 stars 3 forks source link

Ch2 의존성 역전하기 #2

Open InHyeok-J opened 2 years ago

s-ryuri commented 2 years ago

(p13) 1. 단일 책임 원칙의 의미를 컴포넌트를 변경하는 이유는 오직 하나뿐이어야 한다.라고 썼는데. 여기서 오직 하나뿐이라는 의미?

(p13) 2. "아키텍처에서의 의미는 만일 컴포넌트를 변경할 이유가 한 가지라면 우리가 어떤 다른 이유로 소프트웨어를 변경하더라도 이 컴포넌트에 대해서는 전혀 신경 쓸 필요가 없다는 의미이다. 소프트웨어가 변경되더라도 여전히 우리가 기대한 대로 동작할 것이기 때문이다."

  1. 소프트웨어의 변경과 컴포넌트의 변경은 다른가..?
  2. 그리고 왜 소프트웨어를 변경해도 컴포넌트에 대해서는 전혀 신경 쓸 필요가 없을까.? image

정리

s-ryuri commented 2 years ago

(p15) "단일 책임 원칙을 고수준에서 적용할 때 상위 계층들이 하위 계층들에 비해 변경할 이유가 더 많다는 것을 알 수 있다."

  1. 고수준, 상위 계층, 하위 계층 의미 아마 의존성 관련 같기는 한데

    
    아래의 글을 읽다보면 고수준, 저수준이라는 단어가 자주 등장하는데 대략적으로 다음과 같다고 생각합니다.
  2. 고수준 : 상위 수준의 개념, 추상화된 개념

    • 예시: 데이터를 저장한다, 구역 배달료를 구한다
  3. 저수준 : 추상화된 개념을 실제 어떻게 구현할지에 대한 세부적인 개념

    • 예시: RDB에 데이터를 저장한다, 폴리곤 구역에 속한 배달건에 대해 배달료를 구한다
      
      ![image](https://user-images.githubusercontent.com/66999675/172317834-13107ae3-c276-4496-b816-14898fdb4666.png)
  4. 왜 상위 계층들이 변경할 이유가 더 많을까?

  5. 쌍따옴표 안에 있는 문장이 DIP를 적용하지 않았다는 가정하에 쓴 말일까?

정리 1, 2 고수준/저수준 과 상위/하위 계층 개념은 아예 다른 개념 image

s-ryuri commented 2 years ago

(p19) "JPA에서는 ORM이 관리하는 엔티티에 인자가 없는 기본 생성자를 추가하도록 강제하는데 이것이 바로 도메인 모델에는 포함해서는 안 될 프레임워크에 특화된 결합의 예." 무슨 의미일까..

s-ryuri commented 2 years ago

image

(p21) "왼쪽 어댑터는 애플리케이션 코어를 호출하기에 애플리케이션을 주도하는 어댑터, 오른쪽은 애플리케이션에 의해 호출되기에 애플리케이션에 의해 주도되는 어댑터이다" -> 호출하는 것과 호츨되는 것의 차이?

정리

  1. 포트와 어댑터 원래 뜻 그대로의 느낌
  2. 포트를 인터페이스로 구현하고 어댑터는 구현체로 구현