본문 바로가기

ParkNav2

728x90
[ParkNav] 코어 로직 동시성제어 테스트 코드 작성 테스트 코드 작성 테스트 방법 선택 동시성 제어 테스트를 위해 테스트 코드작성을 하려고 계획을 했고 가장 처음 만난 문제는 동시성 제어는 단위테스트로 작성해야 하는가 통합테스트로 작성해야 하는가? 에 고민에 빠졌고 동시성 제어는 멀티스레드 환경에서 테스트를 진행해야하고 단위테스트는 각 메서드나 함수 단위로 테스트를 해야하기때문에 통합 테스트로 진행하기로 했다. 테스트 흐름 아래의 순서대로 로직을 작성했고 동시성제어는 성공적으로 작동했다. 하지만 문제점이 발생했다. 객체를 생성하여 실제 DB에 저장을 한다 저장 된 객체를 모두 불러온다. 동시성 제어 테스트를 위해 동시에 서비스 로직을 호출한다 입차가 성공한 수와 입차가 실패한 수를 모두 저장한다 입차 성공수와 입차 실패수가 모두 맞는지 검증한다 1차 문제.. 2023. 4. 27.
[ParkNav] QueryDSL을 이용한 관리자 페이지 성능개선 성능 개선 결과 개선 전: 1461 ms 동적 쿼리 적용 : 67ms 문제점 기존 관리자 페이지를 호출 시 페이지를 호출하는 시간이 너무 오래걸리는 문제가 발생했고 페이지 호출 시간 = 데이터의 개수 만큼의 페이지 지연이 발생되었다. 군산오름 주차장 기준 1461ms 가 소요되었다. 원인 기존 로직의 흐름에 문제가있었는데 다른 두 테이블의 데이터를 합쳐야 하고 검색조건에 맞는 결과만 내어줘야하기 때문에 두번의 DB호출에서 Pageable을 걸지 못했고 얻어온 데이터를 합치는 과정에서 검색조건을 필터링 했는데 그 결과 많은 쿼리 조회로 인해 페이지 조회가 느려진것이다. 기존 로직은 다음과 같다. 주차장의 모든 예약정보를 가져온다. 예약 정보 중 입차 한 기록이 있는지 DB에서 검색한다. 입차 했을경우 : .. 2023. 4. 27.

TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로