[ Spring Boot ] Elasticsearch 검색 기능 구현 ( 3 )
·
Spring Boot
추천 검색 기능 및 검색 고도화 기본적인것들은 전부 정상적으로 동작하는걸 봤다.엘라스틱 서치를 사용하면서 해보었던 추천 검색어 기능을 해볼건데 네이버네 구글처럼 사용자가 잘못된 명칭이나 오타로 입력해도원래 의도한 검색어를 찾아서 제안해주는 기능을 만들거다 검색기능을 만들 때 ElasticsearchRepository를 사용해 간단하게 구현하는 방법과 고급검색기능(자동완성, 추천 검색어, 집계 등)을 구현할때는 ElasticsearchClient를 사용하는 방법이있다. 나는 후자로 진행 ElasticsearchClient 란 무엇인가?ElasticsearchRepository를 이용해서 기본적인 CURD나 쿼리메서드 기반 검색은 가능하지만 자동완성 같은 고급 기능은 Repository 만으로는 한계가있다...
[ Spring Boot ] Elasticsearch 검색 기능 구현 ( 2 )
·
Spring Boot
Elasticsearch를 활용한 검색 기능 구현1. 의존성 추가springboot에서는 의존성으로 엘라스틱 서치를 쉽게 연동할 수 있다.jpa처럼 엘라스틱서치repository를 구현해 데이터를 저장하고 다룰 수 있게 해주는 라이브러리이다. implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch' 2. Elasticsearch 연결을 위한 Config 설정적용을 하고나면 간단한 기본 세팅을 해줘야한다package com.onnongwa.back_end.domain.config;import org.springframework.beans.factory.annotation.Value;import org.springfram..
[ Spring Boot ] Elasticsearch 검색 기능 구현 ( 1 )
·
Spring Boot
docker-compose.yml 작성elasticsearch을 도커 환경에서 동작 시킬거기 때문에 compose 파일을 하나 작성해준다. version: '3.8'services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.6.0 container_name: elasticsearch environment: - discovery.type=single-node - xpack.security.enabled=false ports: - "9200:9200" - "9300:9300" volumes: - esdata:/usr/share/elasticsearch/..
25.02.25 통합테스트 DB 환경 분리
·
Spring Boot
개요단위 테스트를 할 때는 상관없었는데 통합테스트를 진행하니 운영중인 DB의 데이터도 테스트에 포함되어 문제가 발생했다. 이를 개선하기위해 통합테스트 환경에서는 H2 데이터베이스를 사용하도록 DB 환경을 분리해보겠다. application-test.yml 파일 생성기존의 apllication.yml 과 똑같은 위치에 application-test.yml파일을 생성해준다. spring: datasource: driver-class-name: org.h2.Driver hikari.jdbc-url: jdbc:h2:mem:test_db; username: testdb password: jpa: hibernate: ddl-auto: create-drop show-sql..
25.02.20 JWT 리팩토링 과 헥사고날 아키텍처 도입
·
Spring Boot
개요AccessToken 과 RefreshToken을 발급해 사용할 것이다.로그인에 성공 시 AccessToken 은 헤더에 Authorization 의 키 값으로 포함하고 RefreshToken은 쿠키에 포함해 응답한다.login과 logout을 userService 에서 처리하면서 user 도메인과 token 도메인을 함께 다루다 보니 userService에서 token 관련 기능의 의존성이 너무 커지는게 신경이 쓰였다. 이 부분을 생각하면서 개발을 진행하지않아 이미 문제를 의식했을 때는 변경해야할것이 너무 많아졌다. 조언을 구하고자 튜터님을 찾아가 헥사요AccessToken 과 RefreshToken을 발급해 사용할 것이다. 로그인에 성공 시 AccessToken 은 헤더에 Authorization..