전체 글

Development Blog
Programming/Spring

필터가 2번 중복 적용되는 문제 해결하기

Intro JWT 토큰 값을 읽어서, 상황에 따라 인증하거나 만료되었다면 그에 따른 예외처리를 내려주는 JwtAuthenticationFilter를 만들어 SecurityConfig 설정 내에 등록해주었다. 시큐리티 필터체인에서 아래와 같이 등록하여 작동하도록 해두었는데, .addFilterAfter(jwtAuthenticationFilter, ExceptionTranslationFilter.class) 요청이 올 때마다 자꾸 해당 필터를 두 번씩 거치는 문제가 발생했다. Why ? 간편하게 Bean으로 등록해두고 사용하기 위해 클래스에 @Component 어노테이션을 붙여 사용했는데, 이게 바로 문제였다. 아래는 스프링 부트 도큐먼트에서 Filter에 관한 내용이다. 요약하자면, 스프링 빈으로 등록된 ..

Programming/Spring

Elasticsearch로 검색 성능 개선하기

0. OverView 2023.12.15 ~ 2024.01.12(4주) 동안 "인터파크 티켓" 사이트를 타겟으로 한 클론 코딩을 진행하게 되었습니다. 팀원 한명과 함께 "공연" 도메인을 맡게 되었고 핵심 기능으로 "검색 기능"을 선정하여 구현하고자 하였습니다. 클론 코딩을 진행한 "인터파크 티켓" 사이트는 찾고자 하는 키워드로 검색을 하면 빠른 속도로 검색기능을 제공하는 것을 확인할 수 있었고, 검색 기능을 어떤 방식으로 구현하면 좋을까를 고민하다가 엘라스틱서치를 도입하여 RDB만을 사용하여 구현했을 때 보다 성능적인 면에서 개선한 사례를 기록해보려고 합니다. 1. 검색 기능 분석 먼저 저와 팀원은 "인터파크 티켓"의 검색 기능을 분석하였습니다. - 키워드로 검색하면 공연의 제목 뿐만 아니라 내용, 장르..

Programming/Spring

[Spring] Elasticsearch에서 Document Update

[Spring] Elasticsearch 검색 정확도 높이기 [Spring] Spring Boot + ELK 스택을 이용한 실시간 인기 검색어 Top 10 구현하기 0. Overview 2023.12.15 ~ 2024.01.12 동안 "인터파크 티켓"을 타겟으로 하여 클론코딩을 진행하게 되었는데, "공연" 도메인을 맡게 zero-zae.tistory.com 지난 글에 이어, 실시간 인기 검색 순위 기능도 구현했고 ngram을 이용하여 검색 정확도까지 높여보는 과정을 진행해보았다. 이번 포스팅에서는 Elasticsearch에서 Document를 Update하는 과정을 다뤄보려고 한다. Elasticsearch의 경우 update시 일반적인 update와는 다르게 기존에 존재하는 문서를 제거하고, 새로운 문..

Programming/기타

Elasticsearch 검색 정확도 높이기

[Spring] Spring Boot + ELK 스택을 이용한 실시간 인기 검색어 Top 10 구현하기 0. Overview 2023.12.15 ~ 2024.01.12 동안 "인터파크 티켓"을 타겟으로 하여 클론코딩을 진행하게 되었는데, "공연" 도메인을 맡게 되었다. 함께 도메인을 담당하게 된 팀원과 어떤 기술을 적용해보면 좋 zero-zae.tistory.com "인터파크 티켓" 클론코딩 프로젝트에는 Elasticsearch로 Spring Boot와 연동하여 키워드 검색 + 실시간 인기 검색어 순위 기능을 구현하였다. 한글 형태소 분석기인 nori 플러그인만 사용하고 있었으며, 검색이 잘 되나 싶었지만 정확한 의미있는 단어 단위로 검색하지 않으면 검색이 제대로 되지 않는 문제가 생겼다. 예를 들어 "..

엥재
Zerozae