Programming/기타

Programming/기타

Elasticsearch 검색 정확도 높이기

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

Programming/기타

Spring 에서 application.yml파일 민감정보 관리 (feat. submodule)

도입 배경 JPA 게시판 과제 진행 중 이메일 & DB & Jwt 관련 민감정보 설정을 담당하는 application-core.yml이라는 파일이 존재했는데, 해당 파일을 그냥 .gitignore에 등록하고 repo에 올렸었다. 그런데 문제는 해당 yml 파일을 다른 사람들이 클론하거나, 팀 프로젝트의 상황에서는 해당 파일을 매번 공유해서 사용하거나 그렇지 않으면 사용할 수 없다.라는 문제가 발생했다. 따라서 해당 문제를 해결하고자 알아보던중 git에서 제공하는 submodule이라는 기술이 존재하여 사용해보려고 한다. Flow 민감정보 데이터를 담을 private repo 생성한다. 민감정보가 담긴 private 레포지토리를 public 레포지토리의 서브모듈로 git add submodule ${서브 ..

Programming/기타

Spring-Boot Admin 구축

Spring-Boot는 /actuator Endpoint를 제공하여 프로그램의 모니터링을 가능하게 합니다. 그런데 이 정보는 JSON 형태로 가독성이 너무 떨어진다는 점이 존재하는데 그런 점을 보완하기 위해 나온 것이 Spring-Boot Admin으로 UI를 제공하고 일종의 대시보드 기능이라고 생각하면 됩니다. 위 이미지가 바로 기존의 Spring-Boot Actuator 를 통해 모니터링 하는 상황입니다. 주요 기능 Actuator 에서 제공하는 정보를 다 볼 수 있습니다. Thread, Dump, Log File 등 런타임 시점에서 Log의 Level을 변경할 수 있다는 부분에서 사실 좀 놀랐습니다.. Spring-Boot Admin Server 구축 1. Server [ build.gradle ]..

Programming/기타

JUnit5 Test가 생성자 의존성 주입을 하는 방법

기존에 우리는 Spring Framework에서 의존성 주입(DI)을 하게 될 때 생성자가 하나라면, @Autowired를 생략해도 된다고 공부했었습니다. JUnit으로 @SpringBootTest 테스트 코드를 작성할 때 같은 방식으로 하면 다음과 같은 에러가 발생합니다. org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [nathan.test.repository.MemberRepository memberRepository] in constructor [public nathan.test.MemberRepositoryTest(nathan.test.repositor..

엥재
'Programming/기타' 카테고리의 글 목록