분류 전체보기
[윈도우/맥/리눅스] 사용중인 프로세스와 포트 확인하기
[윈도우/맥/리눅스] 사용중인 프로세스와 포트 확인하기
2020.06.10포스팅으로 작성하기에는 소소한 내용이지만, 드문드문 발생하는 현상이기 때문에 명령어를 정리해두고 메모장으로 활용한다. 개발을 하다보면 암묵적으로 사용되는 기본 포트(8080, 21, 23 등)를 어떤 프로세스가 점유하고 있는 경우가 있다. 이 때 점유중인 프로세스를 확인해서 불필요한 프로세스가 점유 중인 경우에는 해당 프로세스를 강제 종료하거나, 다른 포트를 사용하도록 하여 포트 점유를 풀게 할 수 있다. 여기서는 사용중인 프로세스를 확인하고 종료하는 방법을 정리하겠다. 윈도우 점유중인 프로세스 (o가 프로세스id) 확인하기 netstat -ano | findstr 포트번호 프로세스ID로 확인하기 tasklist /FI "PID eq 프로세스ID" 프로세스 종료 taskkill /F /PID 12808 ..
Elasticsearch 유사도 알고리즘(similarity) BM25과 TF/IDF
Elasticsearch 유사도 알고리즘(similarity) BM25과 TF/IDF
2020.05.16유사도 검색 - https://12bme.tistory.com/479?category=737765 Elasticsearch 버전 5.0부터는 _score 점수를 계산하는 기본 유사도 측정 알고리즘이 바뀌었다. TF/IDF(classic)에서 BM25로 바뀐 이유는, BM25가 검색의 정확도가 더 정교하다는 판단을 내렸을 것이다. [링크 : 왜 BM25가 더 정확한 지에 대한 내용] 하지만 각자 서비스하는 시스템이 다르기 때문에, 이 두 알고리즘이 어떤 차이가 있는지 알아야 더 적합한 알고리즘을 선택할 수 있을 것이라 생각한다. BM25와 TF/IDF의 차이점은 바로 아래에 써두었다. BM25와 TF/IDF의 차이점 단어의 빈도수 알고리즘 설명 TF/IDF common words can still infl..
Elasticsearch Object타입과 Nested타입
Elasticsearch Object타입과 Nested타입
2020.04.26엘라스틱서치의 필드 데이터 타입인 Object과 Nested을 알아보고, 유사한 두 타입의 차이점을 살펴보자. 인덱스 생성 시 매핑 설정을 정확히 하기 위해서는 필드 타입을 잘 이해하는 것이 중요하다. 책 엘라스틱서치 실무 가이드와 엘라스틱서치 공식가이드북를 바탕으로 정리한 포스팅입니다. 내용에 오류가 있다면 댓글로 알려주시면 감사하겠습니다 :) 공식 가이드북 : 7.2.5 Object와 Nested Object 데이터 타입 JSON 포맷의 object, 즉 객체 타입의 값을 사용할 수 있다. 내부 객체를 계층적으로 포함하고 있는 경우 object 타입 형태로 사용한다. object 타입 정의를 위해 특정 키워드를 사용하지 않고 문서 구조를 입력하면 된다. Object 타입을 이해하기 위해 아래 예제를 ..
로드밸런서(Load balancer)와 프록시(Proxy)
로드밸런서(Load balancer)와 프록시(Proxy)
2020.04.20로드밸런서와 프록시가 어떻게 다른 지 명확하게 이해를 못하겠다. 구글링 중에 굉장히 잘 정리된 "빛과 소금같은 문서"를 발견했다. (번역해주셔서 감사합니다) 내가 혼동하고 있었던 부분을 명확히 짚어주었고, 로드밸런서와 프록시를 설명하고 있다. 뉴비인 내가 이해하기에는 많은 개념들이 있지만 존재만으로도 감사한 문서다. 나에게 필요한 수준에서 간단히 내용을 정리한다. [번역] 최신 네트워크 로드 밸런싱 및 프록시 소개 Introduction to modern network load balancing and proxying 로드밸런싱 위키 정의 컴퓨팅에서 로드 밸런싱은 컴퓨터, 컴퓨터 클러스터, 네트워크 링크, 중앙 처리 장치 또는 디스크 드라이브와 같은 여러 컴퓨팅 리소스에서 작업 부하 분산을 향상시킵니다...
Elasticsearch 노리(Nori)형태소 분석기의 stoptags 한글 품사 태그 정리
Elasticsearch 노리(Nori)형태소 분석기의 stoptags 한글 품사 태그 정리
2020.04.19Elasticsearch에서 공식적으로 지원하는 한글 형태소 분석기 노리(Nori)의 품사 태그와 예시를 정리하였다. 공식 가이드북에 따르면 한글 검색에서는 명사, 동명사 정도만을 검색하고 조사, 형용사 등은 제거하는 것이 바람직하다고 한다. 하지만 이는 서비스하고 있는 업무 도메인에 따라 달라질 수 있을 것이다. 엘라스틱서치에서 지원하는 Nori의 품사 태그들이 어떤 것이 있는 지 알아보고, 각자의 상황에 맞게 쓰는 것을 추천한다. Nori 토크나이저가 사용하는 한글 사전은 mecab-ko-dic과 세종 말뭉치이다. 한글 단어의 품사 태그는 사전마다, 한글 형태소 분석기의 내부 로직에 따라 달라질 수 있다. 예를 들어, 국립국어원 혹은 다른 한글 형태소 분석기에서는 어떤 단어를 "접두사"로 매핑하였지만..
Elasticsearch in action 정리 블로그 발견
Elasticsearch in action 정리 블로그 발견
2020.04.18엘라스틱서치 구글링 중에 좋은 블로그를 발견하였다. elasticsearch in action 이라는 책을 정리하신 글로 보인다. 내가 보고있는 책 보다 심도있는 내용을 다루고 있어서 참고하기 좋아 보인다. "길은 가면, 뒤에 있다."라는 블로그이다. - 엘라스틱서치 : https://12bme.tistory.com/471?category=737765 - 데이터 검색 : https://12bme.tistory.com/477?category=737765 - 데이터 분석 : https://12bme.tistory.com/478?category=737765 - 유사도 검색 : https://12bme.tistory.com/478?category=737765 - 집계데이터 : https://12bme.tisto..
Elasticsearch 대소문자 색인과 검색 keyword tokenizer VS normalizer
Elasticsearch 대소문자 색인과 검색 keyword tokenizer VS normalizer
2020.04.17엘라스틱서치에서 데이터를 대소문자 구분없이 검색하기 위해서는 lowercase 혹은 uppercase 토큰 필터를 적용해야한다. 토큰필터가 적용되게 색인하기 위해서는 인덱스 매핑 시점에 필드에 analyzer나 normalizer를 설정하면 된다. Elasticsearh 공식문서, 김종민님의 공식가이드북, 책 엘라스틱서치 실무 가이드를 참고하여 제가 이해한 내용을 정리한 포스팅입니다. 포스팅 내용의 오류를 발견하시면 댓글 부탁드립니다 :) 예를 들어 cafe, Cafe, café 는 모두 다른 term이다. 하지만 사용자가 "cafe"로 검색했을 때 대소문자 구분없이 세 개의 term이 모두 검색되도록 할 수 있다. (café는 아스키코드를 처리해야하는 데 아래에서 내용을 다룬다) 필드에 토큰 필터를 적..
로드밸런싱 유형 (DNS, Hardware, Software)
로드밸런싱 유형 (DNS, Hardware, Software)
2020.04.13로드 밸런싱은 아래 유형 중 하나로 구성되며, 어떤 유형의 로드밸런싱을 구성하던지 로드밸런서의 기능은 동일하다. 리버스 프록시(reverse proxy)처럼 동작하며 여러 대의 서버로 트래픽을 부하를 분산하는 것이다. 본인의 상황에 맞게 동작 방식과 트래픽을 분산하는 내부 알고리즘 등이 조금씩 다르게 적용할 뿐이다. DNS - RR(Round Robin) Hardware Software - HAProxy, Nginx, Seesaw, KEMP 등 각 방식에 대해 간단하게 알아보자. Load Balancing with DNS DNS(Domain Name System)은 도메인 이름을 IP주소로 변환하는 기술이다. 하나의 도메인 이름을 라운드로빈(Round Robin) 방식으로 N개의 IP주소로 변환하여 트래..
로드밸런서 (L4, L7, NginX, HAProxy)
로드밸런서 (L4, L7, NginX, HAProxy)
2020.04.07네트워크 로드밸런싱에서 주로 언급되는 로드밸런서 L4, L7, HAProxy 위주로 설명하겠다. L4 (Transport Layer) L4는 IP, Port, Session 기반으로 로드밸런싱하며 웬만한 서비스에서는 이것만으로 부하 분산이 충분히 가능하다. 주의해야할 점은 L4는 VIP(가상 IP주소)단위로만 로드밸런싱하기 때문에 반드시 하나의 VIP에 연결된 서버의 수가 비슷해야 한다. 만일 일부 서버에 문제가 생긴다면, 동일한 VIP에 연결된 다른 서버 역시 연달아 부하가 발생하여 더 심각한 문제가 발생할 수 있다. 또한 L4의 스펙상 최대 세션 수는 존재하나 세션을 맺는 시나리오에 따라 최대 성능이 다르다. 때문에 최대 세션 용량에 도달하지 않았어도 추가로 세션을 연결할 수 없는 문제가 발생하기도 ..
[책 리뷰] 엘라스틱서치 실무 가이드
[책 리뷰] 엘라스틱서치 실무 가이드
2020.04.04책 내용은 좋았다! 다만 해당 책의 엘라스틱 버전이 낮고, 엘라스틱서치에서 한국 전파자(?)이신 김종민님의 책도 있으니 꼭 해당 책을 고집할 필요는 없어보인다. 그리고 엘라스틱서치 자체에서 예약어의 의미를 혼용해서 사용하고 있어서 다소 헷갈리는데 이 책의 문제는 아니다. 그냥 엘라스틱서치가 이렇게 생겨먹은 것 같다. 스터디 시작 : 2020년 3월 엘라스틱서치(ElasticSearch) 공부를 위해 스터디를 진행한 지 보름 정도가 되었다. 스터디 책 : 엘라스틱서치 실무 가이드 엘라스틱서치 실무 가이드 - YES24 『엘라스틱서치 실무 가이드』는 오픈소스 검색엔진의 대표 주자인 엘라스틱서치에 대한 전반적인 내용을 다룬다. 하지만 단순히 엘라스틱서치의 기능을 단편적으로만 설명하고 끝내는 것이 www.yes..
지역성을 고려한 캐시(Cache)
지역성을 고려한 캐시(Cache)
2020.03.19서버 성능을 높여주는 캐시(Cache)란? 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 만약 짧은 시간 동안 동일한 요청이 여러 번 발생할 경우, 해당 요청의 결과를 캐시에 저장한다면 서버의 처리 속도를 높일 수 있다. N건의 처리를 해야했었는데, 1건만 처리 후에 캐시에 저장해두면 이후 결과는 캐시 메모리에 접근하여 얻을 수 있다! 캐시는 각 레이어별로 적용이 가능하다. (DB, WAS, Web server에서 각각 가능하다는 뜻) 캐시에 저장하는 방식 - 사용할 결과를 그대로 저장 (빠르지만 많은 메모리 소요) - 구조화하여 저장 (조금 느리지만 보다 효율적인 메모리 사용 가능) 지역성을 고려한 설계 - 시간적 지역성 (Temporal Locality) : 특정 데이터가 한..
로드밸런싱(Load Balancing)과 고가용성(HA)
로드밸런싱(Load Balancing)과 고가용성(HA)
2020.03.19목차 로드밸런싱(Load Balancing)의 이점 로드밸런서(Load Balancer) 로드밸런서의 주요 기능 로드밸런서 동작 방식 서비스 중단 없이 장애를 대처하는 방법 (HA 클러스터 구성) 트래픽을 분산하는 로드밸런싱 주요 알고리즘 로드밸런싱 (Load Balancing)의 이점 로드밸런싱이란 병목현상을 방지하기 위해 서버의 부하를 분산하기 위해 N개의 서버에 트래픽을 분배하는 것이다. 트래픽이 높은 서비스를 다룰 때, 서비스의 무결성과 가용성을 유지하기 위해 로드 밸런싱은 필수적이다. From DNS requests to web servers, load balancing can mean the difference between costly downtime and a seamless end use..