티스토리 뷰

반응형

31장 웹은 세부사항이다.

UI와 애플리케이션 사이에는 추상화 가능한 또 다른 경계가 존재해야 한다. 애플리케이션의 업무 로직은 다수의 유스케이스로 구성되며, 각  유스케이스는  사용자를  대신해서  일부  함수를  수행하는  것으로 볼 수 있다. 각 유스케이스는 입력 데이터, 수행할 처리 과정, 출력 데이터를 기반으로 기술할 수 있고, 웹은 이와는 독립적으로 실행할 수 있도록 해야 한다.

 

32장 프레임워크는 세부사항이다.

프레임워크와 결합해서는 안된다. 결합도가 높아진다면 변경이 쉽지 않다. 적당한 거리를 두자. 프레임워크는 아키텍처의 바깥쪽 원에 속하는 세부사항으로 취급하자. 프레임워크가 아키텍처의 안쪽 원으로 들어오지 못하게 하라. 선택적으로 사용하자.

 

예를 들어 JAVA 스프링을 사용할 때에 @Autowired 어노테이션이 업무 객체 도처에 산재해서는 안된다. 업무 객체는 절대로 스프링에 대해 알아서는 안된다. 업무 객체보다는 main 컴포넌트에서 스프링을 사용해서 의존성을 주입하는 편이 낫다.....(?)

안 좋은 예 : https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring

 

How to Autowire business objects in Spring

I'm following the Controller -> Service -> DAO pattern. When I call a DAO implementation, I get back a DTO/Data object. Which then gets passed to the service layer, bringing together it's respective

stackoverflow.com

좋은 예 : https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html

 

[DAO] DAO, DTO, Entity Class의 차이 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

반응형
반응형