전체 글 278

gradle ssh plugin execute 시 오류를 무시하는 방법

너무너무너무 간단해서 쉬운 해결책이긴 하지만, 글로 남겨본다. make랑 비슷할 줄알고 @을 명령어 앞에 붙여봤지만, 소용이 없었고 더 간단했다. execute "SOME COMMANDS", ignoreError:true 뒤에 저 옵션만 붙어주면 된다. 이정도 알아봤으면, 아래의 공식 링크에 방문해서, 다른 옵션은 뭐가 있나 알아보는 것도 좋겠다. 참고 gradle-ssh-plugin.github.io/docs/#_execute_a_command

IT한 것/unix 2021.04.14

gradle ssh execute가 종료되지 않을 때

gradle ssh plugin은 아주 많은 기능을 가진 플러그인이다. 단순 ssh client라고 생각했는데, gradle-ssh-plugin.github.io/docs/ Gradle SSH Plugin Document Groovy SSH is an automation tool which provides SSH facilities such as command execution or file transfer. It is provided as the executable JAR gssh.jar and the library groovy-ssh-x.y.z.jar. gradle-ssh-plugin.github.io 참고 링크를 따라가면.. 아주 장난 아니다 어쨋든 이것을 이용하여 간단하게 개발 모듈을 deploy..

IT한 것/unix 2021.04.14

error: invalid zip file with overlapped components (possible zip bomb)

centos에서 unzip을 이용하는데, 신기한 문제가 발생했다. 제목과 같은 오류가 발생하면서 압축이 해제되지 않는 현상이였다. 조금 검색해보면 나오지만, unzip-6.0-21.el7.x86_64.rpm 버전만 가지고있는 버그로 보인다고 한다. 하여 다운그레이드를 하여 해결했다는 케이스가 많이 보여진다. 그래서 다운그레이드를... 하고 해결하면 재미없고, 조금은 더 알아봐야하지 않을까? 왜냐면, 어떤 zip 파일은 잘 풀리니까.. 결론은 단순했다. 내가 생성한 zip파일이 같은 경로에 동일한 이름의 파일이 두개 이상이다. 사실 동일 경로에 동일한 파일이 존재하게 만들 이유가 왠만하면 없다. 그래서 그런 현상이 생기지 않도록 zip 파일을 만들어주자, 아무 문제 없이 압축 해제에 성공했다. 참고링크 a..

IT한 것 2021.04.13

com.jcraft.jsch.JSchException: invalid privatekey

gradle에서 ssh 플러그인을 활용해서 서버에 deploy 시키기 하려고 했다. 아직 스크립트가 실행도 안되었는데, 위의 오류가 발생했다. $ ssh-keygen -f my_id_rsa 위의 명령으로 my_id_rsa 비밀키를 만들었고 task deploy { host = 'ip' user = 'username' identity = file('my_is_rsa') } 위의 설정으로 ssh를 설정했다. 위의 오류가 발생한 이유는 개인키 파일 형식이 잘못되었다는 것. ssh-keygen 기본 옵션으로 개인키를 생성하면 -----BEGIN OPENSSH PRIVATE KEY----- 로 시작하는 개인키 파일이 만들어지는데 이 파일은 OPENSSH 용 개인키라 인식을 못하는 것으로 보인다. 일반적인 PEM ..

IT한 것 2021.04.13

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