본문 바로가기

전체 글

Gradle 에서 Executable jar 만들기 Gradle 프로젝트에서 Executable Jar를 만드는 방법!! 1. Main class를 만든다.간단하게 콘솔에 텍스트를 찍는 메인 클라스를 만들었다. dependency 관련 테스트를 위해 joda time으로 현재 시간도 같이 프린트 하는 코드로 작성했다. 2. gradle 설정build.gradle 파일에서 jar 관련 설정을 해주면 된다. jar { manifest { attributes 'Main-Class': 'com.minsub.sample.jar.Main' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } }manifest 에서 main-class를 지종하고 from 에서 dependen.. 더보기
iterm2로 Multi SSH (itermocil) itermocil 로 여러 터미널로 ssh로 여러 서버에 접속할 수 있다.https://github.com/TomAnthony/itermocil 1. 설치brew itermocil 로 설치한다. 2. 설정미리 설정파일을 만들어 놓아야 한다. itermocil에서는 layout이라고 하는데 layout파일은 yml 포멧으로 작성한다. ~/.teamocil 폴더에 [layout_name].yml 로 작성하면 해당 파일명으로 layout이 글로벌 설정이 된다.layout 포멧은 https://github.com/TomAnthony/itermocil 를 참조하면 된다. 기본적인 샘플을 하나 작성해 보자~/.teamocil/sample.yml windows: - name: sample-two-panes root:.. 더보기
맥북 터치바에서 IntelliJ에서 항상 function키가 나타나게 하기!! 참조: https://medium.com/@geapi/permanent-function-keys-intellij-macbook-pro-w-touchbar-d6fc78781b90 더보기
[Spring boot] #1 프로젝트 시작하기 (Gradle) [Spring boot] #1 프로젝트 시작하기 (Gradle) Spring boot를 사용해 웹 프로젝트를 만들어보자.일단 기본적인 프로젝트를 만들고 이 후 계속적으로 하나하나 필요한 부분을 붙혀가는 형태로 포스팅을 진행 할 것이다.이번 포스팅에서는 IntelliJ (Community version)과 Gradle 를 이용해 프로젝트를 만들어본다. 일단 IntelliJ는 무료인 Community버전을 사용한다. 그리고 Java 1.8과 gradle도 알아서 설치 후 다음을 진행한다. 1. 프로젝트 만들기New > Project를 선택한다. 그리고 Gradle > Java를 선택한다.그리고 기본적은 프로젝트 이름들을 알아서 정하고, [Create Directory ...] 를 체크하고 프로젝트를 생성한다.. 더보기
Flink 시작하기 #7 Batch (DataSet API) Flink Batch는 streaming API와 거의 유사하다. 기능적으로 Streaming을 처리하는 방식을 지속적인 데이터가 아닌 bounded 데이터를 처리하는 개념이다. 하지만 내부적으로는 fault tolerance에 대한 처리에서 chkeck point가 아닌 재실행하는 방식을 사용하는 등 좀 다르게 처리되고 있지만 API를 사용하는 레벨에서는 알 필요는 없다. 가장 먼저 Stream처리와 다른 부분은 ExecutionEnvironment 를 가져오는 부분이 다르다. val env = ExecutionEnvironment.getExecutionEnvironment transformation API는 Streaming에서 사용하는 API와 사용법과 종류가 같다. 물론 스트림 데이터를 처리하는 .. 더보기
Flink 시작하기 #6 Windows 스트리밍 데이터는 unbounded 데이터로 처음과 끝의 개념이 없다. element의 데이터를 개별적으로 처리하는 연산만 사용한다면 큰 문제는 없지만, 집계연산을 사용한다면 문제가 생긴다. 만약 평균값을 계산한다고 한다면 끝이 없다면 할 수 없다. 그래서 스트리밍 데이터 처리 시스템에서는 Windows라는 개념이 존재한다. Windows는 쉽게 말해서 특정한 룰에 따라 일정 데이터를 모아 처리하는 개념이다. Flink Windows 구조는 아래와 같다. keyedStream와 DataSteam 별로 다른 API를 쓸분 구조는 동일하다. trigger, evictor, allowedLateness 구분은 선택사항이다. 간단하게 window() 만 구현하면 기본적은 window 기능을 사용할 수 있다. K.. 더보기
Flink 시작하기 #5 Streaming API #Streaming dataflow Flink의 streaming dataflow는 데이터를 받아오는 Data source, 그리고 데이터를 처리하는 Transformation, 데이터를 최종 처리하는 data Sink로 3단계로 구성된다. 구지 스트리밍이 아니여도 이 flow는 비슷할 것이다. 데이터를 가져와서 가공하고 저장하는 단계를 flink는 네이밍을 저렇게 한 것이다. dataflow의 구성은 아래 그림과 같다. 이 포스팅은 Flink 1.2 기준으로 작성됬다. #Data source source는 input에 해당하며 어디서부터 데이터를 가져올 것 인가를 정의하는 단계이다. flink는 기본적으로 StreamExecutionEnviroment로부터 다음의 stream source를 제공하고 있.. 더보기
Flink 시작하기 #2 Basic API Concept #DataSet and DataStream Flink는 크게 Streaming과 Batch 를 처리하는 방식에 따라 사용하는 API가 나뉜다. DataStream은 Streaming을 처리하기 위한 클래스이고 Batch는 DataSet을 사용한다. 두 클래스를 처리하는 elements가 무한으로 들어오느냐 아니면 끝이 있는 bounded 데이터냐가 가장 큰 차이이다. 두 클래스 모두 immutable한 속성을 가지고 있다. 즉, 변경되지 않는 콜렉션의 개념이다. #Anatomy of a Flink Program Flink 프로그램은 다음의 순서로서 동자 Obtain an execution environment: (ExecutionEnviroment를 생성해 DataStream, DataSet을 만들기 위.. 더보기