본문 바로가기

Architecture/Clean Architecture3

[Clean Architecture] 3. 설계원칙 - (3) OCP (개방-폐쇄 원칙) 개방 폐쇄 원칙(OCP)라는 용어는 1988년 버트란트 마이어가 만들었습니다 소프트웨어 개체는 확장에 열려 있어야 하고, 변경에는 닫혀 있어야 합니다 소프트웨어 아키텍처를 공부하는 가장 근본적인 이유가 바로 이 때문입니다 만약 요구사항을 살짝 확장하는 데 소프트웨어를 엄청나게 수정해야 한다면, 그 시스템 아키텍트는 엄청난 실패입니다 아키텍처를 공부하기 시작한 지 얼마 안된 사람들 대다수는 OCP를 클래스와 모듈을 설계할 때 도움되는 원칙이라고 알고 있습니다 하지만 아키텍처 컴포넌트 수준에서 OCP를 고려할 때 훨씬 중요한 의미를 가집니다 사고 실험 한 예를 통해 보도록 합시다 재무제표를 웹 페이지에 보여주는 시스템이 있습니다 웹 페이지에 표시되는 데이터는 스크롤할 수 있으며, 음수는 빨간색으로 출력합니다.. 2021. 9. 12.
[Clean Architecture] 3. 설계원칙 - (2) SRP (단일 책임 원칙) 역사적으로 SRP는 아래와 같이 기술되어 왔습니다 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다 SRP를 정의는 아래처럼 말할 수 있습니다 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다 (액터 : 해당 변경을 요청하는 한 명 이상의 사람들) (모듈: 소스파일) 징후 1 : 우발적 중복 Employee 클래스에 calculatePay(), reportHours(), save() 메소드를 가집니다 CFO, COO, CTO가 모두 이 클래스의 메소드를 사용합니다 현재 이 클래스는 SRP를 위반합니다 이 3가지 메서드가 서로 매우 다른 세 명의 액터를 책임지기 때문입니다 calculatePay()는 회계팀에서 기능을 정의하며, CFO 보고를 위해 사용합니다 reportHours().. 2021. 9. 12.
[Clean Architecture] 3. 설계원칙 - (1) SOLID? 좋은 아키텍처를 정의하는 원칙은 SOLID 입니다 좋은 소프트웨어 시스템은 깔끔한 코드로부터 시작합니다 좋은 벽돌을 사용하지 않으면 빌딩 아키텍처가 좋고 나쁨은 그리 큰 의미가 없습니다 반대로 좋은 벽돌로 빌딩 아키텍처를 엉망으로 만들 수 있습니다 좋은 벽돌로 좋은 아키텍처를 정의하는 원칙은 SOLID 입니다 SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 이들 클래스를 서로 결합하는 방법을 설명해줍니다 SOLID 원칙의 목적은 중간 수준의 소프트웨어 구조가 아래와 같도록 만드는데 있습니다 (중간 수준 : 프로그래머가 이들 원칙을 모듈 수준에서 작업할 때 적용할 수 있다는 뜻) 변경에 유연하다 이해하기 쉽다 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트 기반이 된다 SOLID .. 2021. 9. 5.