728x90
비즈니스 코드를 기술코드로부터 분리한다고 하는데 비즈니스 코드는 무엇이고 기술 코드는 무엇인가
비즈니스 규칙을 도메인 핵사곤에 캡슐화 했다고 하는데 그 뜻이 무엇인가. 그전에, 비즈니스 규칙이란 무엇인가
유스케이스와 입력포트, 출력포트의 관계는 Service-ServiceImpl 관계로 보이는데 무언가 차이가 있는건가?
출력포트를 통해 외부 데이터를 받는다. -> 외부로부터 데이터를 출력 받는다는 의미?
도메인 헥사곤
실제 세상의 문제를 이해하고 모델링하는 활동을 나타냄
기술에 구애받지 않는 형태로 표현되어야 함
중요 비즈니스 데이터와 규칙 관련 엔티티들이 있는데 이들이 실제 문제에 대한 모델을 나타냄
엔티티와 값객체로 구분될 수 있음.
애플리케이션 핵사곤
애플리케이션 특화 작업을 추상적으로 처리하는 곳. 기술 관심사를 직접 다루지 않는다.
도메인 비즈니스 규칙에 기반한 소프트웨어 사용자의 의도와 기능을 표현
유스케이스, 입력포트, 출력포트로 구분할 수 있음
프레임워크 헥사곤
소프트웨어와 통신하는 곳.
드라이빙 방식과 드리븐 방식
드라이빙 : 입력 어댑터 사용
드리븐 : 출력 어댑터 사용
드라이빙은 소프트웨어에 동작을 요청하는 것이다 -> 내가 직접 운전(요청)하는 것 -> 사용자 혹은 사용자를 대신하는 프런트엔드 애플리케이션
입력 어댑터 상단에 구축된 API를 통해 통신이 발생한다.
드리븐은 애플리케이션에서 트리거 되고 내부 소프트웨어 요구사항을 충족시키기 위한 데이터를 외부에서 가져온다.
728x90