본문 바로가기

전체 글

(120)
[JAVA] 배열, 변수와 메서드 1. 배열의 선언 배열을 선언한다고 해서 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된다. /* 배열 선언 */ int[] score; /* 배열 생성 */ score = new int[5]; /* 합쳐서 사용 */ int[] score = new int[5]; 2. 변수의 종류 변수의 종류 선언 위치 생성시기 클래스변수 (static) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스변수 클래스 영역 인스턴스 생성시 지역변수 (함수 안) 메서드 영역 변수 선언문 수행시 클래스 변수 - 같은 클래스의 모든 인스턴스들이 공유하는 변수 - 인스턴스 생성없이 '클래스이름.클래스변수명' 으로 접근 - 클래스가 로딩될 때 생성되고, 프로그램이 종료될 때 소멸 인스턴스 변수 - 인스턴스마..
[JAVA] 변수의 타입 1. 기본형과 참조형 자바에서 자료형은 실제 값을 저장하는 기본형과 값을 저장하고 있는 메모리 공간의 주소를 저장하는 참조형으로 나뉜다. 1. 1 기본형 1 2 4 8 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double 1.2 명명규칙 (권장사항) 1. 클래스 이름의 첫 글자는 항상 대문자로 한다. 변수와 메서드 이름은 첫글자를 소문자로 한다. 2. 여러 단어 이름은 단어의 첫 글자를 대문자로 한다. ex. lastIndexOf 3. 상수의 이름은 대문자로 한다. 단어는 '-'로 구분한다. ex. PI, MAX_NUMBER 1.3 상수, 리터럴 상수(constant): 한 번만 값을 저장할 수 있는 공간 ex. final int MAX_SPEED..
OSI 7계층 1. OSI 7계층 배경 인터넷을 통한 효율적인 데이터 송수신이라는 이슈를 해결하기 위해서는 아주 많은 분양의 전문가가 필요하며, 이들간의 상호 논의로 만들어진 다양한 약속이 필요하다. 문제를 영역별로 나눠서 해결하다보니 여러 프로토콜이 만들어졌으며, 계층구조를 통해서 상호간에 관계를 맺게 되었다. 2.1. 물리계층 데이터를 전기적 신호로 변환해서 주고받는 기능을 하는 계층이다. 사용되는 통신 단위는 비트로 1,0만 나타내진다. 대표적인 장비로는 케이블, 허브 등이 있다. ex. Coax, Fiber 2.2. 데이터 링크 계층 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보 전달을 수행할 수 있도록 도와준다. 크게 두가지의 역할이 있는데 데이터를 보내고, 안전하게 도착할 수 있도록..
TCP/IP 소켓 프로그래밍 기초 지식 1. 파일 디스크립터란? 시스템으로부터 할당 받은 파일 또는 소켓에 부여된 정수를 의미한다. 파일 또는 소켓을 생성할 때마다 운영 체제는 해당 파일 또는 소켓에 부여된 숫자 하나를 건네준다. 파일 디스크립터를 파일 핸들이라고도 한다. 리눅스에서는 소켓도 하나의 파일로 취급하기 때문에 파일을 생성하건, 소켓을 생성하건 파일 디스크립터가 반환된다. 마찬가지로 윈도우에서도 시스템 함수의 호출을 통해서 파일을 생성할 때 핸들이라는 것을 반환한다. 하지만 윈도우에서는 리눅스와 달리 파일 핸들과 소켓 핸들을 구분하고있다. 2. 소켓의 타입 소켓의 타입이란 소켓의 데이터 전송 방식을 의미하는데, 이 정보를 socket 함수의 두번째 인자로 전달해야한다. 1. 연결지향형 소켓 특성: 중간에 데이터가 소멸되지 않고 목적..
소켓프로그래밍이란 1. 소켓이란? 사전적으로 구멍, 연결, 콘센트 등의 의미를 가진다. 전기를 필요로하는 디바이스 또는 부품들이 전기를 공급받을 수 있도록, 전기 공급 인프라 환경에 연결할 수 있게 만들어진 연결부라고 볼 수 있다. 네트워크 프로그래밍에서도 비슷한 의미로 사용된다. 프로그램이 네트워크에서 데이터를 송수신할 수 있도록, "네트워크 환경에 연결할 수 있게 만들어진 연결부"이다. = 데이터를 송수신할 수 있는 연결부 주로 OSI 7 Layer의 네번째 계층인 TCP상에서 동작하는 소켓을 사용하며, 이를 TCP 소켓이라고 한다. ( UDP를 사용하면 UDP 소켓 ) 2.1 클라이언트 소켓과 서버 소켓 소켓을 통해 데이터 통신을 위한 연결을 만들기 위해서는, 연결 요청을 보내는지 또는 요청을 받아들이는지에 따라 소..
엘라스틱서치 키바나로 스냅샷 생성하기 1. elasticsearch.yml에 path.repo 속성을 설정한다. ex. path.repo: ["/search_example", "/agg_example"] 2. 스냅샷 레포지토리를 생성한다. repository는 실제 스냅샷이 저장되는 장소이다. PUT /_snapshot/search_example { "type": "fs", "settings": { "compress": true, "location": "/Users/kimkyuri/Documents/elasticsearch/elastic-book-snapshot-master/book_backup/search_example" } } 3. 스냅샷 생성하기 스냅샷이 있는지 확인하기 PUT /_snapshot/search_example/movie_..
4. 데이터 검색 엘라스틱서치는 인덱스에 저장된 문서를 검색할 수 있도록 다양한 검색 기능을 제공한다. 문서는 색인시 설정한 분석기에 의해 분석 과정을 거쳐 토큰으로 분리되는데, 이러한 분석기는 색인 시점에 사용할 수 있지만 검색 시점에 사용하는 것도 가능하다. 특정 문장이 검색어로 요청되면 분석기를 통해 분석된 토큰의 일치 여부를 판단해서 그 결과에 점수를 매긴다. 이를 기반으로 순서를 적용해 결과를 사용자에게 최종적으로 출력한다. 4.1 검색 API * 엘라스틱 서치는 색인 시점에 Analyzer를 통해 분석된 텀을 Term, 출현빈도, 문서번호와 같이 역색인 구조로 만들어 내부적으로 저장한다. 검색 시점에는 keyword 타입과 같은 분석이 불가능한 데이터와 Text 타입과 같은 분석이 가능한 데이터를 구분해서 분석..
3.4 엘라스틱서치 분석기 3.4.1 텍스트 분석 개요 POST _analyze { "analyzer" : "standard", "text" : "우리나라가 좋은나라, 대한민국 화이팅" } -> 결과로 우리나라 / 좋은나라 / 대한민국 / 화이팅 따로 나옴 3.4.2 역색인 구조 - 모든 문서가 가지는 단어의 고유 단어 목록 - 해당 단어가 어떤 문서에 속해있는지에 대한 정보 - 전체 문서에 각 단어가 몇 개 들어있는지에 대한 정보 - 하나의 문서에 단어가 몇 번씩 출현했는지에 대한 정보 * 색인한다는 것은 역색인 파일을 만든다는 것이다. 원문이 변경되는 것이 아니라 색인 파일에 들어갈 토큰만 변경되어 저장되고 실제 문서 내용은 변함없이 저장된다. 색인할 때 특정한 규칙과 흐름에 의해 텍스트를 변경하는 과정을 분석(analyze)..