Dev/Test

· Dev/Test
문제 상황 재고가 감소되는 비즈니스 로직에 대해서 트랜잭션 처리를 해주고 비관적 락을 사용해 동시성 처리를 해주도록 해서 동시성을 제어하려고 로직을 짰다. 그리고 테스트를 통해 스레드풀을 생성해서 여러 스레드가 한번에 해당 트랜잭션에 접근하는 환경을 만들어 테스트를 하였다. 분명 Pessimistic Lock을 걸어서 해당 트랜잭션에 순차적으로 접근하도록 했다. 100개의 요청이 순차적으로 처리된다면 값은 0이 되어야 하는데 아래와 같이 순차적으로 처리가 되지 않았다. 어디선가 DB에 락이 제대로 걸리지 않았던가 트랜잭션 처리가 되지 않았거나 둘 중 하나의 문제인 것 같아서 어디가 문제인지 찾아보기로 했다. Pessimistic Lock 설정 위와 같이 쿼리와 함께 락 설정을 해주었다. 아래는 비즈니스 ..
· Dev/Test
👀 문제상황 mongoDB를 사용하는 도메인의 repository layer의 단위테스트를 하기 위해 테스트 코드를 짜려고 하는 상황이었다. @DataMongoTest 어노테이션을 붙이고 테스트 코드를 짜고 확인하려고 했는데 자꾸 에러가 떠서 테스트에 실패를 했다. 이 문제를 해결하기 위해 로그를 보니 다음과 같은 로그가 찍혀있었다. 나는 @DataJpaTest를 올린적이 없는데 왜 JPA metamodel을 요구하는 거지? 라고 생각했다. 그래서 프로젝트를 만지작 하기도 하고 블로그 글도 찾아보고 열심히 구글링 해보면서 왜 그런지 이유를 알게 되었다. @EnableJpaAuditing 기본적으로 Entity에 생성일자, 수정일자 등의 필드에 값을 넣으려면 LocalDate 클래스로 직접 넣어주는 방식으..
풋데브
'Dev/Test' 카테고리의 글 목록