ElasticSearch란? Elasticsearch는 Apache Lucene기반의 Java 오픈 소스 분산 검색 엔진이다. Elasticsearch를 통해 방대한 양의 데이터를 신속하게(거의 실시간) 저장, 검색, 분석을 수행할 수 있다. Elasticsearch는 검색 엔진으로 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / Kibana) 스택으로 사용되기도 한다. 이러한 Elasticsaerch는 대규모 로그 파일 관리나 실시간 검색 서비스 등과 같이 대용량 데이터를 빠르게 처리해야 하는 경우 유용하게 사용될 수 있다. 데이터 저장 방법 (RDBMS와 차이점) RDB는 정규화된 스키마에 따라 데이터를 구조화하지만, Elasticsearch는 JSON 문서 형태로 ..
카프카(kafka) 란? Kafka는 대규모 실시간 데이터 스트리밍을 처리하는 데 사용되는 분산 이벤트 스트리밍 플랫폼이다. 먼저 "분산 이벤트 스트리밍"이라는 용어에 대해 알아보자 분산 이벤트이라는 말은 여러 대의 서버(노드)에 분산되어 저장된 이벤트(데이터) 를 말한다. 이벤트 스트리밍은 대량의 이벤트(데이터)를 실시간으로 처리하는 방식을 의미한다. 즉, 이 두 내용을 연결 시키면 분산 되어 있는 이벤트(데이터)들을 실시간으로 처리하는 플랫폼이라는 뜻이 된다. 위 그림의 왼쪽은 링크드인에서 개발한 카프카가 등장하기전의 아키텍처 모습니다. 각 데이터 저장소들이 도착지점까지 모든 시스템을 거치는 End - To - End 연결로 매우 복잡한 것을 볼 수 있다. 하지만 카프카가 적용된 오른쪽 그림을 보면 ..
서버가 한대일 경우에는 해당 서버에 세션 정보를 저장해서 사용할 수 있겠지만, 대용량 트래픽을 고려해 Scale-out이 적용된 환경에서는 세션 불일치 문제가 발생할 수 있다. Scale-out은 여러 대의 서버로 트래픽을 분산하기 때문에 로드 밸런싱이 필수로 적용되는데, 이 로드 밸런싱으로 인한 분산 처리 과정에서 서버마다 가지고 있는 세션 저장소에 있는 세션을 공유하지 않기 때문에 세션 불일치 문제가 발생할 수 있다. 이런 세션 불일치 문제가 발생하면 새 요청을 할 때마다 로그인을 해야하는 아주 좋지 않은 사용자 경험을 발생시킬 것이다. 이 세션 불일치 문제를 해결하기 위한 방법으로 아래 3가지 방법들이 있다. Sticky Session Session Clustering Session Storage ..
이번 프로젝트에서 어드민 페이지 상품 등록 화면의 상세설명 부분에 아래와 같이 TinyMce 에디터를 적용하게 되었다. TinyMce 에디터를 사용하면 위와 같은 텍스트 편집기를 추가할 수 있는데 이번 포스팅에서는 TinyMce를 JavaScript로 적용하는 방법에 대해 설명하고 에디터를 커스터마이징하는방법에 대해 포스팅하려한다. TinyMce 적용방법 TinyMce Api Key 발급 tinymce를 적용하기전에 먼저 아래의 공식 홈페이지에 들어가서 회원가입 후 API KEY를 발급받아야한다. The Most Advanced WYSIWYG Editor | Trusted Rich Text Editor | TinyMCE TinyMCE is the most advanced WYSIWYG HTML edito..
이번 포스팅에서는 QueryDSL과 Spring Data JPA를 함께 사용해 페이징 처리하는 방법에 대해 알아보고자 한다. 다음은 이번 포스팅에서 사용할 QueryDSL 사용자 정의 레포지토리 인터페이스와 이를 구현한 구현체 이다. 이 내용에 대해 알고 싶으면 아래 링크를 참고 하면 도움이 된다. 2023.07.10 - [오픈소스] - QueryDSL Repository 생성하기 (사용자 정의 리포지토리) public interface MemberRepositoryCustom { Page searchPage(MemberSearchCondition condition, Pageable pageable); } @RequiredArgsConstructor public class MemberRepositoryI..
QueryDSL을 사용하는 이유는 아마 동적 쿼리를 아주 쉽게 해결할 수 있어서가 아닐까 싶다. 이번 포스팅에서는 QueryDSL을 사용해서 동적 쿼리를 작성하는 방법에 대해 포스팅해 보려한다. QueryDSL 설정, 사용방법, 문법에 대해 알고 싶다면 아래 링크를 통해 확인할 수 있다. 2023.07.10 - [오픈소스] - QueryDSL 기본 문법 총정리 2023.06.27 - [오픈소스] - [QueryDSL] 스프링부트 3.x 버전에서 QueryDSL 설정하기 2023.07.10 - [오픈소스] - QueryDSL 사용법, DTO 반환 방법 정리 동적 쿼리 querydsl에서 동적 쿼리를 사용하는 방법 중 Where 절에서 다중 파라미터를 사용하는 방법에 대해 설명하려 한다. 이 방법은 wher..