/////
Search
Duplicate
7️⃣

조회 전용 기능과 응용 서비스

: 서비스에서 조회 전용 기능(조회 전용 모델, DAO)를 사용하면 서비스 코드가 다음과 같이 단순히 조회 전용 기능을 호출하는 형태가 될 것이다.
public class OrderService { public List<OrderView> getOrderList(String ordererId) { return orderViewDao.selectByOrderer(ordererId); } } ...
Java
복사
: 서비스에서 수행하는 추가적인 로직이 없을뿐더러 단일 쿼리만 실행하는 조회 전용 기능이어서 트랜잭션도 필요 없다.
: 그런 경우라면 굳이 서비스를 만들필요 없이 표현 영역에서 바로 조회 전용 기능을 사용해도 문제가 없다.
public class OrderController { private OrderViewDao orderViewDao; @RequestMapping("/myorders") public String list(ModelMap model) { ... List<OrderView> orders = orderViewDao.selectByOrderer(ordererId); ... } }
Java
복사
: 응용 서비스를 항상 만들었던 개발자는 컨트롤러와 같은 표현 영역에서 응용 서비스 없이 조회 전용 기능에 접근하는 것에 기시감을 느낄 수 있음, 하지만 응용 서비스가 사용자 요청 기능을 실행하는 데 별다른 기여를 하지 못한다면 굳이 서비스를 만들지 않아도 된다.