(TIL) 20210905

2021. 9. 6. 00:38TIL(Today I learned)

반응형

📕Facts(한 것)


  • 클린 아키텍처 읽기 -> SDP 추가
  • 백준 문제풀기

 

📕Findings(배운것)


컴포넌트는 안정된 정도만큼만 추상화되어야 한다.

 

앞서 SDP(Stable Dependencies Principle) 원칙에 대해 공부하면서, 컴포넌트의 안정성에 대해 알아봤다.

그렇다면 컴포넌트가 안정적이면 항상 좋을까?

그렇지는 않다. 

컴포넌트가 안정적이라는 것은 그만큼 변경이 불가능하다는 소리와 같다.

그렇기 때문에 모든 컴포넌트가 안정적이어야 할 필요는 없는 것이다.

안정적인 컴포넌트도 있고, 불안정적인 컴포넌트도 존재해야 한다는 것인데,

이것들이 어떻게 존재하면 좋을까?

 

책에서는 변경 가능한, 즉 불안정한 컴포넌트가 안정된 컴포넌트에 의존하는 것이 이상적인 구조라고 설명한다.

하지만 늘 이상적인 구조로 설계가 되지는 않는다.

출처 : 클린아키텍쳐 책 발췌

 

첫 번째 그림에서 변경 가능한 두 컴포넌트가 stable 한 컴포넌트에 의존성을 두고 있고, Stable 한 컴포넌트는 Flexible 한 컴포넌트에 의존성을 두고 있다. 앞서 말했다시피 불안정한 컴포넌트가 안정된 컴포넌트에 의존성을 둔다고 했다.

그럼 우리는 Flexible 한 컴포넌트가 안정된 컴포넌트이길 바라겠지만, 안타깝게도 이름에 FLEXIBLE이라고 명시되어 있다. (아, 복병)

이는 SDP, 안정된 의존성 원칙에 위배되는 것이다. 그럼 어떻게 처리를 해야할까?

 

책에서는 이때 DIP, 의존성 역전 원칙을 적용하면 문제를 해결할 수 있다고 한다.

Stable 컴포넌트와 Flexible 컴포넌트 사이에 다른 컴포넌트 A를 만들고, Stable 컴포넌트는 A에 의존하고, Flexible 역시 A에 의존하게 되면 기존의 의존성을 끊을 수 있음과 동시에 안정된 상태의 컴포넌트에 의존할 수 있기 때문에 모든 의존성이 위에서 아래 방향, 즉 불안정한 방향에서 안정된 방향으로 흐르게 된다.

 

 

 

📕Feeling(느낀 점)


독서를 최소 격일로 이어오고 있다.

습관이 점점 되어가는 것 같다.(순간적으로 습관 만들기 사이트를 만들어 보는 것도 좋을 것 같다.)

 

내일부터 본격적으로 수업이 시작되기 때문에 예습과 복습을 철저히 해야겠다.

수업 전날 수업할 내용 읽기, 수업 들은 날, 들은 내용 정리하기!

 

📕여담


 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210910  (0) 2021.09.10
(TIL) 20210906  (0) 2021.09.06
(TIL) 20210903  (0) 2021.09.03
(TIL) 20210902  (0) 2021.09.03
(TIL) 20210901  (0) 2021.09.02