mudhub
close
프로필 사진

mudhub

github: @jang-jinuk

  • 분류 전체보기 (4)
    • CS (1)
    • Spring (1)
    • JPA (1)
    • DataBase (1)
  • Home
  • Github
[DataBase] 10초 슬로우 쿼리를 0.062초로 최적화 (Feat. 공간 인덱스)

[DataBase] 10초 슬로우 쿼리를 0.062초로 최적화 (Feat. 공간 인덱스)

들어가며앞서 숙소 예약 서비스를 개발하며 숙소 검색 API의 응답 속도가 3초 대의 느린 성능을 확인하여, 최적화를 위해 문제를 분석하던 중 N+1 문제가 발생해 이를 62개의 쿼리 3개로 줄이며 N+1 문제를 해결했습니다. [JPA] N+1 문제 해결: 62개의 쿼리를 3개의 쿼리로들어가며숙소 예약 서비스를 개발하던 중 가장 많이 호출되는 숙소 검색 API의 응답속도가 느리다는 것을 파악하고, 쿼리를 개선하는 것을 목표로 작업을 하게 되면서 만나게 된 N + 1 문제의 해mudhub.tistory.comN+1 문제를 해결했음에도, 여전히 숙소 검색 API의 응답속도는 크게 변화되지 않았고 오히려 더 많은 실행 시간이 발생했습니다. 그래서 다시 한번 숙소 검색 API의 속도를 개선하고자, 발생하는 3가지..

  • format_list_bulleted DataBase
  • · 2025. 9. 23.
[JPA] N+1 문제 해결: 62개의 쿼리를 3개의 쿼리로

[JPA] N+1 문제 해결: 62개의 쿼리를 3개의 쿼리로

들어가며숙소 예약 서비스를 개발하던 중 가장 많이 호출되는 숙소 검색 API의 응답속도가 느리다는 것을 파악하고, 쿼리를 개선하는 것을 목표로 작업을 하게 되면서 만나게 된 N + 1 문제의 해결 과정을 공유하고자 합니다.수많은 쿼리 발견숙소 예약 서버스 API를 개발하고, API 성능을 테스트하기 위해 100만 건의 더미 데이터를 집어넣고 테스트하던 중 유독 응답속도가 느린 API를 발견했습니다. 바로 "숙소 검색 API"였습니다. 숙소 검색 API를 호출해 응답 속도를 확인해 본 결과 약 3초라는 굉장히 느린 응답속도를 확인할 수 있었습니다.100만 건의 숙소 데이터가 있다고 감안해도 이상할 정도로 느린 응답속도였습니다. 서버부하나 네트워크에 문제가 있는 건 아니라는 것을 확인했고, 그럼 데이터베..

  • format_list_bulleted JPA
  • · 2025. 8. 18.
[Spring] 트랜잭션 분리 하기

[Spring] 트랜잭션 분리 하기

들아가며숙소 예약 서비스를 개발하며 여러 명의 유저가 같은 날짜, 같은 숙소를 동시에 예약 시 발생할 수 있는 동시성 문제를 해결하고자, Redis 분산 락을 통해 락을 선점하는 스레드가 먼저 예약을 진행할 수 있는 구조를 설계해 문제를 해결했습니다.@Transactional@RoleCheck(Role.USER)public ReservationResponse booking(Long accommodationId, ReservationRequest request) { Accommodation accommodation = getAccommodation(accommodationId); User guest = getCurrentUser(); Reservation reservation = Reser..

  • format_list_bulleted Spring
  • · 2025. 8. 13.
[네트워크] DNS(Domain Name System)

[네트워크] DNS(Domain Name System)

들어가며142.250.196.14와 google.com 둘 중에 어떤 것이 더 쉽게 기억할 수 있을까요?맞습니다, 보통 사람은 숫자보다는 문자로 된 것을 기억하는 것이 쉬운데요. 컴퓨터를 비롯한 네트워크 통신이 가능한 장치들은 장치들은 각각의 고유한 IP 주소를 갖습니다.아까 보았던 142.250.196.14와 같은 형태로 구성되었는데요.우리는 평소 사용하는 웹 사이트만 해도 최소 3~4개 이상은 될 것입니다.이 웹 사이트의 IP 주소를 외우고 매번 이것을 브라우저 입력하여 접속을 한다는 것은 매우 불편한데요.이런 우리의 불편함을 해결해 주는 시스템이 있는데요, 바로 DNS입니다!DNS(Domain Name System)란?DNS, 도메인 네임 시스템은 쉽게 말하면 도메인 네임(예: google.com)..

  • format_list_bulleted CS
  • · 2025. 7. 22.
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기 (4)
    • CS (1)
    • Spring (1)
    • JPA (1)
    • DataBase (1)
인기 글
전체 방문자
오늘
어제
Copyright © mudhub 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바