일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 일본 백패킹
- elasticsearch
- nginx
- 제주
- 엘라스틱서치
- hadoop
- Hbase
- Clean Code
- Spring XD
- docker
- 도메인주도설계
- Spring Batch
- apache storm
- 스프링 배치
- 인텔리J
- intellij
- scala
- hdfs
- Java
- SBT
- Spring Boot
- Angular2
- Gradle
- elastic search
- Spring
- design pattern
- Linux
- 구마모토 백패킹
- Storm
- DDD
- Today
- Total
목록Programming (144)
욱'S 노트
소개 Spring XD는 stream을 정의하여 데이터를 획득하는 것을 지원한다. Stream은 module로 구성된다. Module은 캡슐화된 작업 단위를 재활용가능한 컴포넌트로 만든 것이다. Spring XD의 job 또한 모듈로서 구현되어야 한다. 모듈은 타입에 따라 분류될 수 있다. 타입은 일반적으로 모듈의 역할과 기능을 나타낸다. 현재 Spring XD 모듈의 타입은 source, sink, processor 그리고 job이다. 타입은 스트림에서 모듈이 어떻게 조합될지 혹은 배치 작업으로 디플로이 될 떄 사용될 지 여부를 결정한다. Source는 외부 리소스로 또는 이벤트로 부터 트리거되어 output을 제공한다. stream의 첫번째 모듈은 반드시 source여야 한다.Processor는 입력..
소개 Spring XD에서 가장 기본적인 stream은 source로부터 이벤트 드리븐 데이타를 획득하여 다수의 sink로 전달하는 것이다. Stream 프로세스는 XD Containter상에서 수행되며, Stream 정의는 XD Admin server를 통해 Container로 전달되면 배포가 완료된다. Source, Sink 그리고 Processor는 모듈의 기정의된 설정이다. 모듈 정의는 xd-root/xd/modules 하위 디렉토리에서 확인 할 수 있다. 모듈 정의는 일반적인 스프링 정의 파일이다. 정의에서는 EIP 패턴을 지원하기 위해 Spring integration의 Input/Output adapter와 Transformer와 같은 기존의 스프링 클래스들을 사용한다. Stream을 정의하..
scp는 보안, 암호화된 네트워크 연결로 파일을 복사한다. scp는 secure copy의 약자이다. cp라 매우 유사해서 이해하기 쉽다. 다음과 같이 사용하면 된다. scp /home/stacy/images/image*.jpg stacy@myhost.com:/home/stacy/archive 서버 myhost로 stacy 유저로 로그인하여 /home/stacy/archive 디렉토리에 이미지 파일을 복사한다는 의미이다. 그리고 반대로 카피를 해온다면 다음과 같이 표현할 수 있다. scp stacy@myhost.com:/home/stacy/archive/image*.jpg /home/stacy/downloads 옵션은 매뉴얼을 참조하도록 하자.
bash의 별칭(alias)은 본래, 긴 명령어들을 치지 않기 위한 키보드 단축키나 약어일 뿐입니다. 예를 들어, ~/.bashrc 파일에 alias lm="ls -l | more"라고 적어주면 명령어줄에서 lm이라고 칠 때마다 자동으로 ls -l | more로 바뀝니다. 이렇게 하면 명령어 행에서 엄청난 타이핑을 줄일 수 있고 아주 복잡한 명령어나 옵션의 조합들을 일일이 다 기억하고 있지 않아도 됩니다. alias rm="rm -i"(지울 때 물어보기 모드)라고 세팅해 놓으면 중요한 파일을 실수로 지워버리지 않게 하기 때문에 큰 사고를 막아 줍니다.스크립트에서는 별칭(alias)이 제한된 쓰임새를 갖습니다. 별칭에 매크로 확장같은 C 전처리기(preprocessor)기 같은 기능이 있었다면 아주 좋았을..
Mapping interfaces W3C XML Schema로부터 나온 XML 타입과 자바 타입 시스템의 차이 때문에, JAXB는 인터페이스를 out of box로 바인딩을 하지 못하지만, 몇 가지 요소들을 제공한다. @XmlRootElement 인터페이스가 많은 서브 클래스로 구현된다면 XmlRootElement를 사용하는 것을 고려할 수 있다. @XmlRootElementclass Zoo {@XmlAnyElementpublic List animals;} interface Animal { void sleep();void eat(); ...} @XmlRootElementclass Dog implements Animal { ... } @XmlRootElementclass Lion implements Ani..
소개 앞에서 현재 XD에서는 4가지 타입의 모듈(source, sink, processor, job)을 지원한다고 했다. 이제 job 모듈을 개발해보자. 간단한 작업 개발하기 사실상 Spring XD에서 job 모듈을 개발한다는 것은 Spring Batch를 기반으로 한다. 일반적인 배치작업을 개발하기를 원한다면 Spring Batch를 참조하기 바란다. 먼저 배치작업을 하나 정의해보자. 그냥 간단한 tasklet하나를 다음과 같이 지정하였다.설정 파일의 이름은 job-hello.xml으로 하자. 잘 살펴보면 일반 스프링 배치와 차이가 있다. 그것은 별도의 jobRepository의 설정이 필요없다는 것이다. 기본적으로 Spring XD에서 jobRepository를 관리하므로 여기서는 설정을 할 필요가..
소개 Spring Batch 기반의 배치 작업을 구동하고 모니터링 하는 기능을 Spring XD에서 제공한다. Spring Batch는 2007년 시작된 프로젝트로서 SpringSource와 Accenture가 함께 협력하였다. 강력한 batch 어플리케이션 개발을 지원하기 위해 이해하기 쉬운 프레임워크를 제공하자는 취지로 시작되었다. 배치 작업은 나름의 best practice와 domain 개념을 가지고 있었고, Accenture의 컨설팅 비즈니스 기반에 Spring Batch는 구축 되었다. Spring Batch가 사용되기 시작한 이후로 수천개의 엔터프라이즈 어플리케이션에 적용되었고 JSR-352(배치 처리를 위한 JSR 표준)의 기반이 되었다. Spring XD는 파일이나 데이터베이스로부터 데이..
소개 Spring XD는 데이터 획득, 실시간 분석, 배치 처리 및 데이터 추출을 위한 단일화된 분산 확장 서비스이다. Spring XD의 아키텍처는 백명이상의 개발자가 수년에 걸쳐 진행한 Spring Batch, Integration and Data 프로젝트에 기반한 아키텍처이다. 이러한 프로젝트 기반하에 Spring XD는 데이터 처리를 시작하기 위해 즉시 사용할 수 있는 서버와 설정 DSL을 제공한다. Spring XD는 두가지 모드의 동작을 가지고 있다. Single 모드는 하나의 프로세스가 모든 processing 및 administration을 담당한다. 이 모드는 어플리케이션의 쉽고 단순하게 개발하고 테스팅할 수 있도록 도와준다. 분산 모드는 클러스트에 작업을 분산할 수 있다. Adminis..
소개 Spring XD는 stream을 정의하기 위한 DSL을 제공한다. 배치 작업의 스텝 처럼 정교한 stream을 정의할 수 있도록 진화해오고 있다. Pipes and Filters 단순한 선형의 stream은 일련의 순서를 가진 모듈들의 집합이다. 기본적으로 Input Source, Processing Steps(optional) 그리고 Ouput Sink 이다. 가장 단순한 예제는 Http로 부터 읽어서 File 로 출력하는 것이다. DSL로 표현하ㅕㄴ http | file 스트림은 어떤 처리를 포함할 수 있다. http | filter | transform | file 스트림에서 모듈간의 연결은 |를 이용해서 표현한다. Module Parameters 각 모듈은 파라미터를 가질 수 있다. 모듈에..
소개 Spring XD는 설정할 수 있는 두 가지 주요 부문이 있다. 서버와 모듈이다. 서버(xd-singlenode, xd-admin, xd-container)는 Spring Boot 어플리케이션이고, 설정하는 방법은 Spring Boot Reference를 참조하기 바란다. YAML 기반의 설정 파일 servers.yml을 수정하는 것이 가장 단순한 케이스이다. servers.yml 설정 파일의 값들은 XD jar에 포함되어 있는 디폴트 application.yml 파일의 값들을 오버라이트 한다. 서버 설정 모듈 설정 모듈은 이름과 타입에 기초한 내포된 디렉토리 구조에 프로퍼티 파일을 위치함으로써 설정할 수 있다. 내포된 디렉토리 구조는 루트는 기본적으로 $XD_HOME/config/modules이다..