DevelopersPath / Make-Clean-Architecture

만들면서 배우는 클린 아키텍처 책을보면서 공부하는 레포지토리입니다.
1 stars 3 forks source link

Ch3 코드 구성하기 #6

Open InHyeok-J opened 2 years ago

ritty27 commented 2 years ago

port - in 과연 필요한가?? 제어 흐름의 방향이 어댑터와 도메인 코드 간의 의존성 방향과 같은 방향이기 때문이다.(p.30)

아웃고잉은 의존성 역전을 위해 필요하다. (기술적인 이유라고 생각함) -> 즉 책에서도 service가 포트보다 추상화 수준이 높다 AND 더 중요하고, 안정적인 클래스라고 생각한다. 그렇다면 인커밍 포트는 왜 필요할까?

책에 나와있듯이 진입점을 구분 짓는 것은 어댑터에서도 충분하다고 생각함

ritty27 commented 2 years ago

하위 도메인이 나왔을 경우 어디에 넣어야 할 것인가?

극단적인 예시로 Account 밑에 너무 클래스가 많아서 패키지를 분리해야 한다면 어떤식으로 분리 할 것인가? ex) Account 밑에 Remittance(송금) 도메인이 추가되어야 한다면, port, adapter 안에 다 하나씩 추가해야 하는 것인가?

InHyeok-J commented 2 years ago

@ritty27 port-in 은 5 장 55p에 간단하게 설명되어있긴 합니다. 어댑터와 유스케이스 사이에 DIP를 적용해서 간접계층(Port)를 적용한 이유는 2가지 인것 같은데

  1. application core가 외부와 통신할 수 있는 명세를 정확하게 구분하기 위해.(유지보수 향상 , 명확한 구분)
  2. 어댑터의 경우 인커밍, 아웃고잉 2가지 역할을 할 수 있고, 코어에서 Out going 하는걸, 의존성 방향을 올바르게 유지하기 위해 Out Port 사용