전체 글

데이터베이스/ElasticSearch

Elasticsearch 8.* 버전의 복잡한 쿼리를 QueryDSL의 BoolQuery로 처리하기

과거 Spring에서의 BoolQuery사용기존에는 AbstractElasticsearchConfiguration을 통해 Elasticsearch 설정을 처리해주고 elasticsearch.core.query 안의 관련 항목들을 통해 복잡한 쿼리문을 진행했던 것과 달리, Spring 3.* 및 Elasticsearch 8.* 버전에서는 많은 변경 사항이 있습니다. 이러한 변경 사항은 Elasticsearch와 Spring Data Elasticsearch 라이브러리의 최신 업데이트로 인해 발생했습니다. 이 글에서는 이러한 변경 사항에 대해 자세히 알아보고, 새로운 버전에서 Elasticsearch를 설정하는 방법과 주요 기능을 살펴보겠습니다."복잡하지 않은 쿼리문동적이지 않은 쿼리가 필요할때는 Elast..

알고리즘/자바

[소프티어 21년 재직자 대회 예선]회의실 예약

문제, 제약 조건 참고https://softeer.ai/app/assessment/index.html?xid=102028&xsrfToken=9bwXqOhPN1B0nuaGBcczAKTp5pyrNhl3&testType=practice Candidate | Softeer Assessment UI softeer.ai풀이강의실 이름을 받을 배열 하나 생성 후 값을 입력받고 Arrays.sort()를 이용하여 정렬해준다각 강의실 String key값에 알맞은 빈강의실 시간 체크용 boolean[] value값을 만들어준다.(HashMap(그림 1참고)각 테스트 케이스가 들어오면 해당 강의실 이름을 hashmap.get(강의실 이름)을 줘서 해당 시간대를 가져온다. 이후에 강의시간으로 사용하는 시간을 true로 변경..

스프링

AWS S3와 IAM 생성: 스프링과의 연동 방법 및 이미지 저장

전체적인 흐름S3 티어 선택 후 S3 버킷 생성액세스 권한을 얻기 위한 IAM 생성스프링 빈에 AWS S3 등록Image API 구현 및 테스트S3 티어 선택 및 S3 버킷 생성S3 티어(스토리지 클래스)어떤 종류의 데이터를 관리하는지, 얼마나 자주 그 데이터에 접근해야하는지에 따라 분류, 사용자는 그에 맞는 티어를 선택Standard가장 보편적으로 사용되는 스토리지 타입IA자주 접근되지는 않으나 접근시 빠른 접근, standard보다 비용은 저렴하나 데이터를 불러올때마다 추가 비용One Zone IAIA와 같지만 하나의 AZ에만 데이터 저장 → 가용영역 문제 생길경우 데이터가 날라갈수도 있음Intelligent Tiering머신러능을 통한 자동으로 파일의 티어를 변경하는 서비스 ex. 접근 많으면 스탠..

스프링

[Spring] Validation 종류 및 적용

Validationhttps://spring.io/guides/gs/validating-form-input Getting Started | Validating Form InputThe application involves validating a user’s name and age, so you first need to create a class that backs the form used to create a person. The following listing (from src/main/java/com/example/validatingforminput/PersonForm.java) shows how to do so: pacspring.io특정 메서드나 파타미터에 사용되어 해당 객체가 유효성 검샅를 통과..

스프링/테스트

[스프링] JUnit @Tag를 이용한 테스트 코드 분리

Junithttps://spring.io/guides/gs/testing-web Getting Started | Testing the Web LayerYou will build a simple Spring application and test it with JUnit. You probably already know how to write and run unit tests of the individual classes in your application, so, for this guide, we will concentrate on using Spring Test and Spring Boot featurespring.io주요 내용단위테스트: 특정 소스코드의 모듈이 의도한 대로 잘 작동하는지 검증하는 테스트이..

데이터베이스/ElasticSearch

Start Elasticsearch with docker

Elasticsearch정의ElasticSearch는 아파치 루씬 기반 검색인진으로 문서 검색, 지도 위치 검색, 머신 러닝 기반 검색, 로그분석등 다양한 용도로 활용되고 있다. 이런 검색 관련 데이터 처리시 사용이유는 여러 노드에 분산하여 구성함으로써 데이터의 가용성을 높이고 성능을 향상 시킬수 있다 역인덱싱기본적으로 ElasticSearch는 데이터 저장시 이를 색인화한다. 이후에 역 인덱싱을 통해 검색을 빠르고 효율적으로수행한다. 쉽게 말하면 책 뒤에 순서대로 적혀있는 단어와 해당 단어의 위치 적혀있는 것을 예시로 들면 쉬울 것이다. Kibana키바나는 ElasticSearch와 함께 사용되는 데이터 시각화 및 관리 도구이다. 키바나를 사용하면 ElasticSearch에서 수집된 데이터를 시각적으로..

알고리즘/자바

[백준 알고리즘] 11559번 자바(Java)

문제 뿌요뿌요의 룰은 다음과 같다. 필드에 여러 가지 색깔의 뿌요를 놓는다. 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다. 뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다. 이때 1연쇄가 시작된다. 뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다. 아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마다 1연쇄씩 늘어난다. 터질 수 있는 뿌요가 여러 그룹이 있다면 동시에 터져야 하고 여러 그룹이 터지더라도 한번의 연쇄가 추가된다. 남규는 최근 뿌요뿌요 게..

알고리즘/자바

[백준 알고리즘] 16637번 자바(Java) 괄호 추가하기

문제길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순서대로 계산해야 한다. 예를 들어, 3+8×7-9×2의 결과는 136이다.수식에 괄호를 추가하면, 괄호 안에 들어있는 식은 먼저 계산해야 한다. 단, 괄호 안에는 연산자가 하나만 들어 있어야 한다. 예를 들어, 3+8×7-9×2에 괄호를 3+(8×7)-(9×2)와 같이 추가했으면, 식의 결과는 41이 된다. 하지만, 중첩된 괄호는 사용할 수 없다. 즉, 3+((8×7)-9)×2, 3+((8×7)-(9×2))은 모두 괄호 안에 괄호가 있기 때문에, 올바른 식이 아니다.수식이 주어졌을 때, 괄호를 적절히 추가..

알고리즘/자바

[백준 알고리즘]20055번 자바(Java)컨베이어 벨트 위의 로봇

문제길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 Ai이다. 위의 그림에서 1번 칸이 있는 위치를 "올리는 위치", N번 칸이 있는 위치를 "내리는 위치"라고 한다.컨베이어 벨트에 박스 모양 로봇을 하나씩 올리려고 한다. 로봇은 올리는 위치에만 올릴 수 있다. 언제든지 로봇이 내리는 위치에 도달하면 그 즉시 내린다. 로봇은 컨베이어 벨트 위에서 스스로 이동할 수 있다...

알고리즘/자바

[백준 알고리즘] 22251번 자바(Java) 빌런 호석

문제치르보기 빌딩은 1층부터 N층까지 이용이 가능한 엘리베이터가 있다. 엘리베이터의 층수를 보여주는 디스플레이에는 K 자리의 수가 보인다. 수는 0으로 시작할 수도 있다. 0부터 9까지의 각 숫자가 디스플레이에 보이는 방식은 아래와 같다. 각 숫자는 7개의 표시등 중의 일부에 불이 들어오면서 표현된다. 예를 들어 K=4인 경우에 1680층과 501층은 아래와 같이 보인다.  빌런 호석은 치르보기 빌딩의 엘리베이터 디스플레이의 LED 중에서 최소 1개, 최대 P개를 반전시킬 계획을 세우고 있다. 반전이란 켜진 부분은 끄고, 꺼진 부분은 켜는 것을 의미한다. 예를 들어 숫자 1을 2로 바꾸려면 총 5개의 LED를 반전시켜야 한다. 또한 반전 이후에 디스플레이에 올바른 수가 보여지면서 1 이상 N 이하가 되도..

Ash_jisu
JisuStory