
만약 엘라스틱 서치에서 RDBMS에서 처럼 GroupBy로 묶으려면 해당 필드를 subAggregation형태로 쿼리DSL을 만들어 주면 된다. SQL SELECT * FROM example WHERE wantField = 3 GROUP BY field1, field2, field3 Query DSL GET example*/_search? { "size": 0, "query": { "bool": { "filter": [ { "term": { "wantField": { "value": 3, "boost": 1 } } } ], "adjust_pure_negative": true, "boost": 1 } }, "aggs": { "agg1": { "terms": { "field": "field1" }, "agg..

https://sqltoelasticsearch.azurewebsites.net/ SQL to Elastic Search Converter SQL to ElasticSearch Converter Place SQL in the text area below, then click Convert © 2018-2021 - Robert Gelb sqltoelasticsearch.azurewebsites.net 이렇게 쿼리를 넣고 Convert를 돌리면 이렇게 엘라스틱서치에서 사용할 수 있는 Query DSL로 변환해서 만들어 준다. 하지만 group by나 sort부분에서 적용안되는 부분들이 있으니 단순한 변환정도로 사용해야할 것 같다

Java.sql.Time을 millisecond로 변환하는 방법 Time 객체 생성은 @Deprecated표시가 되어있지만 예시 데이터를 생성하기 위해 사용했다. Time timeValue = new Time(0, 0, 12); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); Date convertdate = simpleDateFormat.parse(timeValue.toString()); System.out.println(convertdate.getTime()); 원하는 Java.sql.Time의 12초를 milliseco..

Docker로 실행중인 MariaDB의 설정파일인 my.cny파일을 수정하는 방법에 대해서 포스팅하려고 합니다. 우선 docker ps나 docker ps -a로 도커로 실행중인 컨테이너를 확인합니다. 원하는 컨테이너의 이름을 기억하고 해당 컨테이너에 진입합니다. docker exec -i -t [컨테이너이름] bash cd /etc/mysql로 설정파일인 my.cnf파일이 있는곳으로 이동해줍니다. cd /etc/mysql 다음에 vi my.cnf를 통해 파일을 수정합니다. 이처럼 command not found 가 뜬다면 vim을 설치해야 합니다. apt-get update로 패키지를 업데이트후 apt-get install vim을 해주세요. apt-get update apt-get install vi..

일전에 백준에서 큰수에 대한 문제를 풀었을때 만났었던 클래스인데 이번에 또 만나게 되어 BigDecimal과 BigInteger에 대한 설명을 포스팅하려고 합니다. BigInteger를 사용한 백준 문제 (10757번 큰 수 A+B) https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net MySQL에서 Data에 대한 매핑을 보다가 BIGINT 즉 큰수에 대한 값을 자바에서 convert해서 가져오는 과정에서 사용되는 클래스로 java.math.BigDecimal이 사용되는 것을 확인 할 수 있습니다. 그럼 BigDecimal과 BigInteger가 무엇인지에..

안녕하세요 이번에는 도커 설치법 및 사용에 대한 포스팅을 해볼까 합니다.https://dreamcoding.tistory.com/61 버추얼박스(VirtualBox) 설치 및 구동 (CentOS 8 버전)1. 가상 머신(VM) 환경 구축하기 VM에는 버추얼박스(VirtualBox)와 VMware Workstation의 방식이 있는데 제가 사용하는 방법은 오라클(Oracle)의 버추얼박스를 통해서 리눅스 환경을 구축 하겠습니다. https://wdreamcoding.tistory.com일전에 Virtual Box로 가상 머신을 통해서 리눅스를 사용하는 방법에 대해 포스팅을 한 적이 있는데요리눅스를 사용하는 이유로는 뭐 다양한 이유가 있겠지만 서버환경을 통해 원하는 서버를 구축하는데에 사용하는데 있어서 사용..

자꾸 찾아보게 되어서 이번기회에 정리해서 포스팅 해보려고 합니다. 컬럼 추가1. 테이블에 컬럼 맨뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [컬럼명] [자료형]EX)ALTER TABLE board ADD COLUMN board_type varchar(100) NOT NULL; 2. 테이블에 컬럼 맨앞에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] [자료형] FIRSTEX)ALTER TABLE employee ADD COLUMN working_day varchar(200) NOT NULL FIRST 3. 테이블에 지정 컬럼 뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] 자료형 AFTER [앞컬럼명]EX)ALTER TABLE em..

자바에서 자주 발생하는 예외들과 예외에 대한 처리들에 대해서 정리 해 보도록 하겠습니다. 에러와 예외컴퓨터 하드웨어의 동작의 오작동 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 자바에서는 에러(error)라고 합니다.에러는 JVM 실행에 문제가 있다는 것이므로 JVM 위에서 실행되는 프로그램을 아무리 견고하게 만들어도 결국 실행 불능 상태가 되어버립니다.자바에서는 에러 이외에 예외(exception)이라고 부르는 오류가 있다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하다.그러나 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료하지 않고 정상 실행..

DIP 객체 지향 프로그래밍 및 설계에서 5가지 기본원칙(SRP, OCP, LSP, ISP, DIP)의 마지막 다섯번째 원칙인 DIP(Dependency Inversion Principle)에 대해 알아보겠습니다. 의존관계 역전 원칙 (Dependency inversion principle) 객체 지향 프로그래밍에서 의존관계 역전 원칙은 소프트웨어 모듈들을 분리하는 특정 형식을 지칭한다. 이 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다. 이 원칙은 다음과 같은 내용을 담고 있다. 첫째, 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야..

객체 지향 프로그래밍 및 설계에서 5가지 기본원칙(SRP, OCP, LSP, ISP, DIP)의 네번째 원칙인 ISP(Interface Segregation Principle)에 대해 알아보겠습니다. ISP(인터페이스 분리 원칙)은 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다. - 위키백과- 우선 여기서 말하는 인터페이스의 개념에 대해 잠깐 알아보자 인터페이스란? 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 인터페이스의 역할이자 개념이다. 어떤 클래스가 있고 그 클래스가 특정한 인터페이스를 사용하여 구현된다면 그 클래스는 반드시 그 인터페이스에 포함되어 있는 메소드를 구현하도록 강제하는 것이다. 즉, 자바의 다형성을 극대화하여 개발 코드 수정을 줄이고 프로그램 ..

객체 지향 프로그래밍 및 설계에서 5가지 기본원칙(SRP, OCP, LSP, ISP, DIP)의 세번째 원칙인 LSP(Liskov Substitution Principle)에 대해 알아보겠습니다. 치환성(영어: substitutability)은 객체 지향 프로그래밍 원칙이다. 컴퓨터 프로그램에서 자료형 {\displaystyle S}S가 자료형 {\displaystyle T}T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 {\displaystyle T}T의 객체를 자료형 {\displaystyle S}S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 리스코프 치환 원칙(영어: Liskov substitution principle, LSP)은 바바라 리스코프가..

SOLID 객체 지향 프로그래밍 및 설계에서 5가지 기본원칙(SRP, OCP, LSP, ISP, DIP)의 두번째 원칙인 ORP(Open-Closed Principle)에 대해 알아보겠습니다. Open-Closed Principle라는 뜻을 한국말 그대로 받아들이면 열려있으면서 닫힌 원칙이라는 말이 됩니다. 열려있으면서도 닫혀있다는게 무슨 소리인거지.. 어렵게 생각할 수도 있지만 간단하게 생각하면 OCP는 매우 명확한 의미를 가집니다. OCP에서의 Open은 확장에 대해서, Closed는 변경에 대해서 의미합니다. 즉, "확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다."라는 뜻입니다. 개발적인 의미로는 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다는 뜻을 가지는 원..