동시성 제어 테스트를 위해 테스트 코드작성을 하려고 계획을 했고 가장 처음 만난 문제는 동시성 제어는 단위테스트로 작성해야 하는가 통합테스트로 작성해야 하는가? 에 고민에 빠졌고동시성 제어는 멀티스레드 환경에서 테스트를 진행해야하고 단위테스트는 각 메서드나 함수 단위로
개선 전: 1461 ms동적 쿼리 적용 : 67ms기존 관리자 페이지를 호출 시 페이지를 호출하는 시간이 너무 오래걸리는 문제가 발생했고페이지 호출 시간 = 데이터의 개수 만큼의 페이지 지연이 발생되었다.군산오름 주차장 기준 1461ms 가 소요되었다.기존 로직의 흐름
키워드 검색주변 주차장 검색 + 주차장 유형 필터 포함: 쿼리 실행 속도를 측정한다.키워드 검색검색어 : 서울특별시청, 사려니숲길, 서울역, 강남역, 스타벅스 울산, 울산 스타벅스주변 주차장 검색서울특별시청 좌표를 기준으로 주변 주차장을 검색한다.(lo: 126.978
version 1, version 1-1예약 가능 여부를 확인하기 위해 예약시간에 해당하는 매시간마다 예약현황DB에서 예약정보를 찾고, 주차현황DB에서 출차여부를 확인한다. → 예약시간만큼 쿼리가 반복해서 실행되므로, 예약시간이 길어질수록 로직 실행 속도가 느려진다.
Case 1, Case 2 : 주차시간을 지켜 주차한 경우로, 보편적이고 일반적인 상황이라 가정한다.Case 3, Case 4 : 주차시간을 지키지 않은 경우로, 예외 상황이라 가정한다. → 일반적인 상황, 예외상황 모두 포함하여 version 2 가 예약차량 입차
예약 1\. 예약시작시간이 종료시간보다 늦게 입력된 경우 예외처리 \- NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.") 2\. 주차장 ID가 주차장 정보 DB에 없는 경우 예외처리 \- NOT_FO
최초검색 : 13724 ms조회로직 변경 : 7847msFetch Join 변경 : 319ms조회 쿼리 변경 : 256ms기본적인 검색기능을 구현했으며 카카오맵 API로 사용자 검색어에 대한 결과를 호출검색 결과가 있는경우 : 검색결과 0번으로 좌표를 반환검색 결과가
레디스 스핀락을 적용해서 동시성 제어를 진행합니다.스핀락 적용 코드 스핀락을 통해 동시성 제어를 시도했으나, 실패.10대 주차 가능한 주차장에 20개의 스레드가 동시에 입차를 요청시 15~19대의 차량이 입차에 성공 CPU과부하로 인한 redis 성능 저하로 동시성 처