본문 바로가기

전체 글13

[Spring JPA] 음반 검색 성능 최적화 2편 - FULLTEXT 인덱스의 진실과 데이터의 배신 "인덱스를 바꿨는데 왜 더 느려졌을까?" - 10초 → 50ms 성능 개선의 숨겨진 진실1편 보러가기 - [Spring JPA] 음반 검색 기능 성능 최적화 트러블슈팅 - 초보자를 위한 완전 해부 1부지난 이야기1편에서 우리는 충격적인 사실을 발견했습니다.LIKE '%검색어%' 패턴은 인덱스를 무력화시킨다B-Tree 인덱스는 부분 문자열 검색에 부적합하다OR 조건이 여러 개면 옵티마이저가 혼란스러워한다현재 상황검색 시간: 10초 😱인덱스를 걸었지만 안 탐사용자 이탈 중...자, 이제 어떻게 해결했는지 본격적으로 파헤쳐볼까요?새로운 희망 - FULLTEXT 인덱스"텍스트 검색 전용 인덱스가 있다고?"네, 맞아요! MySQL에는 텍스트 검색에 특화된 FULLTEXT 인덱스라는 게 있어요. B-Tree vs.. 2025. 10. 1.
[Spring JPA] 음반 검색 기능 성능 최적화 트러블슈팅 - 초보자를 위한 완전 해부 1부 "10초짜리 검색이 어떻게 50ms가 되었을까?" - 실제 운영 환경에서 겪은 성능 개선 여정을 초보자도 이해할 수 있게 풀어드립니다.이런 분들께 추천해요Spring JPA로 검색 기능을 구현했는데 느려서 고민인 개발자LIKE 검색과 인덱스에 대해 정확히 이해하고 싶은 백엔드 초보자데이터베이스 성능 최적화의 실제 사례가 궁금한 개발자"왜 인덱스를 걸었는데도 안 빨라질까?" 하고 의문을 가진 개발자문제 상황: 평범한 검색이 지옥이 되다요구사항은 정말 단순했어요음반 쇼핑몰에서 고객들이 좋아하는 앨범을 쉽게 찾을 수 있는 검색 기능이 필요했습니다. 사용자가 원하는 것제목, 아티스트, ISBN 중 아무거나 검색어가 포함된 음반 찾기"비틀즈"라고 치면 "더 비틀즈", "비틀즈 앨범" 등 부분 매칭자동완성 지원 (.. 2025. 9. 28.
PostgreSQL 왜 선택해야할까? 관계형 데이터베이스(RDBMS)로는 MySQL, PostgreSQL, MariaDB, Oracle Database 등이 있습니다.그중에서도 오픈 소스로 널리 사용되는 MySQL과 PostgreSQL은 각각의 장점이 뚜렷합니다.이번 포스팅에서는 가장 많은 점유율을 자랑하는 MySQL 대신 PostgreSQL을 선택한 이유를 알아보겠습니다.먼저, 두 데이터베이스의 기본적인 장단점을 비교해보겠습니다.PostgreSQL의 장점복잡한 데이터 모델 지원: JSON, XML, GIS 같은 다양한 데이터 타입을 지원해서 복잡한 데이터 모델을 만들기 좋습니다.고급 쿼리 기능: 복잡한 데이터 조작이 필요할 때 다양한 기능을 제공해 분석 작업에 강력합니다.확장성: 사용자 정의 함수를 만들 수 있어, 필요한 기능을 추가해 맞.. 2024. 11. 5.
[Java] 가비지 컬렉션(GC)란? 자바 가비지 컬렉션(GC)은 사용하지 않는 객체를 자동으로 제거하고 메모리를 회수하는 프로세스를 말합니다. 이를 통해 개발자가 메모리 관리에 신경 쓰지 않아도 되어 효율적인 프로그래밍을 가능하게 합니다. 자바 가비지 컬렉션(GC)가 필요한 이유 자바는 개발자가 직접 메모리를 해제해줄 수 없는 언어입니다. 따라서 사용하지 않는 객체들이 계속해서 메모리를 점유하면, 불필요한 메모리 낭비가 발생할 수 있습니다. GC는 이러한 객체를 찾아내어 메모리를 해제하여 시스템 성능과 안정성을 향상시킵니다. 자바 가비지 컬렉션(GC)의 동작방식 가장 간단한 형태의 GC인 Minor GC와 Major GC로 구분됩니다. Minor GC는 Young 영역에서 실행되며, Eden 영역이 가득 찼을 때 발생합니다. 살아남은 객체.. 2023. 8. 17.