분류 전체보기 466

Apache ZooKeeper

Apache ZooKeeper : W3ii.com 에 있는 ZooKeeper 가이드 문서(http://www.w3ii.com/zookeeper/zookeeper_overview.html) 주요 내용을 발췌해보았습니다. 더불어 타 사이트에서 본 내용을 정리해보려고 합니다. Distributed Applications 에서 고민해야할 사항들- Race condition - Deadlock- Inconsistency ZooKeeper 는 race condition 과 deadlock 를 "fail-safe synchronization approach" 를 사용해 처리한다. data inconsistency 도 "atomicity" 로 해결한다. ZooKeeper 의 이점(benefits)- 단순한 분산 조정 ..

Thinking/Study 2017.03.22

MySQL insert all on update MyBatis 쿼리문

MySQL DB 에 MyBatis(마이바티스)로 다수의 데이터를 insert 와 update 를 동시에 하려고 쿼리문을 찾아보았다. 여러건의 데이터들은 마이바티스 쿼리문에 파라미터로 구문으로 list 형태의 데이터를 전달할 수 있다. 그런데, "on duplicate key update" 뒤의 문장을 완성하려고 하니깐 어떤 식으로 쿼리문을 작성해야할 지 난감했다. 다음 쿼리문처럼 list 에서 insert 하다가 동일키에 대해서 update 를 할때, list 의 현재 위치값을 표시해야하는데 일단 방법을 몰라서 문의 #{element.type} 으로 하고 테스트를 해보니깐 list 의 맨 마지막 값으로 모든 값들이 update 되어 버렸다. insert into tbl_word(word, type, mo..

Engineering/Java 2016.07.08

DataTable 에서 AJAX 로 pagination 처리

Javascript DataTable 에서 AJAX 로 테이블 데이터 pagination 처리 DataTable(https://datatables.net/) 의 "serverSide : true" 를 통해서 AJAX 로 필요한 데이터만 가져와서 pagination 을 구현할 수 있다. $('#dt_table').dataTable({ "autoWidth" : false, "processing": true, "ordering": false, "serverSide": true, "searching": false, "lengthMenu" : [10,50,100], "ajax" : { "url":"/book/ajax", "type":"POST", "data": function (d) { d.playerId = $..

Thymeleaf 에서 자주 사용하는 예제

Thymeleaf 에서 자주 사용하는 예제들을 정리해본다. * Javascript 에서 비교 연산자- Thymeleaf 에서 '' 태그를 엄격하게 검사하기 때문에 자바스크립트 코드가 포함되어 있다면 [[CDATA]] 로 묶어줘야한다. ... function checkLevel() {var rate = $("#level").val();/*if (rate > 100) {alert("레벨은 100 이하의 숫자여야 합니다.");return;} /*]]>*/} * 조건식- 로 테이블 형태의 데이터를 표시할때, 값의 존재 유무에 따라서 컬럼값을 다르게 표현하는 경우 - if / unless 사용0 - ? 이항 연산자 사용 - switch / case 사용접속레벨업만료 * select 사용- 컨트롤러에서 List 를..

Engineering/Java 2016.05.18

이클립스(STS) 에서 프로젝트 폴더 관리

이클립스(STS) 에서 프로젝트 폴더 관리 이클립스의 왼쪽 프로젝트 창에서 프로젝트들을 추가하다보면, 수많은 프로젝트들 사이에서 소스 찾아서 클릭하는 것도 일이 된다.관련 프로젝트끼리 묶어서 관리하려고 처음에는 프로젝트 창에서 폴더를 생성할까 생각했었는데, 방법을 찾아보니 "working set" 을 이용하라는 글들이 많이 보인다.다음 그림과 같이 두개의 폴더를 생성해서 프로젝트들을 관리하기로 했다. 사용하는 툴인 STS 의 워크스페이스 폴더에서 보니 "module", "business" 는 생성되지 않았다. 아마도 가상폴더 식으로 따로 관리되는게 아닌가 싶다. working set 설정 방법1. STS/eclipse 의 "Package Explorer" 에서 "View Menu"(▽ 모양)을 클릭하고,..

Engineering/Java 2016.03.24

vnc server on CentOS 7

vnc-server 설치yum install vnc-server vnc 서버 설정 파일 복사 및 설정# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service# vi /etc/systemd/system/vncserver@\:1.service: "/etc/systemd/system/vncserver@\:1.service" 파일에서 "USER" 라고 되어 있는 부분을 vnc 클라이언트에서 접속할 아이디로 교체한다. 본인은 jeoos 로 로그인할 생각이라, jeoos 로 교체했다.[Unit]Description=Remote desktop service (VNC)After=syslog.target network.targ..

Engineering/Etc 2016.02.26

CentOS 7 에서 MySQL 5.6 설치

CentOS 7 에서 MySQL 5.6 설치 MySQL 5.6 부터 추가된 기능(timestamp 형에 default 시간값을 설정 가능)을 사용해보기 위해 CentOS 7에다가 MySQL 을 설치하려고 한다. CentOS 7 부터 mariaDB 가 MySQL 기본 패키지가 되어버려서 yum install mysql 을 실행하면 mariaDB 5.5 가 설치된다. 1. MySQL 5.6 yum repo 파일 다운로드: CentOS 7 부터 mariaDB 가 MySQL 기본 패키지가 되어버려서 yum install mysql 을 실행하면 mariaDB 5.5 가 설치된다. 그래서 별도의 MySQL 용 레포지토리(repository) 주소를 받아와야 한다. rpm 파일을 다운받고 install 까지 해야 레..

Engineering/DB 2016.02.22

아이패드에서 무료로 사용할만한 동영상 플레이어

아이패드에서 무료로 사용할만한 동영상 플레이어 아이패드가 하드웨어 성능이 올라가서인지 예전처럼 동영상을 보기위해 인코딩 작업을 수행할 필요가 없어진거 같다. 여러 플레이어들이 왠만한 비디오 포맷들을 컨버팅없이 바로 플레이할 수 있도록 지원한다. (게다가 무료로 사용할 수 있다.) 테스트에 사용한 파일은 블루레이급 Inside.Out.mkv(7.95GB) 였다. * VLC- 리눅스에서 많이 사용되던 VLC 가 iOS 용으로 지원하는거 같다.- 깔끔한 인터페이스. WIFI 공유, 클라우드 디스크 지원, 네트워크 스트림 등 네트워크 관련 지원 사항이 많다.- 한글로 더빙된 파일인데 플레이했을때, "vlc could not decode the format a52 (a52 audio (aka ac3))" 오류창이..

Engineering/Etc 2016.02.03

jackson 라이브러리 deserialize 오류

jackson 라이브러리 deserialize 오류- Class com.fasterxml.jackson.databind.deser.std.NumberDeserializers$BooleanDeserializer has no default (no arg) constructor : XML 데이터중에서 boolean 데이터 형태가 boolean 형태가 아닐 경우에 발생. XML 문자열을 다음 Test 클래스로 deserialize 할때, B 요소(element) 가 true/false 형태이어야하는데, 0 또는 1일 경우가 있다. 이럴 경우에는 따로 BooleanDeserializer 를 작성하고, 해당 클래스의 필드에 annotatin 을 표시해야한다. class Test { public int A; publ..

Engineering/Java 2016.01.04