'분류 전체보기' 카테고리의 글 목록 (5 Page)
공부정리_코딩

아키텍처
Clean Architecture 정리 - 4부 컴포넌트 원칙(1)
2025.06.21
이 단원에서 말하는 컴포넌트는 '릴리즈 단위'를 의미한다.어떤 컴포넌트에 어떤 클래스, 모듈을 포함시켜야 할까?책에서는 세 가지 원칙을 제시한다.REP (Reuse/Release Equivalence Principle): 재사용/릴리즈 등가 원칙CCP (Common Closure Principle): 공통 폐쇄 원칙CRP (Common Reuse Principle): 공통 재사용 원칙 REP: 재사용/릴리즈 등가 원칙하나의 컴포넌트로 묶인 클래스는 반드시 함께 릴리즈되어야 한다.클래스 하나만 변경되더라도, 전체 컴포넌트를 릴리즈해야 한다.모든 클래스는 같은 버전 번호로 관리되어야 하며, 동일한 릴리즈 문서에 포함되어야 한다.이 원칙을 따르면:릴리즈 버전으로 동일한 시점의 코드를 사용 중인지 확인할 수 있..
아키텍처
Clean Architecture 정리 - 3부 11장 의존성 역전 원칙
2025.06.15
의미기본적으로 컴포넌트는 다른 컴포넌트를 직접 참조하여 사용한다.예) A -> B (A가 B를 직접 참조)하지만 DIP에서는 다음과 같은 구조를 권장한다:A -> Interface 즉, 구체 클래스가 아닌 추상 인터페이스를 사이에 두고 의존한다.why? 구체 클래스보다 추상 인터페이스가 변동성이 낮다. 이 방향 전환, 즉 구체가 추상에 의존하는 구조가 바로 "의존성 역전(Dependency Inversion)"이다.의존성 역전을 고려하지 않아도 되는 경우매우 안정적이고 변동성이 없는 요소들에는 DIP를 적용하지 않아도 된다.예: String, int 같은 기본 타입, 운영체제 API, 플랫폼 API 등 변경될 가능성이 없다면 의존해도 된다.따라서 우리가 보통 개발하는 대부분의 비즈니스 로직 관련 클래스는..
아키텍처
Clean Architecture 정리 - 3부 10장 인터페이스 분리 법칙
2025.06.14
정의인터페이스가 다양한 역할(≠기능)을 처리하게 만드는 청사진이 되지 않도록, 역할 단위로 잘게 나누어야 한다는 뜻이다.인터페이스가 지나치게 클 때 발생하는 문제여러 객체가 하나의 인터페이스를 채택해 기능을 구현한다고 하자. 그런데 모든 객체가 그 인터페이스의 모든 기능을 사용하는 것은 아니다. 이런 상황에서 인터페이스가 일부 수정되면, 그 수정된 부분이 논리적으로 어떤 객체에는 전혀 필요 없는 것일 수 있다. 하지만, 해당 객체는 인터페이스를 구현하고 있기 때문에 코드상으로는 그 변경을 반영해야 한다. 결과적으로, 불필요한 의존성과 변경 전파가 발생하게 된다. 이는 유지보수를 어렵게 만든다.아키텍처 수준에서의 인터페이스 분리 법칙이 원칙은 단순히 객체의 메서드 인터페이스에만 국한된 이야기가 아니다. 모..
아키텍처
Clean Architecture 정리 - 3부 9장 리스코프 치환 원칙
2025.06.13
정의1988년 바바라 리스코프는 다음과 같은 치환 원칙을 제시했다.S 타입의 객체 o1 각각에 대응하는 T 타입 객체 o2가 있고, T 타입을 이용해서 정의한 모든 프로그램에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위 타입이다.쉽게 말하면, 부모 클래스의 객체가 사용되는 자리에 자식 클래스의 객체를 넣거나, 인터페이스를 구현한 객체가 사용되거나, REST API에서 계약된 포맷을 따르는 구현체가 사용되거나 하는 등, 특정 계약이나 역할을 정의하는 상위 존재를 따라 구현한 경우에는 그 치환이 시스템 동작에 영향을 주지 않아야 한다는 것이다.원칙을 지키지 않은 구조: 알림 전송기 예제아래는 알림을 전송하는 Notifier 클래스와 이를 확장한 EmailNotifier,..
아키텍처
Clean Architecture 정리 - 3부 8장 개방-폐쇄 원칙
2025.06.12
정의소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다.만약 새로운 요구사항을 반영하기 위해 기존 코드를 광범위하게 수정해야 한다면, 그 구조는 OCP를 위반하고 있는 것이다.단일 책임 원칙과 OCP기능을 잘게 나누고 각각의 책임을 분리하는 단일 책임 원칙(SRP)은 OCP를 실현하기 위한 선행 조건과 같다.SRP가 잘 지켜진 구조에서는 새로운 기능을 추가하더라도 기존 코드의 수정은 최소화된다. 책임의 분리가 확장의 단위를 만들어 주기 때문이다. 예시: 도서 추천 시스템한 온라인 서점에서 사용자가 책을 검색하면, 기본적으로 텍스트 기반 정보(제목, 저자, 요약)가 출력된다. 마케팅팀이 갑자기 말한다."추천 도서 섹션에서는 이미지와 키워드를 중심으로 더 시각적으로 보여주고 ..