전체 글(52)
-
배열 의 정의, 복제, 최대값 구하기
같은 자료형의 변수로 이루어진 구성요소가 모인 것 예제: class IntArray { public static void main(String[] args) { int[] a = new int[5]; //배열의 선언 - int 자료형으로 5칸의 배열 a[0] = 11; // 0 번째 배열칸에 11 저장 a[1] = 23; a[2] = 40; a[3] = a[2] * 2; // 3번째(인덱스2) 배열 값 곱하기 2 를 4번째 배열칸(인덱스3)에 저장 a[4] = a[0] + a[1]; // int형이므로 배열 속 값 간의 연산 가능, 덧셈 결과를 5번째(인덱스4) 배열칸에 저장 //반복문을 통해 배열의 결과값을 나열, length는 배열의 길이를 나타냄, i는 인덱스 for (int i=0; i < a.l..
2019.05.16 -
[검색엔진 라이브서치 개발과정 정리]ElasticSearch 와 기존 RDBMS 와의 비교
ES는 기본적으로 No-Sql과 비슷한 구조를 지니고 있다. 따라서 데이터 무결성에 대한 보장이 되지 않는다. 실제로 ES를 활용하는 곳들은 데이터의 성격에 따라서 원본 데이터를 RDBMS에 따로 보관하며 주기적으로 ES의 데이터를 동기화하는 방식을 활용하기도 하는데, 이는 원 데이터에 대한 무결성이 중요한 경우에 그렇다. 그렇다고 해서 ES가 항상 데이터 손실이 일어나는 것은 아니다. 다만 RDBMS의 데이터간 관계를 통해 무결성을 확보하는 구조가 아닐 뿐이다. ES SQL(RDBMS) MongoDB(no-sql) 색인(index) 데이터베이스 데이터베이스 샤드(shard) 샤드(shard) 샤드(shard) 매핑/타입(mapping/type) 테이블 컬렉션 문서(document) row documen..
2019.05.16 -
[검색엔진 라이브서치 개발과정 정리]ElasticSearch의 개요
1. Elasticsearch 의 개요 Elasticsearch(이하 ES)는 아파치 루쉰 기반의 검색엔진으로 2010년에 개발되었다. Full-text에 대해 실시간 분산 검색/분석 기능을 제공하며, RESTful 인터페이스를 제공한다. 그러나 실제로는 Near Realtime으로 문서를 색인화 하는 시점부터 검색이 가능해지는 시점은 약간의 대기시간(대개 1초)이 있다. Java로 개발되었으며, 내부적으로 main()메소드를 통해 구동이 된다. 따라서 JVM위에서 작동하기 때문에 jdk1.8 이상의 환경을 필요로 한다. 이러한 부분 때문에 다양한 플랫폼에서도 구동하기가 수월하다. ES의 기본적인 기능은 이러하다. 1. ES는 정형, 비정형 데이터에 대하여 페타 바이트급까지 스케일 업이 가능하다. 2. ..
2019.05.16 -
Enum
enum은 상수로 선언하는 것들의 집합을 표현할 때 사용한다. final 로 고정하는 기본 자료형의 값을 고정할 때, 클래스가 상수만으로 작성되어 있다면 enum을 사용하는 쪽이 좋다. enum을 사용할 경우 if~eles로 처리해야하는 조건과 분기를 간편화 하기 좋다. 따라서 코드가 단순해지며 가독성이 좋아지고, enum이라는 키워드가 열거의 속성인 것을 통해 구현의도를 명확하게 알 수 있다. enum 타입은 고정된 상수들의 집합으로써 컴파일타임에 모든 값을 알아야 한다. 따라서 private로 생성자의 접근제어를 설정해 주어야 동적으로 값이 변동되는 경우를 막을 수 있다. 이렇게 되면 외부에서 접근이 불가능하므로 final과 다르지 않으며, 인스턴스를 생성하거나 상속받을수도 없다. 따라서 enum타입..
2019.05.16