728x90

Clean Architecture 2

[SOLID] OCP (Open-Closed Principle)

# OCP란?확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 즉, 책임을 확실히 분리하도록 소스 코드 의존성을 확실히 조직화해야 한다. # 예시## 컴포넌트 관계는 단방향A 클래스 -> B 클래스라면, A 클래스는 B 클래스에 대한 의존성을 가지고 있지만 B 클래스는 A 클래스에 대해 전혀 모르는 상태.(A 클래스가 수정되더라고 B 클래스는 수정되지 않음.) 나아가서 A 컴포넌트 -> B 컴포넌트라면, A 컴포넌트는 B 컴포넌트에 대해 의존하고 있음. 즉, A 컴포넌트에서 발생한 변경으로부터 B 컴포넌트가 보호됨. 위 그림을 예를 들면, Presenter에서 발생한 변경으로부터 Controller는 보호되고, Controller에서 발생한 변경으로부터 Interactor가 보호됨. ## 방향성 ..

Clean Architecture 2024.06.18

[SOLID] SRP (Single Responsibiliy Principle)

# SRP (단일 책임 원칙)이란?하나의 모듈은 하나의 액터에 대해서만 책임져야 한다. 즉, 응집성이 높아야 한다.[참고] 응집성(cohesive)이란, 단일 액터를 책임지는 코드를 함께 묶어주는 정도를 뜻한다. # SRP를 위반할 경우코드를 수정할 때, 관련 없는 액터에게도 영향을 미친다.코드 머지 시 충돌이 발생할 확률이 높아진다. # SRP를 위반한 예시calculatePay() 메서드는 회계팀에서 기능을 정의. CFO 보고를 위해 사용reportHours() 메서드는 인사팀에서 기능을 정의. COO 보고를 위해 사용save() 메서드는 DBA가 기능을 정의. CTO 보고를 위해 사용calaulatePay() 메서드와 reportHours() 메서드는 내부에서 regularHours() 메서드를 ..

Clean Architecture 2024.06.17