IT한 것 116

confluence 미리보기에서 한글이 깨질 때

방법 및 절차 1. confluence를 종료 2. ttf 등의 폰트를 설치 또는 복사 (/usr/share/fonts/myfonts 디텍터리에 복사했다고 가정) 3. 설정 값을 setenv.sh, bat에 추가 CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/usr/share/fonts/myfonts ${CATALINA_OPTS}" CATALINA_OPTS="-Dconfluence.document.conversion.words.defaultfontname=NanumGothic ${CATALINA_OPTS}" CATALINA_OPTS="-Dconfluence.document.conversion.slides.defaultfontname.regular=..

IT한 것 2021.04.07

vscode에서 말도안되는 java compile error

최근 vscode 사용중에 remote ssh target에 재미가 들렸다. 생각보다 간편하게 원격지 서버에 코드를 올리고, 테스트하고 모듈을 기동할 수 있으니 이렇게 편할수가 없다. 그러던 중 이상한 현상이 발생했다. 이상하게도 java code assistant?가 멀쩡한 코드를 오류라고 말하기 시작했다. ;이 없다던가 )가 부족하다던가 하면서 말이다. 처음에는 어디 잘못닫았겠거니 했는데, 아무리 봐도 아니였고, gradle로 직접 빌드하면 아무 문제 없는 것을 확인 할 수 있었다. 여기저기 삽질한 결과 정리를 할 수 있었다. 1. 남들 다 하는 재시작 그렇다, 역사적으로 가장 확실한 방법 중에 하나. 이걸로 문제가 해결된다면, 행복한 편이다. 물론 자주 발생한다면, 어떻게든 다른 해결책을 찾아야겠다..

IT한 것 2021.04.06

HttpURLConnection 이용하여 JSON 전송시 서버가 응답이 없는 경우

아래는 java의 기본 제공 기능을 이용하여 웹 서버에 통신을 해서 JSON 데이터를 주고 받으려고 작성한 코드이다 conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.setDoInput(true); conn.setDefaultUseCaches(false); OutputStream os = conn.getOutputStream(); os.write(message); os.close(); InputStream is = conn.getInputStream(); while (is.available() > 0) { baos.write((char) is.read()); }..

IT한 것/java 2021.04.03

SRT 자막이 안나오는 경우

세상에는 여러 동영상 플레이어가 있고, 타 언어로 만들어진 영상은 더욱 많다. 때문에 영상에 맞는 자막을 붙여 편안하게 자국어로 영상을 감상한다. synology NAS를 사용하는 중 특정 영상의 자막이 전혀 출력되지 않는 문제가 발생했다. 대체 왜 그럴까 고민을 해봤다. 일단 우리나라에서는 SMI라는 확장자를 가진 자막을 주로 사용하는데, 해당 자막은 SRT 확장자를 가져서 생소하지만, 한번 열어보았다. 그리고 확인된 의문점이 두가지였다. 1. CP949 한글 인코딩 동영상 플레이어가 혹시 지원을 못한다면, 이것만 변환해주면 되겠으나, 잘 표시되는 다른 자막을 열어보면 역시 CP949인 것이 많다. 2. 이상한 순서 1597 01:29:59,149 --> 01:30:00,692 íì§ë§ ë ìì.....

IT한 것 2021.04.03

Servlet - Session Clustering, Context Clustering

대부분의 Servlet 개발자 분들은 알고 계실지 모르지만, 알게된 김에 한번 정리해본다. WAS는 instance 별로 정보를 관리한다. 물론 DB에도 중요한 정보를 저장하고 관리한다. 그중 일부 정보는 굳이 DB로 저장할 필요가 없다. (휘발성이어도 어느 조건까지만 유지되면 되는 정보) instance 별로 할 수 있는 작업의 임계치가 존재한다. 이를 극복하기 위해 여러개의 instance를 묶어 전체 적인 임계치를 상승시킨다 여기에서 고민거리가 생긴다, instance1에 접속해서 로그인 한 사용자의 다음 HTTP Request는 instance1을 보장 할 수 없는 경우가 발생한다. (web server나 L4에서 보장 해주기도 하지만, 이것을 사용 못하는 경우도 존재함) 그럼 그 사용자가 ins..

IT한 것/java 2021.04.03

docker clustered tomcat

WAS 개발 하는 사람이라면 모를 수 없는 tomcat. 개발을 하다보면 누구나 간단하게 tomcat을 설치, 설정해서 사용한다. 그런데 사실 WAS는 실제 서비스에서는 여러개의 instance를 사용하고, 모두 세션 클러스터링 설정을 한다. 세션 클러스터링에 익숙하지 않는 사람이 single instance에서 개발하다가, 실제 사이트 테스트 또는 오픈시 당황하는 것은 화낼일이 아니라 당연할 정도이다.. ㅠㅠ 어쨋든 애초에 개발은 클러스터 설정을 하고 하는 것이 맘이 편하지 않을까 싶어, 톰캣 설정을 하려다가보니 산넘고 물을 건너 docker까지 와버렸다. docker hub에 올릴까 하다가.. 에이 몰라 하면서 내비두고, 이렇게 공개한다. github.com/eususu/simple_cluster e..

IT한 것 2021.04.02

synology file indexing - synoindex

시놀로지 나스를 사용하면서 답답함을 느낀게 있다. 다운 받은 파일을 내가 원하는 디렉토리로 옮기도록 나름 이쁘게? 설정해뒀다. 그런데? Audio Station이나 Moments 등에서 새로운 파일을 감지하지 못하는 것을 확인했다. 백날 넣어주면 무엇을 하나, 정작 해당 파일을 사용할 서비스 프로그램에서는 예전 파일들만 나오는 것을 그게 아니라면, 설정 메뉴에 들어가서 재색인(reindex)를 해줘야하는데, 그 시간이 데이터에 비례에서 어마어마하게 걸릴 수 있다 그런데 자세히보니 nas에 직접 접속해서 synology의 관리툴로 파일을 복사, 이동 해주면 아무 이상없이 새로운 파일을 인식하는 것을 확인 했다. 이 문제에 대한 해답은 synoindex 명령이다. 실행해보면 알겠지만, 많은 옵션을 가졌고, ..

IT한 것 2021.04.02

python 파일 모니터링 및 지정한 곳으로 옮기기

시놀로지 나스를 사용하게 되면서, 나스에게 다운로드를 시키고, 적절한 곳으로 파일을 이용하는 것이 필요했다. 이미 다른 괜찮아 보이는 모듈이 있기는 했는데, 무슨 일인지 잘 설치가 되지 않아 간단하게 스크립트로 개발해봤다. 아래의 코드를 실행하면 /volume1/download라는 디렉터리를 탐색하고, *.mp3, *.avi를 지정한 경로로 파일 이동해준다. #!/bin/python #-*- coding: UTF-8 -*- import os import fnmatch import itertools import shutil destPattern = [] destDir = [] def add(pattern, dir): if (os.path.isdir(dir) != True): return False dest..

IT한 것 2021.04.02

python에서 SSL/TLS의 client certificate 제출

심심하신 분들은 아래 배경 부분을 읽어보시고, 바쁘시다면 그 다음부터 보시면 됩니다. 배경 언젠가부터 웹 환경에서 SSL/TLS를 사용하는 것은 아주 일반적인 일이 되었다. PKI 구조를 활용한 안전하게 설계된 프로토콜을 이용하여 우리의 웹은 안전해졌다고 들었을 것이다. 그런데 아쉽게도 생각보다 안전하게 않을 수 있다. 바로 단일 인증만들 사용하기 때문이다. 클라이언트가 서버를 인증서하는 절차는 강제이지만, 서버가 클라이언트를 인증하는 절차는 옵션이며, 대부분의 서버가 사용하지 않는 편이다. 만일 쌍방 인증을 하려면, 사용자도 적절한 인증서가 있어야한다. 그러려면 우리가 사용하는 웹 브라우저에 사용자의 SSL/TLS 인증서를 설치, 발급 하는 방법이 마련되어야 한다. 여기서 설치는 이미 웹 브라우저에서 ..

IT한 것 2021.04.02

python으로 SSL/TLS 사용시 인증서 오류와 대처법

이미 많이들 겪고 해결해서 아는 일들이겠지만, 최근에야 겨우 파이썬을 접해보면서 정리 삼아 남겨본다. 1. self signed certificate in certificate 오류 아래와 같이 서버인증서 검증에 실패했다고 나온다. File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _create self.do_handshake() File "..

IT한 것 2021.04.02