본문 바로가기

전체 글

(215)
[정리]analyzer를 사용한 수집 정보의 유사성 계산 요약 0. 수집 데이터는 기존 데이터와 완벽 매칭되는 것이 아닌 부분 데이터 검색 결과값이다. 1차 개선 : null 배제 후 유의미한 데이터 포집 2차 개선 : 유의미 데이터 중 overview - wiki_title 매칭하여 용어 변수 비교 (동음이의어, 잘못된 설명 제거로 신뢰성 향상) 3차 개선 : attraction_name - wiki_title의 매칭 값을 기존 결과(match_term에) 보정 값으로 추가 (상위 데이터셋 중 임의 데이터 200개 수기 분석 후 보정치 적용) 이를 통해 용어 일치 비율이 20% 이상 되는 값을 신뢰성 있는 데이터로 판단하여 제공하였다. 이를 도식화한다면 다음과 같다. 최초 문제 상황 현재 기본 공공데이터 API의 지명 이름(attraction_name)과, ..
가볍게 알아보는 인덱스와 성능에 대해(개선예정) 인덱스? DataBase 분야에서 Table에 대한 동작 속도를 높여주는 자료구조. 마치 책갈피처럼, 인덱스를 설정하면 빠르게 색인을 할 수 있도록 도와준다. 인덱스의 구조 key, file, data에 맞추어 세개의 종류가 존재한다고 한다. 1. Clustered Index 대표적으로 PK 인덱스가 있다. 2. NonClustered Index 일반적인 인덱스를 지칭하며, 여러 개를 지정할 수 있다. 하지만 클러스터와 달리 줄을 세우는 느낌은 아니다. 실습(Clustered Index) alter table TBL_CODE add primary key(CODE) PK 테이블을 설정할 경우 CODE에 따라 자동 정렬된다. 클러스터드 인덱스의 특징인 줄세우기가 바로 나타남을 확인할 수 있다. 실습(Nonc..
ES 서버 Nginx 설정(xpack 보안 설정) 문제 보안 이슈로 계정을 추가하고, yml에 xpack을 추가한 이후, 스프링부트에서 연동이 되지 않는다. 이는 내 서버가 https가 적용되지 않았기 때문이다. 기존 springboot 연동 urls는 http로 시작했다. Nginx 설치 https://gist.github.com/woorim960/dda0bc85599f61a025bb8ac471dfaf7a [Nginx를 이용하여 https 적용하는 법 Nginx를 이용하여 https 적용하는 법. GitHub Gist: instantly share code, notes, and snippets. gist.github.com](https://gist.github.com/woorim960/dda0bc85599f61a025bb8ac471dfaf7a) con..
[Elasticsearch] 여행지 정보 키워드 추출, 집계 프로젝트 진행 중 가장 큰 고민은, 단순 match가 아닌, 어떻게 하면 정보를 정확하고 유사하게 뿌려줄까? 라는 고민이었다. attraction_name : 가장 높은 가산치를 줘야 할 것 같다. wiki_title match 점수 공공데이터의 description : 그 다음 높은 가산치 wiki의 description : 낮은 가산치 검색어가 있을 것이다. 단일 검색어든 뭐든.. 일단 content_id로 한번에 묶으려고 한다. 검색어가 '서울 남산공원' 이라면 우리의 데이터는 '서울' 과 '남산공원' 이 같은 contend_id로 묶여있기 때문. 이 content_id는 기본 베이스인 공공데이터의 id 번호이다 script를 써야 할 것 같은데, 먼저 content_id로 묶을 것이다. 여러 Do..
[ElasticSearch] MySQL Like와의 검색 속도 비교 역인덱싱 엘라스틱서치의 역인덱싱(inverted indexing)은 문서가 포함하고 있는 각 단어의 색인을 만드는 과정을 말한다. 각 단어에 대한 문서의 참조를 역순으로 저장하는데, 이렇게 하면 검색 엔진이 단어를 빠르게 찾고 해당 단어가 포함된 모든 문서를 즉각적으로 확인할 수 있다. 역인덱싱의 시간 복잡도 1. 색인 생성: 각 문서에 대해 단어를 추출하고 색인을 만드는 데 O(N * M)의 시간이 걸린다. 여기서 N은 문서의 수, M은 문서당 평균 단어 수다. 2. 검색 연산: 색인이 생성되고 나면, 특정 단어의 검색은 매우 빠르다. 색인에서 직접 해당 단어에 접근하여 연관된 문서들을 찾을 수 있으므로, 이론적으로 O(1)에 가까운 시간 복잡도를 갖는다. 하지만 실제로는 검색어에 대해 매칭되는 문서들..
1주차 스터디 노트 면접 예상 질문 1. 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 답변 - 운영체제는 컴퓨터 시스템이 동작할 때, 이들 자원을 적절하게 사용할 수 있는 방법을 제공한다. - 컴퓨터 하드웨어와 사용자 간의 인터페이스 역할을 하는 시스템 소프트웨어이다. 이는 현대의 정부와 유사하다. 정부 자체로는 유용한 기능을 제공하지 않지만, 유용한 작업을 할 수 있는 환경을 만드는 것이다. - 역할 1. 메모리 자원을 관리한다. (하드웨어 자원을 관리) 실행할 프로그램을 메모리에 적재하고, 실행되지 않는 프로그램을 메모리에서 삭제한다. CPU, 메모리, 입출력 장치 등 컴퓨터 자원을 효율적으로 관리하고 할당한다. - 역할 2. CPU 자원을 할당하여 프로그램들이 올바르게 실행되도록 관리한다. 이는 메모리에 ..
스터디 시작 개요 본격적으로 프로젝트 이후 오후 시간에 CS를 학습하려고 한다. 지금까지는 동기생들, 주변 스터디 팀원들과 알음알음 질의응답식으로 예상 문제를 던져주는 것에 그쳤지만, 이번 스터디 참여를 계기로 면접을 위한 지식이 아닌 개발을 위해 필요한 지식적 기반을 쌓고자 한다. 일정 주차별 핵심 소재를 필두로 원리를 학습하고, 예상 질문을 서로 질의해보며 기반을 다질 것이다! https://jscode.notion.site/CS-e7a5eef418f24e83842b331803c34458 모의면접으로 학습하는 컴퓨터공학(CS) 스터디 📋 스터디 개요 jscode.notion.site
[ElasticSearch] 집계함수 정의와 적용 PUT _index_template/scrap_template_wiki { "index_patterns" : [ "scrap_wiki_*" ], "template" : { "settings" : { "index" : { "analysis" : { "filter" : { "length_filter": { "type": "length", "min": 2 }, "nori_filter" : { "type" : "nori_part_of_speech", "stoptags" : [ "E", "IC", "J", "MAG", "MM", "NA", "NR", "SC", "SE", "SF", "SH", "SL", "SN", "SP", "SSC", "SSO", "SY", "UNA", "UNKNOWN", "VA", "VCN",..