본문 바로가기

📙/Study17

[만들면서 배우는 클린 아키텍처] 03. 코드 구성하기 육각형 아키텍처를 직접적으로 반영하는 표현력 있는 패키지 구조를 소개한다.계층으로 구성하기       각 계층에 대해 전용 패키지를 만들었다.의존성 역전 원칙을 적용해서 domain.AccountRepository 인터페이스를 추가하고, persistence.AccountRepositoryImpl 구현체를 둠으로써 의존성이 domain 패키지에 있는 도메인 코드만을 향하도록 했다.  문제점- 애플리케이션 기능 조각이나 특성을 구분 짓는 패키지 경계가 없다.새로운 기능을 추가해야할 때 각 계층의 패키지에 클래스가 추가될 것이며 서로 연관되지 않은 기능들끼리 예상하지 못한 부수효과를 일으킬 수 있게 될 가능성이 크다.- 애플리케이션이 어떤 유스케이스들을 제공하는지 파악할 수 없다.특정 기능을 찾기 위해서는 .. 2024. 10. 6.
[만들면서 배우는 클린 아키텍처] 02. 의존성 역전하기 단일 책임 원칙 (Single Responsibility Principle, SRP)컴포넌트를 변경하는 이유는 오직 하나뿐이어야 한다. 만약 컴포넌트를 변경할 이유가 한 가지라면 우리가 어떤 다른 이유로 소프트웨어를 변경하더라도 이 컴포넌트에 대해서는 전혀 신경 쓸 필요가 없다. 변경할 이유라는 것은 컴포넌트 간의 의존성을 통해 너무 쉽게 전파된다. 점선 화살표처럼 전이 의존성이라고 하더라도 어떤 컴포넌트의 의존성은 각각 이 컴포넌트를 변경하는 이유 하나씩에 해당한다. 컴포넌트 A는 다른 여러 컴포넌트에 의존하는 반면 컴포넌트 E는 의존하는 것이 없다.컴포넌트 E를 변경할 유일한 이유는 새로운 요구사항에 의해 E의 기능을 바꿔야 할 때뿐이다. 반면 컴포넌트 A의 경우에는 모든 컴포넌트에 의존하고 있기 때.. 2024. 10. 5.
[만들면서 배우는 클린 아키텍처] 01. 계층형 아키텍처의 문제는 무엇일까? 계층형 아키텍처는 견고한 아키텍처 패턴이다.웹 계층에서는 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보낸다. 서비스에서는 필요한 비즈니스 로직을 수행하고, 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 영속성 계층의 컴포넌트를 호출한다. 장점 (계층을 잘 이해하고 구성한다면)웹 계층이나 영속성 계층에 독립적으로 도메인 로직을 작성할 수 있다.도메인 로직에 영향을 주지 않고 웹 계층과 영속성 계층에 사용된 기술을 변경할 수 있다.기존 기능에 영향을 주지 않고 새로운 기능을 추가할 수도 있다.잘 만들어진 계층형 아키텍처는 선택의 폭을 넓히고, 변화하는 요구사항과 외부 요인에 빠르게 적응할 수 있게 해 준다.문제점코드에 나쁜 습관들이 스며들기 쉽게 만들고 시간이 지날수록 소프트웨어를.. 2024. 10. 4.
728x90
반응형