📘 클린 아키텍처 북스터디 정리입니다
📚 도서: 로버트 C. 마틴 《Clean Architecture》
🧑💻 목적: 올바른 설계에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 7월 ~ 매주 2장
단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다
Employee 클래스에 calculatePay, reportHours, save 등 액터가 다른 메서드들이 공존// 책임이 올바로 나눠진 예시
public class InvoicePrinter {
public void print(Invoice invoice) { ... } // 인쇄 역할
}
public class InvoicePersistence {
public void save(Invoice invoice) { ... } // 저장 역할
}
public class InvoiceManager {
public void print(Invoice invoice) { ... }
public void save(Invoice invoice) { ... }
public void email(Invoice invoice) { ... }
}
[Client] → [Facade] → [SubsystemA]
↘︎ [SubsystemB]
↘︎ [SubsystemC]
SRP는 서로 다른 액터가 의존하는 코드를 서로 분리하라고 말한다
단일 책임 원칙.
많이 들어본 용어이다.
코드를 책임에 따라 분리하라는 말은 많이 들어봤지만,
그 ‘책임’이란 것이 무엇인지는 사실 잘 와닿지 않았다.
책에서는 그 책임을 ‘액터(사용자와 이해관계자)’의 의존으로 설명했다.
결국 코드를 분리하는 기준은 단순히 기능이나 역할이 아니라,
누가 이 코드에 영향을 미치고, 변경을 요구하는가에 있다는 사실이 인상 깊었다.
앞으로는 코드를 작성하기 전에
먼저 사용자와 이해관계자가 누구인지 정의하고,
그들의 의존에 따라 책임을 나누는 연습을 해야겠다고 느꼈다.