본문 바로가기

Design

(27)
[Clean Architecture]SOLID 원칙 : 2.OCP 개방-폐쇄 원칙 OCP란? 소프트웨어 개체(artifact)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 이 말을 다시 적으면 "소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다" 라는 뜻이다. 소프트웨어에서 기능을 추가하려고하는데 시스템을 엄청 많이... 수정해야한다면, 이는 엄청난 실패이다. 이러한 상황을 피할 수 있는 설계가 OCP원칙을 따른 설계라고 할 수 있을 것이다. OCP는 단순히 클래스와 모듈 수준을 넘어 아키텍쳐는 더 중요한 의미를 가진다. OCP의 목표 시스템을 확장하기 쉬운 동시에 변경으로 인해 시스템이 너무 많은 영향을 받지 않도록 하는데 있다. 사고 실험 이번 장에서는 사고실험 예시로 나온 클래스 설계 도면을 보면서 OCP를 이해해 보도록 하자. (..
[Clean Architecture]SOLID 원칙 : 1.SRP 단일 책임 원칙 SRP 란? SRP란, 하나의 모듈은오직 하나의 액터(actor)에 대해서만 책임져야 한다는 원칙이다. SRP는 SOLID 원칙 중에서 의미 전달이 어려운 원칙이다. 단일 책임의 원칙이라고 하여 하나의 모듈은 단하나의 일만 해야한다는 의미가 아님에 주의하자. (이는 함수는 반드시 하나의 일만 해야한다는 원칙이다. 이는 커다란 함수를 작은 함수들로 리펙터링하는 더 저수준에서 사용. SRP와 혼동하지 말자!) SRP 원칙에 대한 설명에서 Actor는 이해관계자들이라고 생각하면 된다. 예를 들면 평가 모듈은 오직 평가 담당자(actor)에 대해서만 책임져야한다.(한 액터에 의한 수정이 다른 액터를 위한 모듈에 영향이 주어서안됨!) 모듈이란 무슨 뜻인가? 모듈이란 내가 이해하기 쉬운 언어로 함수와 데이터 구조로..
[Clean Architecture]SOLID 원칙 개론 좋은 소프트웨어를 만들기 위해서는 좋은 벽돌로 좋은 아키텍쳐를 정의하는 원칙이 필요하다. Clean Architecture는 좋은 벽돌을 만들기 위해서 SOLID원칙을 제시하고있다. SOLID 원칙은 다음을 설명해준다 함수와 데이터의 집합을 클래스로 배치하는 방법. 이 클래스들을 서로 결합하는 방법. SOLID의 목적은 한 문장으로 표현하자면 중간 수준의 소프트웨어 구조가 변경에 유연하고, 이해하기 쉬우며, 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 되어야한다. **중간 순의 소프트웨어 구조? : 모듈과 컴포넌트 수준의 내부에서 사용되는 소프트웨어 구조. SOLID 원칙 (https://en.wikipedia.org/wiki/SOLID) SRP : 단일 책임 원칙 Single Respon..