전체 글 364

우선순위 큐(Priority Queue)

우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 표준 라이브러리 형태로 지원 우선순위 큐를 구현하기 위해 사용하는 자료구조 중 하나 최소 힙(Min Heap), 최대 힙(Max Heap) 존재 Min Heap = 값이 낮은 값부터 추출 Max Heap = 값이 높은 값부터 추출 다익스트라 최단 경로 알고리즘을 포함해 다양한 알고리즘에서 사용 리스트는 삽입에 굉장히 빠른 시간이 소요되지만 삭제에는 전체 데이터를 돌아야한다. 힙의 이진트리 형태를 이용한다. 사용예제 1. 최소 힙 import heapq #오름차순 힙 정렬(Heap Sort) def heapsort(iterable): h = [] result = [] #모든 원소를 차례대로 힙에 삽입 for value in iterable: hea..

최단 경로 문제 (다익스트라)

최단 경로 알고리즘이란 가장 짧은 경로를 찾는 알고리즘 1. 한 지점에서 다른 한 지점까지의 최단 경로 2. 한 지점에서 다른 모든 지점까지의 최단 경로 3. 모든 지점에서 다른 모든 지점까지의 최단 경로 각 지점은 그래프에서 노드로 표현 지점 간 연결된 도로는 그래프에서 간선으로 표현 1. 다익스트라 최단 경로 알고리즘 개요 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산 음의 간선이 없을 때 작용 그리디 알고리즘으로 분류 매 상황에서 가장 비용이 적은 노드를 선택하는 과정을 반복 1.1 다익스트라 최단 경로 알고리즘 출발 노드를 설정 최단 거리 테이블을 초기화 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리..

6) Kibana 설치 및 환경설정

간단하게 홈페이지에 들어가 링크를 복사하고 붙여넣기로 터미널에서 다운로드할 수 있다. 여기서는 직접 써보자. elastic@kibana-1:~$ wget https://artifacts.elastic.co/downloads/kibana/kibana-8.2.0-linux-x86_65.tar.gz //압축 해제 elastic@kibana-1:~$ tar -zxf kibana-8.2.0-linux-x86_64.tar.gz 그리고 ls를 통해 확인해보면 잘 압축해제가 완료됐다. 엘라스틱 노드1,2,3했던 것처럼 포트포워딩을 해준다. elastic@kibana-1:~$ /etc/netplan elastic@kibana-1:/etc/netplan$ sudo vi 00-installer-config.yaml 포트포워..

5) ElasticSearch 추가 node 설치하기

hostnamectl set-hostname 명령어를 통해 HOSTNAME을 변경해준다. elastic@elastic:~$ sudo hostnamectl set-hostname elastic-2 elastic@elastic-2:~$ echo ${HOSTNAME} HOSTNAME이 ‘elastic’에서 ‘elastic-2’로 변경된 것을 확인할 수 있다. elastic@elastic-2:/etc/netplan$ sudo vi 00-installer-config.yaml 이전에 [Preferences..]에서 설정해준 Port Forwarding Rules를 ‘elastic-2’에 적용하기 위해 00-installer-config.yaml파일을 수정한다 ‘elastic-2’의 host IP인 10.0.2.9..

4) 각 node Port Forwarding 및 세부 설정

elastic 첫 번째 노드에 접속해서 포트포워딩을 연결해줄 것이다. elastic@elastic:$ /etc/netplan elastic@elastic:/etc/netplan$ sudo vi 00-installer-config.yaml //비밀번호 입력 포트포워딩 주소를 10.0.2.8로 했으니 이와같이 입력해준다. 백업 문제로 원본파일은 건들지말고 원본을 복사한 common파일을 만들어 진행해보자. 다시 엘라스틱 위치로 들어와서 몇가지 폴더를 만들어준다. elastic@elastic:~$ mkdir elasticsearch-common elastic@elastic:~$ cd elasticsearch-common/ elastic@elastic:~/elasticsearch-common$ mkdir dat..

3) Elasticsearch 설치하기(Clone 설정, 환경설정)

스냅샷을 통해 클론을 만들면 다운로드, 기본설정 등을 안해주도 된다 Name : elastic-2 Path : /data/vm/elastic-2 MAC Address Policy : Generate new MAC addresses for all network adapters 이와같이 설정한다. elastic-3도 만들어주고 kibana도 만들어준다. elastic-1 ~3, kibana-1 를 만든것을 확인할 수 있다. 앞전에 했던 포트포워딩에 들어가 나머지 3개 노드도 설정해준다. 다시 노드를 켜서 이 경로로 이동한다. elastic@elastic:$ /etc/netplan elastic@elastic:/etc/netplan$ sudo vi 00-installer-config.yaml addresses..

2) ElasticSearch 설치(Port Forwarding)

아이디와 비밀번호를 입력하고 접속한다. Firefox에서 Elasticsearch를 다운로드한다 https://www.elastic.co/kr/downloads/elasticsearch 다운로드 홈페이지에 들어가서 다운로드 링크를 Copy한다 노드에서 직접 복사한 주소를 입력할 수 없으므로 터미널로 원격 접속한 후, 다운로드를 진행한다. 그렇기 위해서 포트 포워딩을 해주어야 한다. VM VirtualBox에서 File → Preferences… Network → 더블클릭 Port Forwarding 클릭 Name : 노드 명 Protocol : TCP Host IP : 본인의 IP Host Port : 만들고자 하는 Port Guest IP : 외부 IP설정 Guest Port : 포트번호 설정 추가해준..

1) Ubuntu에 엘라스틱 설치하기 : VM에서 Elastic node 생성

Ubuntu Elastic Search 설치, 엘라스틱서치 설치 과정 Ubuntu Elastic Stack 설치, 엘라스틱스택 설치 과정 우선 VM에서 사용할 노드들의 폴더를 [Home]-[data]-[vm] 경로에 만들어준다. Terminal에서 ./data/vm경로에서 elastic-1, elastic-2, elastic-3, kibana 폴더를 생성한다. /data/vm$ mkdir elastic-1 /data/vm$ mkdir elastic-2 /data/vm$ mkdir elastic-3 /data/vm$ mkdir kibana New 버튼을 누르고 Name : elastic-1 Machine Folder : /data/vm/elastic-1 Type : Linux Version : Ubuntu..

Intellij, Spring 작성에 도움되는 사이트

Spring | Guides spring.io Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thymeleaf is to provide a www.thymeleaf.org Get started with Bootstrap Bootstrap is a powerful, feature-packed fron..

병사 배치하기

1. 문제 설명 2. 문제 조건 3. 문제 해결 아이디어 기본 아이디어는 가장 긴 증가하는 부분 수열(LIS) 예를들어 array = {4,2,5,8,4,11,15} 가장 긴 증가하는 부분 수열은 {4,5,8,11,15} [Step 0] 우선 값이 1이 될 수 있도록 모두 1로 초기화한다. [Step 1] 2부터 시작한다. 앞에 4라는 인덱스가 1개존재한다. 점화식에 의해 4는 2보다 크므로 그대로 유지한다. [Step 2] i = 2일 경우를 살펴보자 인덱스2의 값인 5를 확인한다. 4와 비교했을때 5가 크므로 4의 값에 1을 더해 2가된다. 인덱스1의 값인 2를 비교했을때 1