분류 전체보기 194

Vue.js 맛보기

Vue.jsInstallationIE 8를 지원하지 않는다.를 이용하는 방법개발시에는 Production 버전이 아닌 Development 버전을 쓰는 것이 좋다. Production 버전에서는 Warnning이 나오지 않는다.CDNhttps://unpkg.com/vueCDN를 이용한다면 최신버전의 Vue.js를 사용할수 있다.npmnpm install vuecli# install vue-cli$ npm install --global vue-cli# create a new project using the "webpack" template$ vue init webpack my-project# install dependencies and go!$ cd my-project$ npm install$ npm ru..

Web 2017.08.06

Attribute Converter를 이용한 커스텀 컬럼 사용하기

Attribute Converter를 이용한 커스텀 컬럼 사용하기데이터를 저장할때 사용하는 방식으로 JSON 방식으로 사용하는 경우가 많다. DB에서 데이터를 읽을 때에는 객체로 변환하고 저장할때에는 스트링 형태로 다시 변환하는 과정이 필요하다. JPA의 Attribute Converter를 이용하면 이러한 과정 없이 Repository에서 읽어들인 값을 이용하여 바로 객체로 변환할수가 있다.Json Object@JsonIgnoreProperties(ignoreUnknown = true)public class EventData { private String name; private String password;}Converter@Converterpublic class EventDataConverter i..

Lombok 상위클래스 필드를 이용한 객체 생성 방법

Lombok 상위클래스 필드를 이용한 객체 생성 방법데이터 객체가 상속관계에 있을 경우 lombok의 @Builder 어노테이션을 아래와 같이 이용하면 객체 상위에 필드도 지정할수가 있다.@AllArgsConstructorpublic class Parent { private String a;} public class Child extends Parent { private String b; @Builder private Child(String a, String b){ super(a); this.b = b; }}Child.builder().a("testA").b("testB").build()Referencehttps://projectlombok.org/features/Builder

Programing/Java 2017.08.06

Spark RDD

Table of ContentTable of ContentRDD (Resilient Distributed Datasets)HDFSReadWriteMapReduceMapReduceRDD (Resilient Distributed Datasets)특성TransformationLazy-ExecutionRDD 시작하기Spark Context 시작하기파라미터 설명Spark Shell로 이용하는 방법Collection 객체를 이용하여 RDD 생성하는 방법파일로 부터 RDD 생성하는 방법읽어 올수 있는 데이터 저장소RDD OperationBasicSpark에 함수로 전달로하기클로저(Closures) 이해클로저란?ExampleLocal vs Cluster 모드RDD 값 출력Key-Value Pair OperationTr..

Lombok

Lombok개요java 언어로 프로젝트를 하다보면 반복적인 작업들이 있다. Getter/Setter, 생성자나 File I/O에서의 Stream 객체 close 등등.. 이러한 반복적인 작업들을 깔끔하게 어노테이션(Annotation)을 이용하여 처리할수 있는 라이브러인 롬복(Lombok)에 대해 알아보자.Libary importMaven org.projectlombok lombok 1.16.18 provided Gradlerepositories { mavenCentral()} dependencies { compileOnly 'org.projectlombok:lombok:1.16.18'}intelliJ를 IDE를 사용한다면 설정중에 Processing Annotation 옵션 및 Lombok Plugin..

Programing/Java 2017.07.15

Spring batch

Spring BatchBatch Processing 란?일괄 처리라는 의미로써, 순차적으로 자료를 처리를 한다는 의미이다. 실시간 처리와 다르게 통계 및 데이터 동기화 등 시간이 오래 걸리는 작업을 위주로 구현된다.일일 통계 작업쿠폰 이벤트, App Push가 같이 실시간성이 필요 없는 작업Spring Batch란?Spring 오픈스소에서 나온 Batch Framework 중에 하나이다. 손쉽게 배치 잡(Job)을 작성을 할 수 있다.트랙잭션 관리청크(Chunk) 단위 처리병렬(parallel) 처리Spring Admin Tool활용 패턴배치가 실행 스케쥴러를 설정할때 Linux의 crontab를 활용할수 있다. Linux 커맨드을 이용하여 배치를 실행시킬때에는 로그 정보를 보기가 어렵다. 또 다른 방법..

Zero Copy

Zero Copyhttps://www.ibm.com/developerworks/linux/library/j-zerocopy/kafka 고 성능 Message Queue를 구현하기 위해 Zero-Copy 기능을 활용일반적인 데이터 전송 방식File.read(fileDesc, buf, len);Socket.send(socket, buf, len);기존의 일반적인 데이터 복사 형식Kernel 에서 Application으로 데이터를 복사하고 Application 쪽에서는 Kernel로 데이터를 복사한다.context-switch 및 복사로 인해 성능이 느려질수가 있다.Zero Copy 데이터 전송 방식public void transferTo(long position, long count, WritableByte..

RabbitMQ Exchange Fanout

RabbitMQ Exchange Fanouthttp://www.rabbitmq.com/tutorials/tutorial-three-python.htmlPublish/Subscribe 형태Exchange에 Queue를 Bind하는 형식Fanout방식은 Exchnage에 bind 되어있는 모든 Queue에 메세지를 보낸다.channel.exchange_declare(exchange='logs', type='fanout')exchange를 선언(declare), type은 fanout으로 한다.channel.basic_publish(exchange='logs', routing_key='', body=message)기존 Queue에 메세지를 보낸 것과 달리 Publish에서는 exchange를 대상으로 publ..