전체 글 27

전자서명에 대해 다시 정리해보자.

매일 헛갈린 관계로 다시 정리해 보자. ㅁ 해싱 원문을 축약하는 것이다. 일종의 지문이라고 생각하면 편한다. 축약하는 방법은 여러가지가 있는데, 주로 SHA 를 사용한다. MD5도 같은 역할을 하는데, SHA가 길이가 더 길게 축약되어, 더 안전하다. 해시화는 암호화와는 개념이 다르다. 암호화는 복호화가 가능한 것이고, 해시화는 그냥 원문을 축약하는 것임으로, 원문 자체를 암호화해서 송신하는 목적에 있는 것이 아니다. 전화번화 뒷자리나 계좌번호 몇자리로 대상을 확인은 하나, 그것 가지고는 원래 전화번호를 알아낼 순 없는 것과 같은 이치. 해싱은 주로 원문 그 자체를 암호화 하려는 목적이 아니라, 원문을 보낸 자의 정체?를 확인하고자 하는 목적. ㅁ 대칭키와 공개키 대칭키는 한개의 열쇠로 잠그고 여는걸 다..

Java일반 2018.06.15

jxls 에서 엑셀의 헤더/풋터 값 치환하기.

일반 transform 방식으로 본문 및 여러 Sheet 의 내용을 치환할 수 있다.하지만 엑셀의 header 와 footer 내부 까지는 변경이 되질 않는다. 아래와 같이 엑셀내 직접 입력하면, header/footer 내부도 변수값으로 치환할 수 있다. ${sheet.getHeader().setLeft('Left Header')} ${sheet.getFooter().setCenter(msgBean.footer)} 물론 홈페이지 sample 에 나와있다. 찾기가 귀찮을뿐이지...

카테고리 없음 2018.04.18

로그 콘솔에 색상 출력하기.

뭐.. 별건 아니지만, 로그를 하도 찍어대다 보니 정말 중요한 로그만 볼 때 꾀 유용하게 사용하게 됩니다. 로거 설정을 통해 색상이 가능한지는 잘 모르겠어요~ public static final String ANSI_RESET = "\u001B[0m"; public static final String ANSI_BLACK = "\u001B[30m"; public static final String ANSI_RED = "\u001B[31m"; public static final String ANSI_GREEN = "\u001B[32m"; public static final String ANSI_YELLOW = "\u001B[33m"; public static final String ANSI_BLUE = "\..

카테고리 없음 2018.04.12

XML 내 다른 XML 파일 import 하기.

프레임웍 지원 없이, XML을 사용하다보니, 내용이 중복되는 경우가 많다.특히, 데이터가 아닌, 설정목적의 파일들은 설정이 복잡해질수록 중복이 많아지는데, 당연히 방법이 있을거라 생각했는데, 딱히 없다. W3C의 XInclude (https://www.w3.org/TR/xinclude/) 가 있는데, 아무리 해봐도 적용이 안된다. 특히, DOM4j 에선 먹히지 않고, Jaxb 에선 별도 옵션을 줘야 한다. 근데 이게 워낙 코어 내부 라이브러리라 안쪽까진 고치기 어려워, 적용하기가 쉽지 않다. 내가 선택한 방법은 XML Entity 선언으로 해결하는 방법. &fldset-01; 뭐 snippet include 하는 용도이긴 한데, 이렇게 분리해놓으니 좋은데 경우에 따라, 파라메터도 받았으면 좋겠고, 파일경..

카테고리 없음 2018.04.04

오라클 에서 MySQL 전환 작업 정리

이번에 기존 오라클을 사용하던 사이트를 MySQL로 컨버트하면서 경험했던 내용을 정리한다. 결론부터 얘기하자면, 절대 하지 마라. 사람이 할짓이 아님. 기본 오라클 문법 변경 정리 //ROWNUM , @rownum:=@rownum+1 as RNUM T1, (SELECT @rownum:=0) //T2 식으로 변수를 사용해 구현이 가능하나, 성능이 매우 취약함. 전체 데이터에 //대해 상수를 적용하기 때문에, 데이터가 적은경우에만 사용함 //단순히 Paging 목적이라면, LIMIT 를 사용해 변경해야 한다. LIMIT 0,10 (주의 0부터 시작함 -> 오라클 Between 은 1부터 시작) //TO_CHAR(A, 'yyy-mm-dd') DATE_FORMAT(A, '%Y-%m-%d %h:%i:%s') //..

신변잡기 2018.03.23

CENTOS USB로 설치 계속 실패!

CENTOS ISO 도 미니멀에서 각종 ISO로 다운받아보고,USB 드라이브도 계속 바꿔보고,포맷형식도 바꿔보고,USB 만들어주는 프로그램도 5~6개 돌려보고,노트북 CMOS 옵션도 계속 찾아서 바꿔보고, 했는데 안된다. 케이스만 해보면 5X5X5X5X5 = ???? 어마무시하게 시도해봤는데 다 안된다. 결국 해결했는데, 어의없게도 ISO 를 홈페이지 미러중 하나에서 받았는데,거기 미러의 ISO가 병신이다. -_-.CENTOS 공식미러에서 받으니 용량이 더 적다. 네이버 미러에서 받으니, 용량이 더 적다. 다시 받은 ISO로 해보니 잘 된다. 아... ... 아깝다..내 시간이... ...

신변잡기 2017.10.26

이전 버전노드 수정하기

원래 안되는 것인줄 알고만 있었는데, 아래처럼 간단하게 convert 해주면 메타정보나 본문수정이 가능합니다. 수정해보니 잘되서 원리까진 파악해보지 못했습니다. :-) 컨버트 후에 수정하면 되는데, 별다른건 없고, 노드정보를 versionStore 에서 workspace 로 변경합니다. NodeRef FrozenStateNodeRef = versionHandler.getFrozenStateNodeRef(lifeCycleGenNode.getId(), searchVersionLabel);lifeCycleGenNode = VersionUtil.convertNodeRef(FrozenStateNodeRef); 아.! VersionUtil 은 "org.alfresco.repo.version.common" packa..

알프레스코 2017.10.20

불필요한 컨텐츠 검색인덱싱 막기

사용하다 보면, 임시 출판문서나, 굳이 검색이 되지 않아도 되는 컨텐츠들이 만들어집니다. 특히, 제가 만들고 있는 것들은 문서를 PDF로 컨버트하게 되어 있는데, 어차피 원본문서가 있기 때문에 굳이 만들어진 PDF 본문등으로 검색할 이유가 없습니다. 이런데, 문서가 만들어질때마다 동일한 PDF 문서들을 계속 인덱싱하게 되서 검색엔진 낭비가 됩니다. 요는, 몇가지 방법이 있습니다만 제가 보기엔 가장 효율적인 방법은 아래처럼, aspect 를 만들어서 검색이 필요하지 않은 TYPE에 mandatory 로 끼워 주면 됩니다. (속성별 검색설정하곤 다른거죠.) Do Not Index Control cm:indexControl false false cm:isIndexed 속성값을 false 로 하면 meta정보 ..

알프레스코 2017.09.14