일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- REST
- 쿠버네티스
- OkHttpClient
- 도커
- 크롤링
- MSA
- 정규식
- Java
- okhttp3
- oracle
- replaceAll
- container
- spark
- Prototype
- MariaDB
- dataframe
- 테이블정의서
- Python
- Data Lineage
- 컨테이너
- 파이썬
- web crawl
- kubernetes
- atlas
- CRAWL
- microservice
- RDD
- 스파크
- dataset
- docker
- Today
- Total
목록개발 (14)
J 의 기록
오늘은 개발자들을 괴롭히는 Null 그리고 NullpointException에 대해 다뤄보고자 한다. 개발을 하게 되면 NullpointException(NPE) 에 마주치곤 한다. 보통 개발자의 부주의 (파라미터로 Null이 들어올거란 생각을 안한다던가..) 로 발생하는데 이에 대해 가져야할 습관들, 즉 NPE 예방에 대해 알아보자 toString() 이 아닌 String.valueOf()를 사용하자 toString()과 String.valueOf()의 차이는 NullpointException의 발생여부이다. Object가 null일 경우 String.valueOf(Object)를 사용할 경우 "null"이라는 String이 반환된다. Map inputParamMap = ... // inputParam..
회사에서 기존 restutil 을 고도화 할 일이 생겼다. 기존 restutil은 post 만 처리 가능하고, header에 대한 고려가 전혀 안되어있기 때문인데 일을 하며 java에서 okhttp3를 다뤄 get post 를 쓰는 일은 허다했기 때문에 이번 기회에 정리해보고 제대로 만들어보고자 한다! 자 그럼 기존 restutil 부터 살펴보자 기존 restutil package ****; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.util.HashMap; import java.util.Map; public class RestUtil { pu..
MSA (Microservice Architecture) msa 는 한마디로 "하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합ㅇ이 가능하도록 만든 아키텍처" 라고 표현 할 수 있겠다. msa 의 이유를 설명하기 위해 기존의 일반적인 프로젝트 아키텍처(Monolithic Architecture)의 특징을 먼저 알아보겠다. 기존 우리의 개발 방식을 보면 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 Monolithic Architecture 이다. Monolithic Architecture 의 장단점을 살펴보자면 우선, 아키텍처 자체가 간단하여 소규모 프로젝트일수록 적합하며 유지보수에 용이하다. 하지만 일정 규모 이상의 서비스에서는 단점이 명확해진다. 전체적인 시스템 파악..
자바스크립트에는 replaceAll()함수가 없다. 그리고 replace()를 사용하면 첫번째 문자만 치환되고 멈춘다. 그래서 replaceAll()이 필요한 경우에 할 수 있는 두 가지 방법을 찾아봤다. 1. String prototype 메서드 추가 String.prototype.replaceAll = function(org, dest) { return this.split(org).join(dest); } var str = "A.B.C"; str = str.replaceAll(".", ","); console.log(str); //A,B,C 코드 구현 설명은 "A.B.C".split(".") --> ["A","B","C"] 치환할 문자열(".")로 배열을 만들고 ["A","B","C"].join(",..
최근 회사에서 Elasticsearch 에서 Hive, Kudu, Hdfs로의 적재 모듈을 만들며 spark와 scala를 사용하였다. 그 중 spark를 사용하면서 rdd, dataset, dataframe 등의 개념에 대해 이해가 가지않아 회사 선배님께 여쭤본 결과 > dataframe: 정형 쪽에 가까움 (스키마가 있는..) > rdd : 보다 비정형에 가깝고 개발자스러움(?) 라고 설명을 해주셨는데, 그 차이에 대해 알아보기로 했다. 먼저 spark에서 사용하는 Data Structure에는 여러 가지가 있다. - RDD - Dataset - DataFrame 각각의 도입순서는 아래와 같다고 한다. - RDD : Spark 1.0 - Dataset : Spark 1.6 - DataFrame : S..
이번 프로젝트에서 Elasticsearch 의 데이터를 spark으로 수집해야하는 경우가 생겨 정리해보고자 한다. 먼저 Elasticsearch에 대해 알아보자 Elasticsearch는 무엇인가? Elasticsearch는 Apache Lucene (아파치 루씬) 기반의 Java 오픈소스 분산 검색 엔진이다. Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있으며, 방대한 양의 데이터를 신속하게, 거의 실시간으로 저장, 검색, 분석할 수 있다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch/Logstash/Kibana) 스택으로 사용되기도 한다. ELK 스택의 구조는 아래와 같다. - Logstash : 다양한 소스(DB, csv..