본문 바로가기

분류 전체보기61

728x90
[ParkNav] QueryDSL을 이용한 성능개선 문제점 기존 관리자 페이지를 호출 시 페이지를 호출하는 시간이 너무 오래걸리는 문제가 발생했고 페이지 호출 시간 = 데이터의 개수 만큼의 페이지 지연이 발생되었다. 군산오름 주차장 기준 1461ms 가 소요되었다. 원인 기존 로직의 흐름에 문제가있었는데 다른 두 테이블의 데이터를 합쳐야 하고 검색조건에 맞는 결과만 내어줘야하기 때문에 두번의 DB호출에서 Pageable을 걸지 못했고 얻어온 데이터를 합치는 과정에서 검색조건을 필터링 했는데 그 결과 많은 쿼리 조회로 인해 페이지 조회가 느려진것이다. 기존 로직은 다음과 같다. 주차장의 모든 예약정보를 가져온다. 예약 정보 중 입차 한 기록이 있는지 DB에서 검색한다. 입차 했을경우 : 검색 조건에 맞는 데이터를 입차 차량으로 리스트에 추가한다. 입차 안했.. 2023. 4. 19.
[ParkNav] 검색 성능 개선 기록 성능 개선 결과 최초검색 : 13724 ms 조회로직 변경 : 7847ms Fetch Join 변경 : 319ms 조회 쿼리 변경 : 256ms 기본 검색 기능 기본적인 주차장 검색기능을 구현했다. 검색어로 검색 카카오맵 API로 사용자 검색어에 대한 결과를 호출 검색 결과가 있는경우 : 검색결과 0번으로 좌표를 반환 검색 결과가 없는경우 : 초기위치 ( 서울역 ) 반환 좌표 주변의 주차장 검색 검색 결과가 있는경우 : 검색 결과를 반환 검색 결과가 없는경우 : 초기위치 ( 서울역 ) 반환 현위치로 검색 현위치 정보 동의 여부 동의 : 현위치 좌표 주변 DB검색 비동의 : 검색실패 위치동의 알림 창 출력 검색결과가 있는지 여부 검색 결과가 있는 경우 : 주변 주차장 리스트 반환 검색 결과가 없는 경우 :.. 2023. 4. 19.
코드 커버리지 적용(Jacoco) 코드 커버리지? 코드 커버리지란 소프트웨어 테스트의 측정 항목 중 하나로, 테스트를 수행했을 때 얼마나 많은 코드가 실행되었는지를 나타내는 지표입니다. 즉, 소스 코드 중에서 얼마나 많은 부분이 테스트 케이스에 의해 실행되었는지를 백분율로 나타내는 것입니다. 코드 커버리지의 종류 라인 커버리지 : 소스 코드의 각 라인이 실행되는 비율 브랜치 커버리지 : 브랜치 커버리지는 if문, switch문 등의 분기문에서 모든 경우의 수가 테스트되는 비율 메소드 커버리지 : 클래스 내의 메소드 중에서 테스트된 메소드의 비율 클래스 커버리지 : 소스 코드 내의 모든 클래스 중에서 테스트된 클래스의 비율 왜 사용할까? 코드 커버리지는 소프트웨어 개발에서 테스트된 코드의 양을 측정하는 데 사용됩니다. 이는 테스트되지 않은.. 2023. 4. 7.
[SpringBoot] QueryDSL 사용법 QueryDSL이란? 자바를 사용하는 개발자들이 SQL문을 작성하지 않고도 데이터베이스 쿼리를 생성할 수 있도록 도와주는 오픈소스 라이브러리입니다. 왜 사용할까? 객체지향적인 방식으로 쿼리를 작성할 수 있게 해주기 때문에, 코드의 가독성이 높아지고 유지보수성이 좋아집니다. 또한, 동적 쿼리를 작성할 때 유용하게 사용될 수 있습니다. 다양한 데이터베이스 시스템과 연동할 수 있으며, JPA, Hibernate, MyBatis 등 다양한 ORM 프레임워크와도 연동이 가능합니다. SQL문을 직접 작성하는 것보다 쿼리 작성에 필요한 시간과 노력을 줄여줄 뿐 아니라, 자바 코드를 통해 안전하고 쉽게 쿼리를 작성할 수 있게 해줍니다. 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있습니다. .. 2023. 3. 24.

TOP

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