AXBoot를 IntelliJ IDEA에서 처음 사용할 때 유의할 점

Java|2018. 3. 24. 15:15

AXBoot Initializer로 생성한 프로젝트를 IntelliJ IDEA에서 열고 실행하려고 하면, QMenu, QCommonCode 등의 JPA 도메인 클래스 관련 오류가 발생하면서 빌드가 실패한다.  

이럴 때는 "View > Tools Windows > Maven Projects" 메뉴를 이용해서 Maven 패널을 열고, Lifecycle 하위의 clean, package 골을 차례로 실행한다.  


이 오류는 Querydsl 관련 클래스가 없어서 발생하는데, 위의 과정을 통해서 생성하는 것이다.


EOF


댓글()

도커(Docker)의 쿠버네티스(Kubernetes) 지원

Kubernetes|2018. 3. 23. 19:36

아직(2018년 3월 현재) 베타 버전이지만 도커의 쿠버네티스 지원이 시작됐다.  

도커 홈페이지에 커다란 베너로 이를 알리고 있으며, 베타 프로그램에 참여하면 새 소식을 알려주는 것 같다.


Docker for Mac에 Kubernetes Tab이 추가된 것 말고는 뒤져봐도 아직은 별다른 내용은 없다.


최근 쿠버네티스를 "the Linux of the cloud"라고 부르는 것을 종종 듣게되는데, 도커가 Docker Swarm과 Kubernetes를 같은 수준으로 지원하려는 것을 보면 가능성이 점점 커지는 것 같다.


EOF

댓글()

AXBoot-WildFly 9을 사용할 때의 JWTSessionHandler 문제

Java|2018. 1. 9. 15:05

com.chequer.axboot.admin.utils.JWTSessionHandler는 javax.xml.bind.DatatypeConverter 클래스를 이용하여 BASE64 인코딩/디코딩을 수행합니다.
그런데 WildFly 9 버전의 경우에는 문제가 있습니다. WildFly 9은 JDK의 DatatypeConverter를 사용하는게 아니라 별도의 내장된 버전을 사용하기 때문입니다.

좀 더 정확하게는 wildfly-9.0.2.Final/modules/system/layers/base/javax/xml/bind/api/main/jboss-jaxb-api_2.2_spec-1.0.4.Final.jar 파일에 포함된 것을 사용합니다.

이 버전은 URL-safe 하지 않은 인코딩을 수행하기 때문에 쿠키를 이용한 로그인이 불가능한 심각한 문제가 발생합니다.

아래와 같이 Apache Commons Codec 프로젝트의 Base64 클래스를 사용하도록 수정하면 문제가 해결됩니다.

    import org.apache.commons.codec.binary.Base64;

    private String toBase64(byte[] content) {
        return Base64.encodeBase64URLSafeString(content);
    }

    private byte[] fromBase64(String content) {
        return Base64.decodeBase64(content);
    }

DatatypeConverter 를 써야하는 특별한 이유가 없다면 원본 소스도 이렇게 변경하는게 좋을 것 같습니다. 어차피 Commons Codec 프로젝트에는 이미 디펜던시가 있으니까요.


EOF


댓글()

맥 OS(Mac OS, OSX)에서 생성한 파일 이름을 윈도(Windows)에 맞게 변경

기타|2017. 12. 26. 20:23

크롬(Chrome) 이나 파이어폭스(Firefox) 브라우저를 이용하는 방법이다.


크롬(혹은 파이어폭스)에서 F12 키를 누르면 개발자 도구 가 나타난다. 

Console 탭을 클릭해서 이동한 후, 빈 곳을 클릭하면 입력 가능한 상태가 된다. 이곳에 파일명 문자열을 붙여넣고 따옴표로 감싼다. 그리고 바로 뒤에 .normalize() 를 붙여준다. 

아래의 예와 같이 넣으면 된다.

"ㅅㅏㅇㅓㅂㄱㅖㅎㅗㅣㄱㅅㅓ ㅅㅔㅂㅜ.hwp".normalize()

이제 엔터키를 치면 바로 아랫줄에 동일한 문자열이 나오는데 이를 복사해서 사용하면 된다.


만약 OSX 형식으로 다시 변경하고 싶으면 아래와 같이 괄호 안에 NFD 를 추가해서 실행한다.

"사업계획서 세부.hwp".normalize("NFD")

사실 이 방법은 JavaScript의 함수를 이용한 것으로 아래 링크로 가면 더 자세한 내용을 볼 수 있다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/normalize



EOF




댓글()

크롬(Chrome) - 캐시에 있는 이미지 저장

기타|2017. 10. 15. 10:51

Chrome 브라우저의 캐시에 있는 이미지를 저장해야 할 때가 있다.
나의 경우, 주로 지금 보고 있는 웹페이지에 있는 다량의 이미지를 다운로드 하고 싶은 경우다.

아래 링크의 ChromeCacheView 를 다운로드 받아서 사용하면 된다.

ChromeCacheView 홈페이지
ChromeCacheView 다운로드

한글로 사용하고 싶으면, 아래 링크의 한글 언어 파일을 받아서 ChromeCacheView 실행 파일과 동일한 폴더에 두면 된다.

한글 언어팩 다운로드

ChromeCacheView 를 실행하면 캐시에 있는 파일의 목록이 주르륵 나온다.
목록에서 저장을 원하는 파일을 선택한 다음에 File > Copy Selected Cache Files To... 메뉴를 클릭하거나, 툴바의 세번째 버튼을 클릭하면 원하는 폴더에 저장할 수 있다.


도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()