Programming

Programming/Spring

Spring Boot + ELK 스택을 이용한 실시간 인기 검색어 Top 10 구현하기

0. Overview 2023.12.15 ~ 2024.01.12 동안 "인터파크 티켓"을 타겟으로 하여 클론코딩을 진행하게 되었는데, "공연" 도메인을 맡게 되었다. 함께 도메인을 담당하게 된 팀원과 어떤 기술을 적용해보면 좋을까를 의논하던 중 "인터파크 티켓" 사이트 검색창에 실시간 검색어가 나오는 것을 볼 수 있었다. 검색 기능을 중점적으로 구현하는 방향으로 계획을 세웠고 기존에 JPA를 통한 검색 로직만 구현해보다가, 검색 기능에 특화된 Elasticsearch를 적용하여 키워드 검색 기능 + 실시간 인기 검색어 순위 기능을 구현해보자. 라는 결론이 나오게 되었다. 그래서 이번 포스팅에서는 Elasticsearch를 적용하여 실시간 인기 검색어 순위를 구현한 그 여정을 기록해보려고 한다. 먼저 엘라..

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/Java

[디자인 패턴] 퍼사드 패턴 (Facade Pattern)

1. 퍼사드 패턴 (Facade Pattern) Facade는 "건물의 정면"을 의미하는 단어로, 어떤 소프트웨어의 다른 커다란 코드 부분에 대해 간략화 된 인터페이스를 제공해주는 디자인 패턴을 의미합니다. 즉, 건물의 정면만을 보고 건물의 복잡한 내부는 감추는 것과 동일한 셈이죠. 퍼사드 객체는 복잡한 소프트웨어 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 주고, 복잡한 소프트웨어를 사용할 수 있게 간단한 인터페이스를 제공해줍니다. ex) 영화를 상영하는 과정 어떤 사람이 영화를 보고자 하는데, 영화를 보기 위해서는 다음과 같은 과정을 거치게 됩니다. 음료 및 팝콘 준비 → TV 켜기 → 영화 검색 → 영화 결제 → 영화 재생 [ 코드로 보기 ] public void view() {..

엥재
'Programming' 카테고리의 글 목록 (3 Page)