본문 바로가기

전체 글

Spring Boot Jpa 네이티브 쿼리로 엘라스틱서치 쿼리 구현하기 0. 개요Spring Boot와 Jpa를 활용한 네이티브 쿼리로 엘라스틱 서치 쿼리를 구현해 보겠습니다.Spring Boot와 엘라스틱 서치를 연결하는 방법은 아래 글에 적혀 있습니다.스프링부트로 엘라스틱서치 쿼리 날리기그리고 이 글은 아래 글과 관련 있습니다.뉴스 데이터를 위한 엘라스틱 서치 쿼리 모음1. 연도별 키워드 Top1001.1 엘라스틱서치 쿼리{ "query": { "bool": { "must": [ { "match": { "대분류": "사회" } }, { .. 더보기
뉴스 데이터를 위한 엘라스틱 서치 쿼리 모음 뉴스 데이터를 저장하고, 쿼리로 조회한다.1. 인덱스 생성// PUT http://{ip}:{port}/hani-news-topic-index{ "settings": { "analysis": { "analyzer": { "keyword_extract_analyzer": { "type": "custom", "tokenizer": "keyword_extract_tokenizer", "filter": [ "keyword_extract_stop_filter", "ke.. 더보기
@EnableBatchProcessing 사용시 설정 Back Off Spring batch 5.1 버전 릴리즈 노트에 @EnableBatchProcessing이 자동으로 붙는다고 나와있다. What’s New in Spring Batch 5.1 :: Spring Batch What’s New in Spring Batch 5.1 :: Spring BatchEmbracing JDK 21 LTS is one of the main themes for Spring Batch 5.1, especially the support of virtual threads from Project Loom. In this release, virtual threads can be used in all areas of the framework, like running a concurrent step .. 더보기
UnsupportedProductError The client noticed that the server is not a supported distribution of Elasticsearch 사용하는 엘라스틱 서치 버전과 파이썬 라이브러리 버전이 맞지 않아서 발생하는 문제입니다. 저는 엘라스틱 서치 버전을 7.10.2로 쓰고 있습니다. version: '3.7' services: elasticsearch: build: context: elasticsearch/. # elasticsearch 전용 Dockerfile을 가져와 빌드 args: ELK_VERSION: 7.10.2 ... 하지만, pip로 다운받은 엘라스틱서치 라이브러리 버전을 확인해보니 8.12.1이었습니다. 그래서 라이브러리 버전을 다운그레이드 했습니다. pip install elasticsearch==7.11.0 더보기
Pillin 프로젝트 백엔드 개발 리뷰 https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=0000774295 필린 - 원스토어 여러분의 건강을 책임지는 영양제 재고 관리 서비스 Pillin입니다! m.onestore.co.kr 💡 Pillin 프로젝트의 백엔드 개발에서 사용한 아키텍처 및 규칙을 정리했습니다. 백엔드 구조도 규칙 Controller는 Dto만을 사용한다. Service는 필요시 Vo, Entity에 저장된 데이터를 사용하여 연산한다. Controller에서 전달받은 데이터 자체를 변환할 수 없게 하기 위해 Vo를 사용한다. Dao는 Service로 받은 데이터로 DB에 정보를 조회한다. 요청 처리 Flow 사용자는 서버에 Rest하게 요청한다. Security Fil.. 더보기
HttpUrlConnection, RestTemplate, WebClient의 특징과 장단점 HttpUrlConnection 특징 java에서 제공하는 기본적인 HTTP 클라이언트 저수준 API로 HTTP 요청 및 응답을 다루는데 사용됨 HTTP 및 HTTPS를 지원하며, 각 요청마다 새로운 연결을 만들어 사용 직접적인 제어 가능 장점 JDK의 일부로 제공되어 외부 라이브러리의 의존성이 없음 기본적인 HTTP 통신을 다루는데 유용 단점 낮은 수준의 API로 인해 응답 처리가 복잡 코드의 가독성이 낮음 RestTemplate 특징 Spring이 제공하는 HTTP 클라이언트 간단한 API를 통해 HTTP 요청 처리 동기 방식 및 Blocking I/O 사용 장점 Spring 기반 애플리케이션 사용에 유용 간단한 사용법 단점 동기 방식으로 동작하여 비효율적일 수 있음 Non-Blocking, Reac.. 더보기
오픈소소는 공짜가 아니다. 1. 개요 2021년에 11년간 이루어졌던, 구글과 오라클의 소송이 끝났습니다. 쟁점은 오픈소스인 자바의 API에도 저작권이 인정되는가, 저작권이 인정 될 경우 구글의 API 재사용 행위가 공정이용에 해당 되는가입니다. 결국 구글행위가 공정이용에 해당되어 승소하기는 했지만, API 코드에 대한 저작권에 대한 대법원 판결은 이루어지지 않았습니다. https://zdnet.co.kr/view/?no=20210406064737 구글, '10년 자바전쟁' 오라클에 최종 승리 10년 동안 계속된 세기의 자바 저작권 소송에서 구글이 다시 승부를 뒤집으면서 최증 승리했다. 미국 연방대법원은 5일(현지시간) 자바 저작권 소송에서 6대2로 구글... zdnet.co.kr 그만큼 저작권이라는 것은 매우 중요한데요, 오픈소.. 더보기
헥사고날 아키텍처 헥사고날 아키텍처란? 헥사고날 아키텍처는 응용 프로그램의 비즈니스 로직을 외부 세계로 부터 격리시켜 객체지향원칙을 잘 지키게 하는 아키텍처입니다. 대중적으로 많이 사용하는 3계층 아키텍처에 비해 더욱 유연하고 테스트하기 쉬워진다는 장점이 있습니다. 이 헥사고날 아키텍처를 만들기 위해 핵심 로직은 중앙 도메인 영역에 위치하며, 입력과 출력을 처리하는 포트와 어댑터를 통해 외부와 소통합니다. 이러한 특징으로 포트 및 어댑터 아키텍처라고도 불립니다. 이 헥사고날 아키텍처의 핵심은 내부 영역과 외부 영역을 분리 하는 것 입니다. 내부 영역 💡 Domain Model Layer 및 Application Layer 위 그림에서 회색 부분이 내부 영역입니다. Domain Model Layer는 DomainModel이.. 더보기