transaction

    트랜잭션이란?

    회사에서 최근 업무를 진행하면서 트랜잭션을 사용하는 일이 매우 많다. 현재 MongoDB를 이용하여 개발하고 있는 프로젝트에서 트랜잭션을 사용하고 있는 이유는 아래와 같다. 대용량의 데이터를 벌크로 처리해야하는 경우가 많은데, 이 때 하나의 데이터라도 유효하지 않거나 실행 중 실패가 발생한다면 모든 처리 내용을 롤백 시켜야 함 여러 사람들이 하나의 데이터에 동시에 접근하여 수정을 가하는 경우가 발생할 확률이 기획 상 매우 높음 여러 컬렉션에 위치한 여러 도큐먼트에 대한 삽입이나 수정이 하나의 서비스 로직에서 수행되는 경우가 많음 위와 같은 이유들로 트랜잭션을 진행하였고, 이들은 곧 트랜잭션으로 얻을 수 있는 가장 큰 장점들이다. 이렇게 개발 과정에서 어느 경우에 트랜잭션을 사용하는지는 알고 있지만, 이에..

    [Spring] Select에 @Transaction을 사용하는 이유

    '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 공부하던 중 궁금한 점이 생겨 이를 정리하고자 한다. @Transactional(readOnly = true) public List findAllDesc(){ return postsRepository.findAllDesc().stream()// postsRepository의 결과로 넘어온 Posts의 stream을 .map(PostsListReponseDto::new) // map을 통해 PostsListResponseDto로 변환하고 .collect(Collectors.toList()); // 이를 List로 반환하는 메소드 } 위의 코드를 보면, DB에서 posts들을 Select하는 메서드이다. 하지만 @Transactional(readOnly ..