본문 바로가기

Dev-/Spring

Controller에서 @Transactionl 이 필요하다면...?

Controller에서는 @Transactionl을 사용하면 안된다고 알고 있었습니다.


일단 작동이 되지 않는데,,

Controller는 '안내'만 하고, 비즈니스 로직Service에서 구현해야 하기 때문입니다.

(따로 억지로 설정을 해주면 됩니다.)



- 비즈니스 로직이란,

올바른 데이터를 리턴하기 위해 거쳐야 하는 여러가지 검사를 하는 로직을 말하는데,,

이 부분을 Service가 맡고 있습니다.


따라서 트랜잭션의 ACID를 지키기 위해 @Transactional을 붙이는 것입니다.


만약 Controller를 설정하다가,

@Transaction을 붙여야 할 것 같다는 느낌이 든다면,, 그 코드는 좋은 코드가 아니라고 합니다.

MVC가 제대로 적용되지 않았다는 표시라고 합니다..