JPA 2

동시 요청에 대해서는 Optimistic lock일까? Pessimistic Lock일까?

여러 유저에게 같은 데이터에 대해서 많은 요청이 들어왔을 때 일반적인 JPA사용에서는 일부 요청이 유실될 수도 있다고 합니다. 그런데, 이 일부 요청에 대해서는 항상 다 저장을 해야하는 상황도 오고 데이터를 수정시키지 않아야 할 경우도 있습니다. 저도 오늘 실무를 통해 경험을 했습니다. 오늘 실무를 통한 경험은 게시판에 있는 게시물의 조회 수 증가에 대한 예시가 될 것 같습니다. 게시판의 게시물을 동시다발적으로 누른다면, 조회 수는 모두 업데이트 해야 합니다. JPA의 일반적인 요청을 사용한다면, 일부 요청에 대해서 유실이 되어 조회 수가 업데이트가 안 될 수 있습니다. 하지만 모든 요청에 대해서 조회 수를 모두 업데이트 시켜줘야합니다. 이러한 문제를 해결하기 위해서는 JPA에서 낙관적 락(Optimis..

JPA 2021.07.29

@Transactional을 아시나요?

Spring을 공부하다보면 AOP(Aspect oriented programming) 라는 주제가 항상 나온다. 그 AOP라는 주제에 대해서 공부하다보면 가장 먼저 나오는 AOP의 주제는 바로 @Transactional을 구현하는 것이다. 해당 @Transactional을 구현하는 방법에 대해서는 토비님의 책 중에 토비의 스프링Vol1에서 AOP의 주제와 함께 세세하게 설명되어 있다. 오늘은 바로 @Transactional이 무엇인지에 대해서 설명하려고 합니다. @Transactional 이란? Spring에서 지원하는 트랜잭션 처리 Annotation. AOP로 구성되어 있으며, 직접적으로 Repository와 연결되어 작업되는 Service method에 @Transactional을 붙여주면, 처음에..

Spring 2021.03.21