분류 전체보기 153

ElasticSearch

ElasticSearch란? - Elastic Stack에서 가장 중요한 역할을 담당하는 풀텍스트 검색 및 분석 오픈소스 - 공식 홈페이지에서는 Elasticsearch는 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석 엔진으로 분산형 및 개방형을 특징을 가진 검색 및 오픈소스라고 정의 되어 있다 - Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진 • Elastic Search 구성 및 용어 정리 1) 클러스터( cluseter ) - 클러스터란 Elasticsearch에서 가장 큰 시스템 단위를 의미하며, 최소 하나 이상의 노드로 이루어진 노드들의 집합 - 서로 다른 클러스터는 데이터의 접근, 교환을 할 수 ..

Elastic Stack

Elastic Stack이란? - E(Elasticsearch), L(LogStash), K(Kibana)을 사용하여 이루어진 오픈소스 실시간 풀텍스트 검색 및 분석 엔진 스택 - 경량 데이터 전송기 비츠(beats), 다양한 플러그인을 이용하여 데이터를 수집하는 로그스태시(logstash), 분산형 검색엔진 엘라스틱서치(elasticsearch), 데이터 시각화 도구 키바나(kibana)로 구성 • 진행 과정 - Beats(경량 수집) -> LogStash(수집 후 데이터 정형화) -> ElsticSearch(풀텍스트 검색 및 분석) -> Kibana(시각화) 1. Beats 1-1) FileBeat - 보안 장치, 클라우드, 컨테이너, 호스트 또는 OT에서 수집하든 상관없이, Filebeat는 로그와..

Optional 클래스

Optional 클래스란 ? (java.util.Optional) - 개발을 하다보면 심심치 않게 NullPointException(NPE)에러가 발생하는것을 볼 수 있다. 객체가 값이 없이 null을 참조할 때 발생하는 에러인데, java8 버전 이전에는 해당 에러를 잡아주기 위해서는 null값을 체크해주는 구문을 계속해서 작성하여 null 체크를 해주어 코드가 길어지며 가독성이 좋지 않은 현상들이 많이 발생했다. 이러한 현상들을 개선해주는 클래스가 java8 버전에서 나온 Optional 클래스이다. - Optional는 “존재할 수도 있지만 안 할 수도 있는 객체”, 즉, “null이 될 수도 있는 객체”을 감싸고 있는 일종의 래퍼 클래스이다 - Optional 클래스로 객체를 래핑하여 사용하게 되..

JAVA 2021.07.14

일급 컬렉션 (First Class Collection)

일급 컬렉션 (First Class Collection) 이란? - Collection을 Wrapping 하면서, 그 외에 다른 멤버 변수가 없는 상태를 뜻한다. - 일급 컬렉션이라는 단어는 소트웍스 앤솔로지의 객체지향 생활체조 파트에서 언급 되어있다. " 일급 콜렉션 사용 이 규칙의 적용은 간단하다. 콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변수에 대한 규칙의 확실한 확장이..

JAVA 2021.07.13

컬렉션 프레임워크

컬렉션 프레임워크란? - 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함 한 것 - 자바 컬렉션은 객체를 수집해서 저장하는 역할 사진 참조 : https://coding-factory.tistory.com/550 [Java] 자바 컬렉션 프레임워크(List, Set, Map) 총정리 컬렉션 프레임워크란? 배열을 사용하다 보면 여러가지 비효율적인 문제가 생깁니다. 가장 큰 문제점은 크기가 고정적이라는 것입니다. 배열의 크기는 생성할 때 결정되며 그 크기를 넘어가게 coding-factory.tistory.com Collection 유형 • List 인터페이스 (ArrayList, Vector, LinkedList 클래스 들은 Li..

JAVA 2021.07.10

람다식 (Lambda)

람다식이란? - 자바의 함수적 프로그래밍을 위한 자바8 부터 제공해주는 기능 • 기본 문법 (타입 매개변수) -> { 실행코드 } 형태로 작성된다. • 하나의 매개 변수만 있는 경우 - 매개변수 괄호 생략해도 사용 가능 a-> { 실행코드 } • 매개변수가 하나도 없는 경우 - 빈 괄호 반드시 사용한 후 사용가능 () -> { 실행코드} • 중괄호 {} 에 retrun 문만 있을 경우 중괄호 제거하고 사용 가능 EX) (x,y) -> x + y @FunctionalInterface (함수적 인터페이스) - 두 개 이상의 추상적 메소드가 선언된 인터페이스는 람다식을 이용해서 구현 객체 생성할 수 없다. - 두 개 이상의 추상 메소드가 선언되지 않도록 컴파일러가 체킹해주는 기능 - 람다식은 하나의 메소드를 ..

제너릭 (Generic)

제너릭이란? - 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거 할 수 있다. - 클래스와 인터페이스, 그리고 메소드를 정의할 떄 타입을 파라미터로 사용할 수 있도록 한다. - 타입 변환(Casting)을 제거 할 수 있다. 제너틱 타입 (class, interface) - 타입을 파라미터로 가지는 클래스와 인터페이스 - 클래스 또는 인터페이스 뒤에 "" 부호가 붙으며 사이에 타입 파라미터가 위치 - 파라미터를 멀티로 사용할 수 있다 (class , interface ) - 클래스를 설계할때 제네릭으로 명시하여 구체적인 타입을 명시하지 않고, 타입 파라미터로 대체 했다가 실제 클래스가 사용될 떄 구체적인 타입을 지정함으로써 타입 변환을 최소화 한다. EX) class Product { priv..

카테고리 없음 2021.07.10

프로세스와 쓰레드

프로세스(Process) 란? - 실행 중인 하나의 애플리케이션 - 여러개의 쓰레드를 가지고 있을 수 있다 - 하나의 앱이 하나의 프로세스 쓰레드(Thread) 란? - 하나의 프로세스가 두 가지 이상의 작업을 처리 할 수 있도록 해주는 기능 - 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있어 다른 스레드에 영향을 미치게 되므로 예외 처리 필수로 해야한다. • 싱글 스레드 - 스레드가 1개 인것 • 멀티 스레드 - 스레드를 N개 이상 사용 - 실행중인 스레드가 하나라도 있다면, 프로세스는 종료되지 않는다. 스레드 생성 Runnable task = new Task(); Thread thread = new Thread(task) class Task implements Runnable { c..

JAVA 2021.07.09

상속

상속이란? - 부모 클래스가 자신의 필드나 메서드를 자식 클래스에게 물려주어 자식 클래스가 부모 필드 및 메서드를 사용하는 것 사용법 class 자식클래스명 extends 부모 클래스 { 필드 메서드 생성자(){ super() // 부모 생성자 호출 } @override 부모 메서드 재정의 } - final 클래스는 상속 할 수 없다 • 매개변수의 다형성 메서드(부모클래스명 클래스변수) { } - 위와같은 메서드 선언 시 부모클래스의 자식클래스를 사용할 수 있다. • 자동 타입 변환 - 부모클래스 변수 = new 자식클래스() - 자식 타입이 부모 타입으로 자동 변환하면, 부모 타입에 선언된 필드와 메소드만 사용 가능하다. • 강제 타입 변환 - 부모클래스 변수 = new 자식클래스 한 후, => 자식클..

JAVA 2021.07.07

SOLID (객체 지향 설계)

SOLID 란? - 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할떄, SOLID를 적용하여 소프트웨 어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하게 쉽게 될떄 까지 소스 코드를 리팩토링 하여 좋은 코드로 발전하기 위해 적용하는 객체지향 설계이다 1. SRP (Single responseibility principle, 단일 책임 원칙) - 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화 한다. - 쉽게 이야기 하면 변경되는 부분은 따로 클래스화 하여 관리하고 변경관리 클래스와 고정 관리 클래스를 나눈다. 위 사진과 같이 변경이 일어나는 부분을 객체화 하여 관리한다. 2. OCP (Open/closed principle, 개방-페쇄 원칙) - 소프..

카테고리 없음 2021.07.05