본문 바로가기

전체 글

(215)
17141 - 연구소(G4) 문제 https://www.acmicpc.net/problem/17141 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이러스는 퍼지게 된다. 연구소는 크기가 N×N인 정사각형으로 나타낼 수 있으며, 정사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 빈 칸은 바이러스를 놓을 수 있는 칸이다. 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되며, 1초가 걸린다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 0은 빈 칸, 1은 벽, 2는 바이러스를 놓을 수 있는 칸이다. 2..
[ElasticSearch] 로그스태시 최종 삽입 로그스태시를 통해 5만여개의 데이터를 삽입하였다. 빅데이터라고는 할 수 없지만, 900MB의 텍스트 데이터에서 유효한 토큰을 추출 할 수 있을 것이라고 기대해본다. 그런데, 이렇게 넣는 데이터로 만들어지는 인덱스의 설정을 만들어지고 reindex로 만드는 것 보다는 인덱스 템플릿을 만들고 적용하는 것이 더욱 효율적일 것이다. 숙박업소와 여행지의 템플릿을 설정하려고 한다. # 숙박업소 PUT _index_template/scrap_template_accmmo { "index_patterns": ["scrap_accommo_*"], "template": { "settings": { "number_of_shards": 1, "analysis": { "analyzer": { "korean": { "type": ..
[ElasticSearch]Springboot 매치 쿼리 - @Query, @Mapping, @Setting @Mapping, @Setting https://javas.tistory.com/17 @Setting, @Mapping nori 설정 @ 십질 끝에 정리 - Setting or Mapping 은 최초 index (table) 생성시 적용이 됩니다. - 중간에 끼어 넣기 안됨 , 최초 생성하면서 설정 해줘야함 . - spring data @Document 객체에 @Setting, @Mapping annotation을 통해서 javas.tistory.com https://velog.io/@dktlsk6/Spring-boot-ElasticSearch-%EC%97%B0%EB%8F%99-%ED%95%98%EC%97%AC-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EA%B2%80%EC%83%89-%EC%8..
[ElasticSearch, LogStash] LogStash로 csv 파일 적재 로그스태시란? 로그는 표준화되지 않은 임의의 데이터 뭉치들이라고 할 수 있다. 이러한 데이터들을 수집하는 과정에서 형태를 분석하고, 시스템에서 인식해서 저장할 수 있도록 정제하는 작업을 편리하게 지원한다. 이전 게시글에서 로그스태시를 설치하였다. https://csg1353.tistory.com/35 [ElasticSearch] Nori 분석기, 오타 보정(fuzzy), 로그스태시(logStash) 노리 분석기 레퍼런스1 : https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori 6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북 이번 장에서는 elasticsearch가 데이터를 저장하는 색인 과정에서 csg1353..
[ElasticSearch] Nori 분석기, 오타 보정(fuzzy), 로그스태시(logStash) 노리 분석기레퍼런스1 : https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori 6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북이번 장에서는 elasticsearch가 데이터를 저장하는 색인 과정에서 처리하는 수많은 작업들에 대해 알아보았습니다. 텍스트 분석 및 텀의 개념과, 데이터 분석에 사용되는 애널라이저, 토크나이저,esbook.kimjmin.net 잘 설명한 글https://hanamon.kr/elasticsearch-%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84-nori-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D%EA%B8%B0-%EA%B2%8..
[ElasticSearch] 엘라스틱서치 - Springboot 연동 이슈 이번 프로젝트간 우리 서버는 총 두대이다. (편의상 본체 서버 A, 서브 서버 B로 부르겠다.) ElasticSearch(특히 kibana)와 스크래퍼가 자원을 많이 먹기에, 보조 서버 B에 기능을 할당해놓은 상태이다. 그리고 주요 로직은 A 서버에 집중되어 있다. 따라서 A 서버의 springboot와 B 서버의 ElasticSearch를 연동해야 한다. 이 과정에서 자연스럽게 원격 접근을 위해 X-pack등의 보안 기능을 고려해야 한다는 점을 이제야 깨닫았다. 다행스럽게도 7.1~7.2 버전부터 해당 기능이 부분적으로 무료로 풀린 듯 하다. 7.2 version x-pack 공식 docs : https://www.elastic.co/guide/en/elasticsearch/reference/7...
인터셉터(Interceptor)란? 인터셉터. 수업을 수강하며 들었었던 개념이지만, 문득 어디에 쓰이고 어떻게 사용하는지는 알아야 될 것 같아 찾아보고 글을 쓴다. 이게 뭔데요? 인터셉터는 스프링 프레임워크에서 HTTP 요청을 가로채거나 수정, 추가 작업을 할 수 있는 구성 요소다. 이 얘기는 해당 스프링 서버로 들어오는 HTTP 요청에서 로직보다 앞세워 무언가 선행 조치를 취할 수 있다는 말이다. 내가 짠 코드보다 앞서서 전처리를 하거나.. 그렇기에 관리자 인증 등의 예시가 나왔던 것이 이해가 된다. 인터셉터는 MVC 패턴에서 Controller로 가기 전, 후에 작동해서 웹 애플리케이션의 전반적인 동작을 관리한다. Filter랑 뭐가 달라요? 필터 역시도 앞서 말했던 것처럼, 유사한 역할을 수행한다. 다만 가장 큰 차이점은 생성 위치와..
짧게 진행하는 이번주 회고 성과 : 스크래퍼 적용 완료 본격적으로 셀레니움을 통한 플랫폼 별 정보 수집이 가능하게 되었다. MongoDB에 1차 분류 텍스트들을 현재 보관 중이다. ElasticSearch 학습 본격적인 개발에 앞서 필요한 기능들에 대해 학습하고 정리하는 시간을 가졌다. 인덱스, 도큐먼트, 쿼리, 분석기, 필터링, 그리고 더해서 노드와 클러스터의 개념까지. 이제 스크래퍼를 통해 데이터를 수집하는 만큼, 정말로 검색 기능 및 유사도 측정 기능을 완성해야 한다.