문제 상황 같은 키를 가진 프로젝트를 생성하면 UNIQUE 제약조건에 의해 예외(DataIntegrityViolationException)가 발생한다. 4가지 방법 1. 서비스계층에서 flush + try catch 엔티티를 저장하고 unique key에 의해 중복이 감지되면, try catch를 통해 예외 변화를 하면 된다. flush를 해야하는 이유는 @Transactional 이 붙은 메서드에서 사용되는 CrudRepository의 save()와 saveAll()은 메서드를 호출할 때 바로 쿼리를 실행하지 않고 1차캐시에 우선적으로 저장했다가 메서드가 정상적으로 종료되면 커밋이 되어 실제 DB에 반영된다. try-catch 블럭 내부에서는 쿼리가 실행되지 않으니 잡아낼 DataIntegrityVio..