transaction의 음침한 면
트랜잭션을 건다는 것 → 그 Connection Pool을 DB서버에서 잡고 있는 것이다.
즉 트랜잭션이 많으면 많을수록 서버가 잡아야하는 Pool 개수도 많아져서 부담이 많이 되는 것이다.
그러므로 킬링 서비스가 아닌 이상 트랜잭션을 하는 것을 권장하지는 않는다. 물론 써야할 때는 써야한다. 근데 '돈', '개인정보' 같이 비즈니스적으로 매우 중요한 곳에만.
트랜잭션 서비스 내부에서 트랜잭션 서비스를 쓰는 경우
- 어떤 경우인가? - 전체를 롤백하지 않을 서비스인 경우. 그 내부 서비스가 롤백되더라도 전체에선 커밋하는 경우이다. 이 개념이 중요
- 전체 롤백이 필요한 경우, 상위 트랜잭션에서 try-catch로 잡아야한다.