분류 전체보기 135

[maven] 메이븐 빌드에러#3(URLEncoder)

jenkins로 메이븐 빌드시 다음과같은 컴파일 에러가 났다 error: package org.apache.catalina.util does not exist 확인해보니 java 파일의 import org.apache.catalina.util.URLEncoder; 가 문제였다. 검색결과 pom.xml에 다음을 추가했는데 빌드 성공! org.apache.tomcat tomcat-catalina 8.0.30 버전은 jenkins의 tomcat버전에 맞춰주면 된다. 마지막에 provided 를 추가하면 컴파일때만 참조하고 실제 빌드된결과 lib아래에는 tomcat관련 jar는 존재하지않게 할 수 있다.

CI_CD/maven 2020.07.02

[maven] 메이븐 빌드 에러#2(does not exist)

젠킨스로 메이븐 빌드중 다음과 같은 에러가 떨어졌다. does not exist..... import한 패키지를 찾을수 없다는 에러이다. 하지만 webapp 아래에는 해당 패키지의 jar가 존재하는데? 왜... 에러가 떨어질까? 원인은 모르겠지만 검색결과 조치방법을 찾았다 해결법 pom.xml에 강제로 외부 라이브러리 dependency를 주었더니 빌드되었다 임의의 이름 버전을 제외한 jar 파일명 jar 파일 버전(없으면 임의의 값) system ${project.basedir}/src/main/lib/라이브러리.jar 여기서 project.basedir 이란 webapp을 말한다 그냥 저렇게 적어주면 webapp이 루트경로로 잡힌다.

CI_CD/maven 2020.06.24

[jenkins] job 복사하기

jenkins를 구성하다보면, 똑같은 job을 하나 더 만들고 싶을 때가 있다. 이때마다 새로 job을 구성하면 시간도 오래걸리고, 실수로 설정을 빼먹을 수 도 있기 때문에 copy기능을 사용하면 좋다. 1. 좌측 상단의 new item 클릭 2. 아래로 내려서 Copy from에 복사할 job name을 입력한다. 3. 입력 후 ok를 누르면 해당 job의 설정이 그대로 복사되어있음을 확인할 수 있다.

CI_CD/jenkins 2020.06.24

[maven] 메이븐 빌드 에러#1(maven-clean-plugin:2.4.1 )

Jenkins로 빌드중 아래와 같은 maven 빌드에러가 나타났다. [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1 from/to central (http://repo.maven.apache.org/maven2): Failed to tran..

CI_CD/maven 2020.06.23

[Tomcat] Redis 설정하기

※Redis 서버를 따로 구성한 상황에서, 세션클러스터링을 해야하는 Tomcat에서의 설정부분을 다룬다. 1. Tomcat경로 conf 아래에 redisson.conf 를 생성해준다(원래 없는 파일) { "singleServerConfig":{ "idleConnectionTimeout":10000, "pingTimeout":1000, "connectTimeout":10000, "timeout":3000, "retryAttempts":3, "retryInterval":1500, "password":null, "subscriptionsPerConnection":5, "clientName":null, "address": "redis://redis ip넘버:redis 포트넘버", "subscriptionConn..

WEB WAS/WAS 2020.06.22

[아파치] expires 설정

개요 web서버가 Apache를 사용한다면 성능향상을 위한 설정 중 expires설정을 사용할 수 있다. expires설정은 파일별 만료기한을 설정하여, 만료기한 전 까지는 캐시를 리프레쉬 하지않는다. 따라서 매 접속마다 캐시를 받아오지않고, 만료기한이 지났을때만 서버에서 받아오므로 클라이언트 입장에서는 확실히 속도가 빨라짐을 체감할 수있다. 사용법 httpd.conf 에서 다음을 활성화 LoadModule expires_module modules/mod_expires.so 그리고 아래의 코드를 추가해 준다. #expire cash ExpiresActive On ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/jpg "access p..

WEB WAS/WEB 2020.06.15

[아파치] MPM 모듈로 튜닝하기

1.개요 서버를 운영하다보면, 아파치의 기본설정만으로는 많은 동접자가 몰릴경우 서버 부하로인해 감당하지 못하는 경우가 있다. 이때 아파치모듈중 하나인 MPM 모듈을 통하여 아파치의 성능을 향상할 수 있다. 2.본론 MPM 모듈은 여러가지가 있는데 그중 세가지를 소개하겠다. 사용을 위해 httpd.conf에 입력하거나, mpm관련 주석을 제거하고 httpd-mpm.conf에서 설정하면 된다. 만약 본인이 구성한 Web이아니라 어떤 모듈을 쓰는지 궁금하다면, apachectl -V | grep -i mpm 명령어를 입력해서 확인할 수 있다. 1) prefork 모듈 - 프로세스 방식 프로세스를 새로 생성하는 방식이라 메모리 공간을 독립적으로 사용 StartServers 5 MinSpareServers 5 M..

WEB WAS/WEB 2020.06.07

[Tomcat] 이중화 + Sticky 세션

현상: WAS 이중화 구성에서, WAS로그 관찰결과 세션이 고정되지 못하고 1번서버에서 2번서버로 또는 2번서버에서 1번서버로 연결이 바뀐다. 이 과정에서 세션이 끊어지기 때문에 로그인이 풀리거나 로그인 로직에 세션 검증이 들어가있다면 아예 예외처리로 팅기게 된다. 원인1: apache의 workers설정에서, sticky session = 1 또는 true인지 확인 원인2: 원인1의 설정이 정상이라면 tomcat의 server.xml에서 jvm route 가 활성화되어있는지 여부와 workers에서 설정한 was name이 같은지 확인해본다. 알고보면 별것 아니지만 모르면 발견하는데 꽤오래 걸릴 수 있는 에러.

WEB WAS/WAS 2020.06.04

[JAVA] Hashmap 다루기

int,float,double 형 변수 : 파란색 char,string,list 형 변수 : 빨간색 그 외 변수 : 볼드체 색깔있는건 변수라고 생각하면됨 1. hashmap 선언 HashMap hashmap_temp = new HashMap(); ※안의 형태는 자유 2. hashmap 에 값 input hashmap_temp.put(key, value); 3. key값으로 hashmap 에서 value 가져오기 hashmap_temp.get(key); 4. key값이 없으면 defualt 값을 가져온다 hashmap_temp.getOrDefault(key,default);

알고리즘/참고 2020.06.01