SOLID원칙2 클린 아키텍처 8장, 9장, 10장, 11장 리뷰 8장 OCP : 개방폐쇄 원칙 소프트웨어 개채(artifact)는 확장에 열려 있어야 하며, 변경에는 닫혀 있어야 한다. 개체의 행위는 확장할 수 있어야 하지만, 이 때 산출물을 변경해서는 안된다. 사고 실험 A기능을 이용해 B형태로 보여주는 기능이 있다 이 때, B 형태에 추가적인 사항이 생겨 새로운 C 형태로 보여주는 기능이 추가 되어야 할 때 이상적인 코드 변경량 : 0 (변경되는 코드의 양을 최소화해야한다.) 위 그림에서 FinancialDataMapper은 구현관계를 통해, FinancialDataGateway를 알고 있지만, FinancialDataGateway는 FinancialDataMapper를 알지 못한다. : 인터페이스 : 데이터 구조 -> : 호출 관계 -ᐅ : 구현 / 상속 관계 .. 2022. 12. 28. 클린 아키텍처 6장, 7장 리뷰 6장 함수형 프로그래밍(FP) FP 패러다임의 람다(lambda)계산법으로 1930년 발명 정수를 제곱하기 리스프에서 파생한 클로저(Clojure)는 함수형 언어 Java는 가변 변수(Mutable Variable) 사용 - 가변 변수는 프로그램 실행중에 상태가 변할 수 있다. 클로저는 이러한 가변 변수 존재 X 함수형 언어에서는 변수는 한 번 초기화되면 절대로 변하지 않는다. 불변성(Immutable)과 아키텍처 가변 변수에 의해 아키텍처에서 발생하는 문제 Race Condition DeadLock 동시 업데이트(Concurrent Update) 아키텍트는 동시성(Concurrency) 문제에 대해 고려할 줄 알아야한다. 가변성의 분리 불변성과 관련하여 가변 컴포넌트와 불변 컴포넌트를 분리하는 것이 중.. 2022. 12. 25. 이전 1 다음