본문 바로가기

전체 글49

[QueryDsl] 대량으로 수정하기 사내 기기 재고 관리를 하는 프로젝트를 하게 되었다. 보통 재고가 들어오면 몇 천 단위로 들어오게 되는데 그 때 어떻게 신속하게 메모리를 사용하고 db 호출 횟수를 어떻게 처리할 것인지에 대한 고민이 생겼다. 고민 1. for문을 돌 때 마다 N+1 문제가 발생한다. for 문을 돌 때마다 성능이 선형적으로 저하될 것이다. 해결 1. QueryDSL 의 벌크 연산 기능을 활용해서  한 번의 쿼리로 대량 데이터를 처리 가능하다.JPAUpdateClause updateClause = phrJPAQueryFactory.update(bandManagement) .where(whereBandsLabelIn(deviceUpdateRequestDto.getBands()));  고민 2. update, delet.. 2025. 4. 8.
[Kibana] 처음 세팅 : docker 와 kibana 세팅 앞선 글에서 elastic search를 docker 로 사용하였고, kibana 또한 docker 로 사용할 것이라 세팅이 필요하다.다른 두 컨테이너가 통신이 되어야 하는데 그렇기 위해서는 네트워크 연결이 필요하다.  [호스트 시스템] ---  포트 포워딩 ---> [Docker 컨테이너들] Elasticsearch 포트9200: application layer, 9300: network layer Kibana 포트5601: application layer  +------------------+ | 호스트 시스템 | +------------------+ .. 2025. 3. 29.
[ElasticSearch] bucket aggregation 초기 세팅basketball.json 과 basketball_mapping.json을 준비한다. https://github.com/Hongmebuilding/BigData/blob/master/ch04/basketball_mapping.json BigData/ch04/basketball_mapping.json at master · Hongmebuilding/BigDataElasticSearch 실습 자료. Contribute to Hongmebuilding/BigData development by creating an account on GitHub.github.com 아래와 같이 data를 mapping 한다.curl -XPUT -k -u elastic:elastic -H "Content-Type: a.. 2025. 3. 29.
[ElasticSearch] metric aggregation aggregation 은 documnet 안에서 조합을 통해서 어떠한 값을 도출하는 것입니다. 그 중에서 metric aggregation 은 산술할 때 쓰인다. { "size" : 0, "aggs" : { "avg_score" : { "avg" : { "field" : "points" } } }} 위는 평균을 구하는 aggregation 인데 해석해보면 field 값 중에서 points 를 사용해서 평균값을 구하라는 뜻 elastic search 에서는 GET + Body 조합이 허용 되어 있다. 다른 브라우저 일반 웹서버(golang, nginx)는 get body 를 처리하지 않는다. 근데 elastic search 또한 GET + Body 조합을 지양한다. 저 같은 경우는 post.. 2025. 3. 29.