사람이 hit 클릭하면 -> 데이터 hitUp 해줘야함
사람이 like 클릭하면 -> 데이터 likeUp 해줘야함
그런데 좋아요 취소할 수도 있어야
-> 그래서 이런건 Toggle이라고 해주자. (업할수도 다운할수도 있게 - 사용자 행위가 그대로 묻어나는~)
//
* 주의 *
ServiceImp에는 Dao가 사용되는데,
막 이것저것 필요하다고 14, 18번째줄처럼 막 가지고 오면 안 된다.
NoticeService에서
getMember() 구현하려면 MemberService를 사용할 일이 생기겠지
이렇게 사용해야함!!!
서비스끼리 x (누가 제품인지 누가 부품인지 모르겠는 상태로 사용 xxxxx)
Q. NoticeController는 Service들 사용할 수 있을까?
-> 애매하다.
A거 사용하다가 갑자기 B거 보인다고 B 사용하면 안 됨. 병목화? 고립화? (병목현상 x 고립화시켜주기)
- A, B를 일을 하는 사람이라고 생각하면 이해하기 쉬움.
내가 만드는거 vs 남이 만드는거라고 생각하면 됨
- 서로 민폐끼치지 않도록
이러면 사용 가능
Dao를 중복해서 사용하더라도 이런 식이 옳다!!
NoticeController를 봐보자.
글을 누르면 저렇게 댓글 목록이 펼쳐지는걸 데이터에 마련해보고 싶다고 해보자.
-> 어떻게 해야할까?
jsp에서 데이터를 뽑아올 때는 <foreach> 안에서 뽑아왔는데, 이 안에서 또 다른 목록을 뽑는거라면...
Q. 이걸 실제 DB에서 어떻게 할까 ?
-> NoticeController에서 서비스를 만들 때 ~
Notice.java에 컬럭션 하나 추가
- pricate List<Comment> comments;
- 설정들 다시 바꿔주고~
NoticeServiceImp에서
- private CommentDao commentDao; (@Autowired까지)
notice에다가 setCommemnt를 담아주는 것
* 정리 *
이제 남은 부분 : 스프링 '트랜잭션'
- @Transaction 하나만 써주면 쉽게 처리해줄 수 있다.
cf) 용어들 : 역제어, DI, Dependency 등의 용어에도 익숙해져야 한다.
// "에러 많이 만나서 예측을 하는 습관을 들이다보면 숙달이 돼요"
79일 - @Transactional의 '전파 모드' & ACID 中 2) 고립도 설정 (0) | 2021.06.11 |
---|---|
78일 - AOP, Proxy, @Transactional, ACID 中 1) 원자성 테스트 (0) | 2021.06.10 |
78일 - 단위 테스트 (0) | 2021.06.10 |
78일 - 다수의 db 가져오기 <foreach> (0) | 2021.06.10 |
77일 - update 할 때의 <set>, 래퍼클래스로의 변환, 파일만 주는 테이블에 id 주기 intro (1) | 2021.06.09 |