예약예약시작시간이 종료시간보다 늦게 입력된 경우 예외처리NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.")주차장 ID가 주차장 정보 DB에 없는 경우 예외처리NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")로그인한 유저의
Case 1, Case 2 : 주차시간을 지켜 주차한 경우로, 보편적이고 일반적인 상황이라 가정한다.Case 3, Case 4 : 주차시간을 지키지 않은 경우로, 예외 상황이라 가정한다. → 일반적인 상황, 예외상황 모두 포함하여 version 2 가 예약차량 입차
version 1, version 1-1예약 가능 여부를 확인하기 위해 예약시간에 해당하는 매시간마다 예약현황DB에서 예약정보를 찾고, 주차현황DB에서 출차여부를 확인한다. → 예약시간만큼 쿼리가 반복해서 실행되므로, 예약시간이 길어질수록 로직 실행 속도가 느려진다.
최초검색 : 13724 ms조회로직 변경 : 7847msFetch Join 변경 : 319ms조회 쿼리 변경 : 256ms카카오맵 API로 사용자 검색어에 대한 결과를 호출검색 결과가 있는경우 : 검색결과 0번으로 좌표를 반환검색 결과가 없는경우 : 초기위치 ( 서울역
키워드 검색주변 주차장 검색 + 주차장 유형 필터 포함: 쿼리 실행 속도를 측정한다.키워드 검색검색어 : 서울특별시청, 사려니숲길, 서울역, 강남역, 스타벅스 울산, 울산 스타벅스주변 주차장 검색서울특별시청 좌표를 기준으로 주변 주차장을 검색한다.(lo: 126.978
레디스 스핀락을 적용해서 동시성 제어를 진행한다.스핀락 적용 코드 스핀락을 통해 동시성 제어를 시도했으나, 실패.10대 주차 가능한 주차장에 20개의 스레드가 동시에 입차를 요청시 15~19대의 차량이 입차에 성공 CPU과부하로 인한 redis 성능 저하로 동시성 처리
분산락은 스핀락과 달리 분산 환경에서 여러 서버 사이에서 락을 관리하기 위해 네트워크 통신을 필요로 합니다. 분산 환경에서 여러 서버 사이에서 락을 관리하기 위한 네트워크 통신은 로컬 네트워크보다 훨씬 느리기 때문에, 분산락을 이용할 경우 락 관리에 필요한 시간이 더