구현체 -> <<인터페이스>>가 보인다면, 그 인터페이스는 구현체가 필요로 하는 협력자일 가능성이 크다. 이 경우 그 인터페이스는 대체로 출력 포트이고, 구현체는 유즈케이스 또는 애플리케이션 서비스다. 즉, “이 기능이 필요하니 바깥에서 누군가 구현해 달라”는 의미에 가깝다.구현체 -|> <<인터페이스>>가 보인다면, 그 인터페이스는 구현체가 외부에 제공하는 유즈케이스 계약일 가능성이 크다. 이 경우 그 인터페이스는 대체로 입력 포트이고, 구현체는 유즈케이스 또는 애플리케이션 서비스다. 즉, “이 유즈케이스는 이 계약으로 호출할 수 있다”는 의미에 가깝다.<<인터페이스>>를 |>로 구현한다면, 그 인터페이스는 대체로 출력 포트이고 구현체는 어댑터다. 즉, 코어가 필요로 하는 협력을 외부 기술 요소가 구체화한 형태다.Hexagon A의 출력 포트를 구현하는 어댑터 -> Hexagon B의 입력 포트 같은 브리지 형태가 자주 나타난다. 이 경우 브리지 구현체는 양쪽 계약을 모두 알게 되므로, 각 헥사곤의 내부 도메인 타입이 상대 헥사곤에 직접 새지 않도록 전용 contract 타입이나 DTO를 두고 변환하는 편이 안전하다. 다만 이것이 항상 필수는 아니다. 같은 bounded context 안에서 동일 모델을 의도적으로 공유하는 경우라면 공통 타입을 쓰는 선택도 가능하다. 그래도 기본값은 분리와 매핑 쪽이 더 안전하다.parse me : 언젠가 이 메모에 쓰이면 좋을 것 같은 재료들입니다.
from : 이 메모에 쓰인 생각을 만든 과거의 생각들과 연관관계를 설명합니다.
supplementary : 이 메모에 작성된 생각을 뒷받침하는 새로운 메모입니다.
Noneopposite : 이 메모에 작성된 생각과 대조되는 새로운 메모입니다.
Noneto : 이 메모에 작성된 생각으로부터 발전된 생각의 메모입니다.