본문 바로가기

👩‍💻TIL66

[ElasticSearch] Scroll API를 사용하여 검색 / JAVA, Python 코드 [ElasticSearch] Scroll API를 사용하여 검색 / JAVA, Python 코드 이전 포스팅에 작성한 대로, 엘라스틱서치에서 1만 건 이상 대량의 데이터를 한 번에 검색하려고 하면 오류가 발생한다. 따라서, 검색조건을 잘 설정하여 1만 건 이하로 검색하거나 max_result_window를 늘려 검색하는 방법이 있다. 그러나 무작정 max_result_window를 늘리게 되면, 많은 리소스 사용으로 성능 문제를 야기할 수 있으며, 최대로 늘릴 수 있는 값이 5만건으로 한정적이기 때문에 권장되지 않는다. 더보기 👉관련글 보기 : [👩‍💻TIL/엘라스틱서치] QueryPhaseExecutionException: Result window is too large 에러 그래서 내가 대량 검색에 .. 2020. 4. 23.
[JavaScript] setInterval, setTimeout 사용하여 반복 실행을 해보자 [JavaScript] setInterval, setTimeout 사용하여 반복 실행 자바스크립트에서 반복 작업 시 자주 만나는 setInterval()과 setTimeout()에 대해 정리해보려고 합니다. 💡 먼저, setTimeout()란? 특정 코드나 함수를 의도적으로 지연한 뒤 실행하고 싶을 때 사용하는 타이밍 이벤트 함수입니다. setTimeout() 함수의 내부에 위치한 코드는 콜백함수로 지연시간 뒤에 실행될 코드를 설정합니다. 지연시간은 밀리세컨드 단위로 설정해야 하며 지연시간 1000은 1초를 의미합니다. 만약 5초 뒤에 Time Out Test!이라는 문구를 콘솔에 출력하고 싶다면, 아래와 같이 작성합니다. setTimeout(function() { console.log('Time Out.. 2020. 4. 21.
[MySQL] The server time zone 에러 해결 The server time zone value ‘KST’ is unrecognized or represents more than one time zone 에러 The server time zone value ‘KST’ is unrecognized or represents more than one time zone : The server time zone value ‘KST’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone.. 2020. 4. 10.
[MyBatis] BindingException: Invalid bound statement (not found) 에러 Invalid bound statement (not found): 에러가 발생하는 이유가 몇 가지 있는데 원인은 아래와 같다. Mapper Interface와 mapping되는 xml파일에 오타가 있는 경우 : 예를 들면 id와 Interface에 메소드명이 일치하지 않는 경우 classpath에 경로가 잘못된 경우 xml이 저장될 경로는 잘못 생성한 경우 나는 첫번째 방법으로 mapper의 메소드명과 xml파일의 id를 일치시켜주니 해결이 되었다! 2020. 4. 10.
[ElasticSearch] QueryPhaseExecutionException: Result window is too large 에러 [ElasticSearch] QueryPhaseExecutionException: Result window is too large 에러 org.elasticsearch.search.query.QueryPhaseExecutionException: Result window is too large, from + size must be less than or equal to: [10000] but was [232131]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting. 오전까지 잘되.. 2020. 4. 2.
[Base 64] Base64이란 무엇일까? / Base64 사용 이유와 인코딩과 디코딩 [Base 64] Base64이란 무엇일까? / Base64의 인코딩과 디코딩 인코딩(encoding)은 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식을 말합니다. 이메일 등의 전송, 동영상이나 이미지 영역에서 많이 사용되며, 반대말은 디코딩(decoding)입니다. Base64를 글자 그대로 직역하면 64진법이라는 뜻입니다. 컴퓨터 분야에서 쓰이는 Base 64(베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념입니다. Base64는 어떤 문자.. 2020. 3. 31.
[OpenCV] OpenCV의 개념/ 이미지 오픈소스 라이브러리 💡 OpenCV란? - Open Source Computer Vision 의 약자 - 실시간 이미지/영상 처리에 사용하는 오픈 소스 라이브러리 - Python, C++, Java 와 같은 다양한 개발 환경을 지원 - Windows, Linux, Mac OS, iOS 및 Android같은 다양한 OS를 지원하는 크로스 플랫폼 💡OpenCV 다운로드 및 설치 http://opencv.org/ http://sourceforge.net/projects/opencvlibrary/ 위의 링크 중 하나를 클릭하여 다운받아 압축을 풀고 실행하여 사용한다. 파이썬에서 OpenCV는 pip을 통해 아래와 같이 설치할 수 있다. pip install opencv-python 💡 파이썬으로 이미지 파일 읽고 쓰기 OpenCV.. 2020. 3. 31.
[JUnit] JUnit을 이용한 단위 테스트하기+단정(assert)메소드 정리 [JUnit] JUnit을 이용한 단위 테스트하기+단정(assert)메소드 정리 단위테스트의 중요성을 알고 있었지만, 여러가지 이유(핑계)로 사용하지 않고 있었습니다. 그러던 중 얼마전부터 jUnit을 이용한 단위테스트 방식의 개발을 시작하게 되어 저와 같이 테스트코드를 처음 짜보는 분들을 위해 관련 내용을 정리해보고자 합니다. 1. JUnit이란? 💡 자바용 단위테스트(Unit Test) 도구 입니다. 2. 단위테스트(Unit Test)란? - 소스코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다. - 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말합니다. (단위테스트를 사용하면 System.out으로 하는 번거로운 디버깅이 필요없습니다.) 3. j.. 2020. 3. 27.
[Elasticsearch] 엘라스틱 서치 분석기 구조 [Elasticsearch] 엘라스틱 서치 분석기 구조 엘라스틱서치를 공부하며 알게 된 내용들을 꾸준히 정리해보려고 합니다. 이번 글은 엘라스틱 서치 공식reference를 바탕으로 정리하였습니다. https://www.elastic.co/guide/en/elasticsearch/reference/current/analyzer-anatomy.html 먼저, 엘라스틱서치는 루씬기반의 텍스트 검색엔진 라이브러리입니다. 사전 매핑 없이 JSON 문서 형식으로 입력하면 별도의 이벤트가 없어도 바로 색인을 시작하며, 이렇게 저장된 데이터는 별도의 갱신 없이도 바로 검색에 사용될 수 있습니다. 이는 곧 색인 작업이 완료됨과 동시에 검색이 가능하다는 걸 의미합니다. 💡 분석기(analyzar)란? 엘라스틱서치는 아주.. 2020. 3. 27.
[SQL 튜닝] 드라이빙 테이블(DRIVING TABLE)의 개념/결정 규칙 [SQL 튜닝] 드라이빙 테이블(DRIVING TABLE)의 개념/결정 규칙 💡 먼저, 드라이빙 테이블(DRIVING TABLE)이란? JOIN시 먼저 액세스 돼서 ACCESS PATH를 주도하는 테이블을 드라이빙테이블이라고 한다. 즉, 조인시 먼저 액세스되는 쪽을 드라이빙 테이블(DRIVING TABLE, OUTER TABLE)이라고 하며, 나중에 액세스 되는 테이블을 드리븐 테이블(DRIVEN TABLE, INNER TABLE)이라고 한다. 인덱스(INDEX)의 존재 및 우선순위 혹은 FROM절에서의 TABLE 지정 순서에 영향을 받으며 어느 테이블이 먼저 엑세스되느냐에 따라 속도의 차이가 크게 날 수 있으므로 많은 양의 데이터를 다룰 때, 드라이빙 테이블은 매우 중요하다. 예를 들어, 조건을 만족하.. 2020. 3. 9.