분류 전체보기

인덱스와 도큐먼트가 무엇인지 알아보기 전에, 엘라스틱 서치 API 관련해서 알아보자. 엘라스틱서치 요청과 응답 엘라스틱 서치는 모든 요청과 응답을 REST API 형태로 제공한다. REST API를 활용하여 엘라스틱에 데이터를 적재하거나 조회할 수 있다. 2021.12.30 - [프로그래밍 노트/인프라] - [엘라스틱 스택] 맥북 실습 환경 구성 이전에 설치한 엘라스틱서치 서버에 curl로 API 요청을 해도 되고, 키바나에서 제공해주는 Dev Tools를 이용해서 손쉽게 API를 호출할 수 있다. (Management > Dev Tools) // es_index 라는 인덱스를 생성하고, 1번 도큐먼트를 생성한다. POST es_index/_doc/1 {"name":"corn", "age": 30} //..
실습환경을 구성해보자. 엘라스틱 스택에서 필수 요소인 엘라스틱서치와 키바나를 설치해보자. 도커 실습 환경도 있으나, 나중에 구성해보기로하고 현재 PC인 맥북에서 실습환경을 구성해 보자. 엘라스틱 서치 설치 공식홈페이지에서 쉽게 다운로드받을 수 있다. 초보자들도 쉽게 다운로드 및 사용할 수 있게 가이드가 되어 있다. https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 공식사이트 정보 > 문서 > Elasticsearch Guide > Set up Elasticsearch > Installing Elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/curr..
엘라스틱 스택? 키바나 - 시각화 엘라스틱서치 - 데이터 저장 & 검색 엔진 비츠/로그스태시 - 데이터 수집 엘라스틱서치: 분산 검색 엔진 모든 레코드를 JSON 도큐먼트 형태로 입력하고 관리 검색 엔진이면서 데이터베이스이기도 함(일종의 NoSQL 이라고 생각해도..?) 키바나: 시각화와 엘라스틱서치 관리 도구 엘라스틱 스택의 UI를 담당한다. 가장 중요한 기능은 시각화와 대시보드 라인 차트, 파이 차트 등과 테이블, 지도 등의 다양한 시각화 요소들을 클릭 몇 번으로 쉽게 구성할 수 있게 해준다. 로그스태시: 이벤트 수집과 정제를 위한 도구 데이터 수집과 가공 기능을 제공하는 로그스태시를 사용하면 로그, 메트릭, 웹 애플리케이션 등 다양한 소스로부터 로그를 수집할 수 있다. 형식에 무관하게 데이터를 동적..
JobParameter는 Spring Batch를 실행할 때 내/외부에서 받는 파라미터를 뜻하며, JobParameter를 사용하기 위해선 @StepScope, @JobScope 를 선언해야 한다. @JobScope Step 선언문에서 사용 @Bean public Job simpleJobExample() { return jobBuilderFactory.get("simpleJobExample") .start(simpleStep1(null)) .next(simpleStep2()) .build(); } @Bean @JobScope public Step simpleStep1(@Value("#{jobParameters[requestDate]}") String requestDate) { return stepBuil..
주택담보대출 금융회사가 대출을 해줄때의 기준 (대출금액 제한) 주택의 가격 상환능력 주택담보대출을 받으려면 LTV, DTI, DSR이 대출금액의 기준이됨 LTV(주택 담보인정비율, Loan To Value ratio) 주택담보가치 대비 대출이 가능한 금액 시세 대비 몇 프로까지 주담대를 받을 수 있는지 확인하는 것 (KB 부동산 시세, 감정가액, 국세청 기준시가 등 공신력 있는 평가 자료 기준) 따라서 1억짜리 주택을 샀다 할지라도, 담보가치는 1억을 다 쳐주지 않을 수도 있다. (매매가와 평가금액이 다를 수 있음) 예시 1억짜리 아파트 구입 예정, LTV : 60% ⇒ 6,000만원까지 대출한도가 나옴 DTI(총부채 상환비율, Debt To Income ratio) 대출이용자의 연소득대비 부채의 연간 ..
캡슐화 객체를 설계하기 위한 가장 기본적인 아이디어 변경의 정도에 따라 구현-인터페이스를 분리하고 외부에서는 인터페이스에만 의존하도록 관계를 조절하는 것 → (불안정한 부분 / 안정적인 부분을 분리해서 변경의 영향을 통제) 캡슐화? 객체지향에서 가장 중요한 원리 상태와 행동을 하나의 객체 안으로 모아 내부 구현을 외부로부터 감추자. (외부에서 알 필요 없는 부분을 감춤으로써 대상을 단순화시킴) ⇒ 불안정한 구현 세부사항을 안정적인 인터페이스 뒤로 숨김(캡슐화) 응집도와 결합도 응집도 모듈에 포함된 내부 요소들이 연관돼 있는 정도 모듈 내의 요소들이 하나의 목적을 위해 긴밀하게 협력한다면 그 모듈은 높은 응집도를 가진다. 변경의 관점 변경(요구사항)이 발생했을 때 모듈 내부에 발생하는 변경의 정도 응집도 ..
1. 함수 추출하기 (Extract Function) 코드 조각을 찾아 무슨 일을 하는지 파악한 다음, 독립된 함수로 추출하고 목적에 맞는 이름을 붙인다. When? 언제 독립된 함수로 묶어야 할지에 관한 의견이 분분함 길이 기준 재사용성 기준 코드가 무슨 일을 하는지 파악하는데 시간이 걸린다면, 그 부분을 함수로 추출한 뒤 '무슨 일'에 걸맞는 이름을 짓자. 목적과 구현을 분리 Why? 함수의 목적이 눈에 확 들어오고, 본문 코드(목적을 이루기 위해 구체적으로 수행하는 일)에 대해서는 더 이상 신경 쓸 필요가 없다. 함수명으로 함수의 목적을 나타내고, 그 목적을 이루기 위한 구현코드를 분리한다. function printOwing(invoice) { printBanner(); let ou..
Collectors 클래스에 존재하는 정적 팩토리 메서드 (https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html) 팩토리 메서드 반환 형식 비고 toList List 스트림 항목을 리스트로 수집 toSet Set 스트림 항목을 집합으로 수집 toCollection Collection 스트림의 모든 항목을 발행자가 제공하는 컬렉션으로 수집 counting Long 스트림 항목 수 계산 summingInt Integer 스트림 항목의 정수 프로퍼티 값 더함 averagingInt Double 스트림 항목의 정수 프로퍼티 평균값 계산 summarizingInt IntSummaryStatistics 최댓값, 최솟값, 합계, 평균 등..
자바 8의 함수형을 이용하면 가독성 있는 한 줄의 코드로 그룹화를 구현할 수 있다. 예를 들어 고기를 포함하는 그룹, 생선을 포함하는 그룹, 나머지 그룹으로 메뉴를 그룹화할 수 있다. 팩토리 메서드 Collectors.groupingBy를 이용하자. Map dishesByType = menu.stream().collect(groupingBy(Dish::getType)); {FISH=[parawns, salmon], OTHER=[french fries, rice, season fruit, pizza], MEAT=[pork, beef, chicken]} Dish.Type과 일치하는 모든 요리를 추출하는 함수를 groupingBy 메서드로 전달. 이 함수를 기준으로 스트림이 그룹화되므로 이를 분류 함수(cla..
컬렉터란 무엇인가? Collector 인터페이스 구현은 스트림의 요소를 어떤 식으로 도출할지 지정한다. 명령형 코드에서는 문제 해결하는 과정에서 다중 루프와 조건문을 추가하며 가독성과 유지보수성이 크게 떨어진다. 반면 함수형 프로그래밍에서는 필요한 컬렉터를 쉽게 추가할 수 있다. 고급 리듀싱 기능을 수행하는 컬렉터 collect로 결과를 수집하는 과정을 간단하면서도 유연한 방식으로 정의할 수 있다는 점이 컬렉터의 최대 장점이다. 스트림에 collect를 호출하면 스트림의 요소에 (컬렉터로 파라미터화된) 리듀싱 연산이 수행된다. 내부적으로 리듀싱 연산이 일어나는 모습 명령형 프로그래밍에서는 우리가 직접 구현해야 했던 작업이 자동으로 수행된다. collect에서는 리듀싱 연산을 이용해서 스트림의 각 요소를 ..
깡냉쓰
'분류 전체보기' 카테고리의 글 목록 (9 Page)