profile
애기 개발자

엘라스틱 서치 - 집계 정리

엘라스틱 서치에서 집계는 데이터를 그룹핑하고 통곗값을 얻는 기능으로 SQL의 GROUP BY와 통계함수를 포함하는 개념집계를 잘 이해할수록 키바나 툴을 더 잘 사용할 수 있다.집계를 위한 특별한 API가 제공되는 것이 아니다. search API의 요청본문에 aggs

약 16시간 전
·
0개의 댓글

엘라스틱 서치 검색 정리

쿼리컨텍스트필터 컨텍스트쿼리스트링과 쿼리 dsl의 차이점쿼리컨텍스트: 도큐먼트에서 연관성을 계산해 최대한 비슷한 데이터를 찾아준다.필터 컨텍스트: 찾고자하는 문자열이 정확한지 아닌지 예/아니요만 가지고 찾아준다.엘라스틱 서치에서 쿼리를 사용하는 방법은 쿼리 스트링과 쿼

약 16시간 전
·
0개의 댓글

엘라스틱 스택

엘라스틱 서치가 처음 등장했을때는 빅데이터 파이프라인을 구성하는 플랫폼 형태로 될것이라고 예상하기 어려웠을것이다. 엘라스틱 서치가 등장했을무렵 사이트내에서 전문 검색기능을 제공하는 강력한 소프트 웨어의 필요성이 있었고 검색솔루션 서비스는 대부분 구현체를 공개하지 않아서

2022년 5월 12일
·
0개의 댓글

select시 update쿼리 날라갈때

가변 객체 을 Entity 필드로 사용해야할 경우 (@Convert) 무분별한 Dirty Checking을 막기 위해 equals를 꼭 Override 해야한다.그렇지 않을 경우 단순히 조회 로직에서도 Dirty Checking이 발생한다

2022년 5월 8일
·
0개의 댓글

Springboot DataJPA 선택적으로 수정하기

프로그램을 작성하다보면 이런경우가 있다.dto로 작성된 필드가 있을수도 있고 없을수도 있는 상황에서 해당필드값들을 선택적으로 업데이트하고 만약에 값이 들어와 있지 않다면 그대로 값을 두는것이다.하지만 스프링에서 기존에 기본형태로 업데이트를 하는 방법은 Entity 객체

2022년 4월 22일
·
0개의 댓글

카프카 커넥트 정리

카프카커넥트는 아파치 카프카의 오픈소스 프로젝트 중 하나로, 데이터베이스 같은 외부 시스템과 카프카를 손쉽게 연결하기 위한 프레임워크입니다.대용량의 데이터를 카프카의 안팎으로 손쉽게 이동시킬수 있습니다. 코드작성없이..프로듀서와 컨슈머를 직접 개발해 원하는 동작을 실행

2022년 4월 20일
·
0개의 댓글

gradle 빌드 명령어

해당 프로젝트 루트로 가서 ./gradlew build실행 ./gradlew init 실행docker로 빌드를 한후에 제빌드를 할때는 기존에 이미지를 다 제거해주고 제빌드 하시기 바랍니다.

2022년 4월 19일
·
0개의 댓글
post-thumbnail

Spring boot-Cache Control Headers 하는법

요청 데이터가 무겁지만 변경이 잘 없는 데이터는 Headers에 케시컨트롤을 통해서 사용자와 서버가 서로 윈윈할수 있는 방법이 있다. 한번 최초 요청시에 request 요청이 캐싱돼서 이후 제요청시에는 http 통신을 하지 않고 클라이언트쪽에서 바로 캐싱돼서 데이터를

2022년 4월 15일
·
0개의 댓글

JPA 복합키 작성기초

클라이언트 쪽에서 복합키의 정보를 모두 알지 않아도 간편하게 리소스 관리가 가능함 (ex: 책ID, 사용자ID)데이터를 식별할 수 있는 컬럼의 조합이 유니크하지 않을 때 (ex: 이름+저자+출판사로는 책 식별 불가할 수 있음. 동일한 명칭의 개정판이 나오기 때문)식별가

2022년 4월 13일
·
0개의 댓글
post-thumbnail

카프카 스키마 레지스트리

RDB에서 스키마란 정보를 구성하고 데이터가 저장될때에 약속을 만들어 주는것이라고 생각합니다. RDB에서는 스키마를 정의한 형태로 데이터를 입력해야하고 사전에 정의된 스키마의 내용과 다른 데이터를 추가하려고 시도하면 작업은 실패합니다.카프카에서 스키마가 없을때의 예를

2022년 4월 12일
·
0개의 댓글

Springboot JUnit and Mockito

java 진영의 대표적인 test Framework단위 테스트를 위한 도구를 제공단위 테스트란?코드의 특정 모듈이 의도된 대로 동작하는지 테스트 하는 절차를 의미모든 함수와 메소드에 대한 각가의 테스트 케이스를 작성하는것어노테이션을 기반으로 테스트를 지원단정문으로 테스

2022년 4월 7일
·
0개의 댓글

@Deprecated와 @deprecated

@Deprecated는 타입,필드,메소드등에 붙일수 있고 @Deprecated 표시되어 있는 메소드나 필드를 사용하면 빌드할 때 워닝메시지를 보여준다. 이 메소드는 없어질걸 알려주고 쓰지말라고 경고하는것@deprecated는 javadoc으로 이 메소드가 사라지는 이유

2022년 4월 6일
·
0개의 댓글

@Transactional원리

spring에서 디비접근시에 트랜잭션을 관리하는 방법은 아주 추상화가 잘 돼 있습니다. 바로 @Transactional 을 사용해주면 트랜잭션이 되기 때문입니다.이 마법의 내부를 공부해 봤습니다.데이터베이스 커넥션자바에서 데이터 베이스의 트랜잭션을 시작하는 유일한 방법

2022년 4월 5일
·
0개의 댓글

카프카 버전업그레이드

현제 사용중인 버전 체크하기kafkaᅳtopics.sh --version\-/usr/local/kafka/bln/kafka-toplcs.sh --version카프카의 릴리스 노트등을 잘 살펴보면서 업그레이드시 문제가 될 만한 부분은 없는지 확인합니다.스칼라 Scala

2022년 3월 30일
·
0개의 댓글

npm 로그인시 이메일 인증오류 -404 Route not found

저같은 분이 또 있으실진 모르겠지만나름 개발자인데 회원가입을 못해서 해매며 알게된 사실을 포스팅 합니다.npm에 회원가입후 로그인을 시도하면 최초에 이메일로 전송된 인증코드를 입력하는 인증절차가 있습니다.이때 혹시 저처럼 정말 정확하게 인증코드를 넣었는데도 404 Ro

2022년 3월 30일
·
0개의 댓글

npm package update 403 error

회사에서 사용하던 라이브러리에 우리가 원하는 기능이 없어서 제가 라이브러리를 포크해서 컨트리뷰트를 진행중에 있었습니다.성공적으로 우리회사의 핏에 맞게 수정을 한후에 테스트까지 끝낸후 typeScript를 쓰고 있던터라 build해주는 것이 귀찮아서 npm에 올리기로 했

2022년 3월 30일
·
0개의 댓글

Spring boot AOP

Springboot AOP AOP - 핵심 기능과 부가기능 애플리케이션 로직은 크게 핵심기능과 부가 기능으로 나눌 수 있다. 핵심기능은 해당 객체가 제공하는 고유의 기능이다. 부가기능은 핵심기능을 보자하기위해 제공되는기능이다.(로구추적기 등등..) 위 기능들이 하나

2022년 3월 24일
·
0개의 댓글
post-thumbnail

Spring Data REST

RESTFul 웹서비스는 HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미합니다.기존에 Spring web을 사용하면 @RestController로 컨트롤러를 작성해서 사용해야하지만 Spring Data REST를 사용하면

2022년 3월 23일
·
0개의 댓글

@Aspect Springboot AOP 시작

스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저를 만들어서 스프링빈으로 등록하면된다.그러면 나머지는 아ㅠ서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저들을 찾고스프링

2022년 3월 22일
·
0개의 댓글

Springboot 빈 후처리기

@Bean이나 컨포넌트 스캔으로 스프링빈을 등록하면, 스프링은 대상객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록을 한다.그리고 이후에는 스프링 컨테이너를 통해 등록한 스프링빈을 조회해서 사용하면 된다.스프링이 빈 저장소에 등록할 목적으로 생성한 객체를 빈 저

2022년 3월 22일
·
0개의 댓글