포도가게의 개발일지

클린 아키텍처 3부 본문

개발일기

클린 아키텍처 3부

grape.store 2023. 9. 18. 00:37
반응형

개방폐쇄 원칙

 - 어떻게 왜 언제 발생하는지에 따라서 기능을 분리하고 저수준 컴포넌트에서 발생한 변경으로부터 고수준 컴포넌트를 보호할수있다. 음.. 오랜만에 생각해보니까

코드를 변경으로부터 보호하고 추가로확장한다도 있지만 책임역할의 구체적 변경이 협력에 영향을 주지않는다고 생각되는것을 까먹고있었네 그럼 최고 보호되어야하는얘는 협력 음 맞는듯.. 극은 진행되어야한다!

 

리스코프

예전에는 import 의존성까지는 고려하지않았는데 이제 서브타입을 import하는것도 의존성이 생겼다는것을 알았다. lsp는 아키텍처수준까지 확장할수있고 반드시 확장해야한다. 후후 worker에 이미 적용했습니다.

 

인터페이스분리법칙

오 오히려 동적타입언어가 결합도를 낮춰 유연하게 만들수있다는 관점이 신기하네요. import도 .interface처럼 쓸수있어서 그런거같은데. 필요 이상으로 많은것을 알게되는것은 해로운일이다.

 

의존성역전원칙

- 의존을 피할려는 목적은 변동선이 큰 애들때문이다. 인터페이스를 변경하지 않고도 구현체에 기능을 추가할수있는방법을 찾기위해노력하자.

 

15장 아키텍처란?

- 아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이며, 쉽게 이해하고, 개발하며, 유지보수, 쉬운 배포하게 해준다. 궁극적으로 시스템의 수명과 과련된 비용은 최소화하고 프로그래머의 생산성은 최대화 하는데 있다.

 

* 소프트웨어를 만든 이유는 기계의 행위를 빠르고 쉽게 변경하는 방법이 필요했기 때문이다.

* 신중한 아키텍트라면 고수준의 정책을 데이터베이스가 관계형인지, 분산형인지 계층형인지 flat파일인지 관련이 없도록 만들어야 한다.

* 고수준의 정책은 기술스택을 신경써서는 안된다.

* 요점은 세부사항에 몰두하지 않은 채 고수준의 정책을 만들 수 있다면, 세부사항에 대한 결정을 오랫동안 미루거나 연기할수있다.

* 다른 누군가 아니면 이미 결정된 기술스택이 있다면, 뛰어난 아키텍트라면 이러한 결정이 아직 내려지지 않은 것처럼 행동하며, 여전히 결정을 가능한 한 오랫동안 연기하거나 변경할수있는 형태로 시스템을만든다.

-> 좋은 아키텍트는 결정되지 않은 사항의 수를 최대화한다.

 

 

'개발일기' 카테고리의 다른 글

클린 아키텍처 2부  (0) 2023.08.19
클린 아키텍처 1부  (0) 2023.08.15
Docker 교과서  (0) 2022.11.27
[회고]오브젝트 OOP  (0) 2022.07.03
준비자료  (0) 2021.12.17
Comments