문제
현재 User Model(service, dao)에서 팔로우 추가 및 삭제 기능을 처리하고 있다. 이 경우 loginUser 객체가 너무 비대해질 뿐만 아니라, 한 모델에 너무 많은 기능이 집중되어 유지보수가 어렵다는 문제점을 가지고 있다.
해결방법
Follow Model을 추가 생성하여 팔로우 관련 기능은 여기서 처리하도록 만든다. 특히 Servlet에서 로그인한 유저가 해당 태그/유저를 팔로우 했는지 여부는 FollowService를 찾도록 만든다. 이때 loginUser와 tag, user 정보를 파라미터로 넘겨준다. (get()
, findBy~()
)
- Follow Model 생성 (Dao, Service)
- FollowMapper에서 sql문 작성
- Follow Servlet 변경
- UserService가 아닌 FollowService 사용
- 태그와 유저로 분리되어 있는 followServlet을 병합한다.
artcle/detail.jsp
,user/detail.jsp
,tag/list.jsp
에서get(Map<String, Object> map)
을 호출하여 팔로우/언팔로우 버튼이 나오도록 수정- 리팩토링 결과에 맞게 User 모델 변경