Spring으로 테스트코드를 작성하다 보면 한 번쯤은 이런 고민을 하게 된다. (안 했으면 죄송함다)“테스트에 @Transactional 붙여야 하나? 붙이면 자동 DB 데이터 rollback 되이서 편하긴 한데..” 어떤 글은 “무조건 붙여라”고 하고,어떤 글은 “절대 쓰지 말라”고 한다.그래서 더 헷갈린다. 결론부터 말하면 정답은 없다.대신 용도에 따라 명확히 갈린다. 이 글에서는@Transactional이 정확히 어떤 역할을 하는지테스트에서 사용할 때의 진짜 장점과 진짜 단점실무에서 언제 쓰고, 언제 피해야 하는지를 정리해보려고 한다.@Transactional 의미@Transactional은 Spring이 제공하는 선언적 트랜잭션 관리 어노테이션이다.해당 메서드(또는 클래스)는 트랜잭션 경계 안에서..