RDMS vs Elasticsearch MySQL => 데이터베이스 => 테이블 => 열 / 행 Elasticsearch => Indices => Types => 문서 Type : 7.x버전 이상에서 사용되지 않음 인덱스 관리 인덱스는 한 개 혹은 여러 개의 샤드로 구성(샤드는 루씬 인덱스) 다량의 인덱스와 샤드는 Elasticsearch의 클러스터 스테이트 업데이트 작업을 느리게 하는 원인이 될 수 있다. 각 샤드에는 메모리에 보관하고 힙 공간을 차지하는 데이터가 있음 => 세그먼트 세그먼트가 샤드에 크기에 비례하지는 않는다 => 작은 샤드 여러개 보다 큰 샤드 하나가 좋다 (기존 6.x버전에서 기본값으로 5였던 샤드의 개수가 7.x 버전 부터는 1로 변경된 것과 관련이 있는거 같음) 샤드의 크기를 2..
Logstash를 이용한 서비스 로그 수집 www.elastic.co/guide/en/logstash/current/input-plugins.html Input plugins | Logstash Reference [7.10] | Elastic www.elastic.co Logstash는 다양한 input plugin 제공 file 및 log4j 로 어플리케이션 로그를 수집했던 경험 1. file plugin logstash-docker.yml 작성 metricbeat를 이용한 Logstash 모니터링이 최신 monitoring 은 옵션 version: '3' services: file-logstash: image: docker.elastic.co/logstash/logstash:${VERSION} con..
엘라스틱서치를 세 대의 인스턴스에 각각 세개의 노드로 구축한 방법 1. 자체 인증서 만들기 instances.yml 작성 인증서를 만드는데 필요한 정보 각 노드마다 만들어도 됨 instances: - name: master1 // 노드 이름 dns: - 도메인 // 도메인이 없으면 ip로 작성 ip: - 1번 서버 ip - name: master2 dns: - 도메인 ip: - 2번 서버 ip - name: master3 dns: - 도메인 ip: - 3번 서버 ip create-certs.yml 작성 내장된 elasticsearch-certutil 명령어를 이용해서 인증서를 만드는 방법 위에서 작성한 instances.yml 이용 /home/centos/elasticsearch/certs 경로에 인증서..
함수 정의 fun sum(a: Int, b: Int): Int { return a + b } 몸체가 expresstion인 경우 fun sum(a: Int, b: Int) = a + b 리턴 값이 없는 경우 (Unit 생략 가능) fun printKotlin(): Unit { println("hello Kotlin") }변수 정의 val(value): 불변 val a = 1 //초기화 필수 var(variable): 가변 var a문자열 템플릿 var name = "uni" var s = "My name is ${name}"if fun maxOf(a: Int, b: Int): Int { if (a > b) { return a } else { return b } } fun maxOf(a: Int, b: I..
코틀린 programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr class Solution { fun solution(expression: String): Long { var answer: Long = 0 val case = listOf( listOf("-", "+", "*"), listOf("-", "*", "+"), listOf("+", "-", "*"), listOf("+", "*", "-"), listOf("*", "+",..
코틀린 programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr class Solution { fun solution(numbers: IntArray, hand: String): String { var answer = "" val map = mutableMapOf( 1 to Pair(0, 0), 2 to Pair(0, 1)..
매 순간마다 가장 최적의 답을 선택하여 최종의 답을 도출하는 방법 매 순간의 최적해가 문제에 대한 최적해이다. 한번의 선택이 다음 선택에는 무관하다. 문제를 해결하기 위한 아이디어를 직관적으로 찾고 그 아이디어의 정당성을 검토할 수 있어야 한다. 1. 거스름 돈 문제 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재 손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하기 (단, 거슬러 줘야 할 돈 N은 항상 10의 배수) 해결 방안 가장 큰 단위부터 돈을 거슬러 준다. why? 큰 단위가 항상 작은 단위의 배수이다! 500원을 각각 100원 5개, 50원 10개, 10원 50개 400원 동전이 있다면 800원을 거슬러 주는데 문제가..
12장 Object 클래스 모든 클래스는 Object 클래스를 상속받고 있다. Object 클래스의 매소드 객체 처리를 위한 메소드 String toString() boolean equals() int hashCode() Class getClass() Object clone() void finalize() toString 모든 경우에 toString를 overriding해서 사용하지 않아도 되지만 객체의 상태를 쉽게 보려면 해주는 것이 좋다. public class Member { public String name; public String phone; public String email; public String toString() { return "name" + this.name + "phone" +..
10장 상속 extends 예약어를 사용해서 상속을 받을 수 있다. public class Parent { public Parent() { System.out.println("parent 생성자"); } public void printName() { System.out.println("parent printName()"); } } public class Child extends Parent { public Child() { System.out.println("child 생성자"); } } Parent를 상속받은 Child 클래스는 printName 메소드를 사용할 수 있다. Child child = new Child(); child.printName(); Child 클래스가 생성될 때 Parent 클래스..
8장 참조 자료형 자바의 자료형 기본 자료형 : byte, short, int, long, float, double, char, boolean 참조 자료형 : 기본자료형 빼고 나머지 내가 만든 클래스도 자료형이다. 내가 만든 자료형(클래스) 사용하기 생성자 클래스를 객체로 만들기 위해 사용한다. public class ReferenceType { // 생성자 public ReferenceType() { } } 생성자를 호출하면 해당하는 클래스의 객체가 생성됨(ReferenceType이 리턴형으로 생각하면 이름이 없는 메소드가 생성자가 아닐까?) 클래스에 생성자가 없으면 매개변수가 없는 생성자를 만들지 않아도 사용할 수 있다. (기본 생성자) 하나라도 생성자가 있으면 기본 생성자는 만들어지지 않는다. 생성..