본문 바로가기

전체 글116

eclipse boot dashboard unknown port 이클립스 2023-09 (4.29.0) 버전 기준으로 Spring Tools 4 설치 후 Boot Dashboard 화면에서 기동하는데 아래와 같이 unknown port가 표시되는 현상이 있어 해결방안에 대해 알아보고자 한다. 해결방법 아래 그림과 같이 Run Configuration 실행 그럼 아래와 같이 팝업창이 뜨는데 빨간 박스 표시부분처럼 2개가 체크 되어있어야 Boot Dashboard 화면에 port가 표시된다. Enable JMX port 체크 Enable Life Cycle Management 체크 해결화면 끝. 2024. 1. 13.
이클립스 Properties Editor 설치 이클립스 2023-09 (4.29.0) 버전 기준으로 Properties Editor 플러그인 설치 방법에 대해 알아본다. 참고로 http://osdn.net/projects/propedit/storage/eclipse/updates 이 사이트로 하면 된다던데 현 시기에 해보니 잘 되지 않았다. 1. 사이트 접속 및 다운로드 https://sourceforge.net/projects/propedit/ Properties Editor Download Properties Editor for free. Save time and effort of converting into Unicode through native2ascii. Properties Editor can directly edit property fi.. 2024. 1. 7.
쿠버네티스(Kubernetes) 설치 명령어 쿠버네티스(Kubernetes) 설치 명령어 연습해 본 명령어 모음 sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab sudo systemctl disable firewalld sudo systemctl stop firewalld cat 2023. 6. 3.
Spring AOP AOP (Aspect Oriented Programming) Aspect : 여러 클래스에 걸쳐 있는 관심사의 모듈화. - Java @AspectJ 선언 클래스 - XML ... Join point : 메소드 실행 또는 예외 처리와 같은 프로그램 실행 중인 지점. Spring AOP에서 조인점은 항상 메서드 실행을 나타냄. Advice : 특정 조인 포인트에서 애스펙트가 취하는 조치. 다른 타입의 "around", "before", "after" advice 포함. Pointcut : 조인 포인트와 일치하는 조건자. Advice는 포인트컷 표현식과 연관되며 포인트컷과 일치하는 모든 조인포인트에서 실행. - Java @Pointcut("execution(* run(..))") private void poi.. 2023. 3. 11.
Spring Tool Suite 4.15.1 Thymeleaf 플러그인 적용 문제 해결 Spring tool suite 4.15.1 기준으로 STS 마켓플레이스에서 Thymeleaf 플러그인 설치는 잘 되나 프로젝트 선택 -> 마우스 오른쪽 버튼 -> Configure -> Add Thymeleaf Nature 적용이 안되는 문제가 있었다. SpringToolSuite4.ini 파일을 열어서 아래 빨간부분 처럼 추가하고 STS 실행하면 된다. --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.. 2023. 1. 29.
myBatis Java에서 Consumer 이용한 페이징 쿼리 처리 Java에서 페이징 쿼리 호출해서 사용할 시 보통 for문 안에서 page 값 계산해서 쿼리 호출 후 결과로 로직 처리하고 다시 page 값 계산해서 쿼리 호출 후 결과로 로직 처리하고 이런 반복되는 부분을 Consumer로 처리해보았다. - 페이징 유틸 소스 import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; import org.mybatis.spring.SqlSessionTemplate; import lombok.Builder; @Builder public class PagingUtil { private int pageSize; private SqlSessionT.. 2022. 9. 17.
CentOS 7에서 MySQL 8 멀티 인스턴스 설치 CentOS 7 환경 MySQL 8 버전 3306, 3316 포트로 멀티 설치 1. 사전 작업 root 계정 로그인 # [필요 유틸 설치] yum install wget vim -y # [mysql 계정, 그룹 생성] groupadd mysql useradd mysql -g mysql # [MySQL 8 다운로드 및 설정] mkdir /opt/mysql cd /opt/mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-el7-x86_64.tar.gz cd /usr/local/ tar xzvf /opt/mysql/mysql-8.0.30-el7-x86_64.tar.gz ln -s /usr/local/mysql-8.0.30-el7-x86.. 2022. 8. 28.
Spring 빈이 아닌 클래스에서 빈 얻기 Spring 에서 간혹 @Component, @Controller, @Service, @Repository, @Bean 선언이 안된 일반클래스에서 스프링 빈을 가져와야 할 때가 있다. 여러가지 방식이 있겠으나 여기서는 그 중 하나의 방법으로 처리함. 1. 빈을 얻을 수 있는 클래스 선언 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component public class .. 2022. 8. 3.
Spring boot p6spy 적용 Spring boot 2.3.7 기준으로 쿼리 로깅하기 위한 p6spy 라이브러리를 적용해보자. 글 쓰는 시점 기준으로 쿼리 로깅하면 log4jdbc-log4j2 라이브러리를 적용했는데 이 라이브러리가 2013년 12월까지만 업데이트가 되어있어 p6spy 라이브러리를 쿼리 로깅으로 적용해보았다. 문제점은 로깅처리에 대한 이해가 더 필요할 것 같다. resultset, batch, 로깅 커스터마이징 처리 등... p6spy는 2020년 7월까지 릴리즈가 되어있다. 아래는 p6spy와 p6spy 적용한 spring boot URL이다. p6spy url : github.com/p6spy/p6spy p6spy/p6spy P6Spy is a framework that enables database data to.. 2021. 1. 7.
Spring batch chunk 동작 방식 Spring batch는 job을 기준으로 여러 step으로 수행이 이뤄지는데 step은 tasklet과 chunk로 나뉜다. 이 중 chunk 방식은 reader, processor, writer를 chunk size 기준으로 묶음단위로 동작하는 방식을 말한다. docs.spring.io/spring-batch/docs/4.3.x/reference/html/step.html#configureStep 위 그림처럼 chunk size 기준으로 (read -> processor) -> writer 단위로 수행되는데 그냥 보기에는 chunk size가 5라하면 (read -> processor) x 5 -> writer 이렇게 동작할거라 예상되지만 실제로는 (read x 5) -> (processor x 5).. 2020. 11. 5.
엑셀 셀(열 2개) 값이 범위에 없을 시 색깔 표시 엑셀 2016 기준으로 엑셀 2개의 셀(열 2개) 값 비교 후 색깔 표시 아래와 같은 데이터가 있다고 가정 A B C D E F G H 1 번호1 상태1 번호1+상태1 X? 번호2 상태2 번호2+상태2 X? 2 100 A 100 A 3 101 B 200 D 4 102 C 100 D 5 102 D 6 200 D 번호1+상태1 셀 값을 번호2+상태2 셀 값 비교를 위한 설정 A B C D E F G H 1 번호1 상태1 번호1+상태1 X? 번호2 상태2 번호2+상태2 X? 2 100 A =A2&B2 100 A =E2&F2 3 101 B =A3&B3 200 D =E3&F3 4 102 C =A4&B4 100 D =E4&F4 5 102 D =A5&B5 6 200 D =A6&B6 번호1+상태1 셀 값이 G2:G4 .. 2020. 10. 31.
Eclipse 2019-09 Properties 설치 Eclipse 2019-09 버전 기준 Properties 앱을 설치하는 방법에 대해 알아본다. 1. 앱 검색 https://marketplace.eclipse.org/ 사이트 접속 properties 검색 2. 검색된 properties에서 첫 번째 Properties Editor 클릭 3. 아래 그림과 같이 선택 후 url 복사 4. 이클립스에 설치 - 이클립스 상단 메뉴 Help -> Install New Software... 선택 - Work with 입력란에 3번에서 복사한 url 붙여넣기 후 엔터 후 설치 진행 Downloading File /eclipse/updates - Properties Editor - OSDN Free download page for Project Properties .. 2020. 5. 31.
WebLogic 12c WebSocket 구현 WebLogic 12c(12.2.1.4) 기준으로 웹로직 기반 웹소켓을 구현 1. 웹로직용 웹소켓이 들어있는 jar /oracle/wls12214/wlserver/server/lib/api.jar 2. 서버 웹소켓 클래스 작성 import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/ws/echo") public class WsEchoEndPoint { /** * .. 2020. 4. 30.
SonarQube 사용법 아래 글은 2015년 기준 아래 사이트 접속하여 다운로드 http://www.sonarqube.org/downloads/ 위 표시된 2개 파일을 다운로드 받는다. 아래 그림과 같이 적당한 곳에 압축을 푼다. 그리고 설정파일을 수정한다. 아래는 오라클 기준으로 설정한 값이다. \sonarqube-5.0.1\conf\sonar.properties \sonar-runner-2.4\conf\sonar-runner.properties 환경변수 path에 \sonar-runner-2.4\bin 등록 SonarQube 실행하기전 점검할 프로젝트에 sonar 설정 추가 참고: https://docs.sonarqube.org/display/SONARQUBE51/Analyzing+with+SonarQube+Runner 프.. 2019. 11. 19.
Spring 4 interceptor custom annotation Spring 4.3 기준으로 Controller 클래스에서 빈과 메소드 단위 custom annotation 설정을 인터셉터에서 체크하는 방법에 대해 알아본다. 1. Custom annotation 생성 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIM.. 2019. 11. 13.
미러링크 휴대폰으로부터 응답이 없습니다 해결 UVO 3.0 내비게이션과 갤럭시 S9 기준으로 내비게이션 업데이트 이후 미러링크가 안되는 문제가 있었다. 내비게이션과 스마트폰을 USB로 연결하면(동시에 블루투스도 연결) 내비게이션 화면에서 [USB를 읽고 있습니다.] -> [휴대폰으로부터 응답이 없습니다.] 라는 메시지가 상단에 표시되고 스마트폰 화면을 터치하면 미러링크가 동작중이라고 표시가 되는데 내비게이션은 미러링크 버튼이 활성화되지 않는다. 원인은 정확히 알 수 없으나 내비게이션이 업그레이드 되면서 스마트폰에 있던 미러링크 인증서가 업그레이드 된 내비게이션과 호환이 안되는 현상이 아닐까라는 생각이 든다. [해결방법] 갤럭시 S9 기준으로 먼저 내비게이션과 스마트폰 USB 연결을 해제하고 진행. [설정] -> [애플리케이션] -> 상단 오른쪽 세.. 2019. 11. 9.
Spring 4 request logging Spring 4 xml 기반 Request 요청에 대한 로깅 설정을 알아본다. 1. spring-context.xml 설정 - includeClientInfo : 요청 클라이언트 정보 - includeHeaders : 요청 전체 헤더값 로깅 - includePayload : 요청 바디값 로깅 - includeQueryString : 요청 파라미터 로깅 - maxPayloadLength : 요청 바디값 로깅 최대길이(너무 크게 잡으면 메모리풀 날 수 있음) 2. web.xml 설정 commonsRequestLoggingFilter org.springframework.web.filter.DelegatingFilterProxy commonsRequestLoggingFilter /* 3. logback.xml .. 2019. 11. 7.
log4j2 WAS shutodown memory leak 문제 log4j2 사용 시 log4j2.xml에 아래 예제 같이 monitorInterval="초" 속성을 추가하고 WAS를 shutdown 할 시 "appears to have started a thread named [Log4j2-TF-4-Scheduled-] but has failed to stop it. This is very likely to create a memory leak." 이러한 메시지가 콘솔에 찍히는 거에 대한 해결방안을 알아본다. web.xml에 아래 2가지 방법 중 하나를 추가하면 memory leak 현상을 피할 수 있다. isLog4jAutoInitializationDisabled true org.apache.logging.log4j.web.Log4jServletContextLis.. 2019. 9. 26.
jQuery ajax 파일업로드 jQuery로 파일업로드 방법에 대해 알아보고자 한다. jQuery 플러그인 중 jQuery Form Plugin 라는게 있지만 여기서는 jQuery와 FormData 객체만으로 업로드 하는 방식을 알아보겠다. jQuery 버전은 3.3.1을 사용했다. FormData는 자바스크립트 객체로 multipart/form-data 인코딩 방식과 동일한 방식을 사용하도록 제공된다고 한다. HTML (+Bootstrap) Title Content Choose file JavaScript // Form 전체를 넘겨주는 방식 var formData = new FormData($("#form")[0]); // 아래 주석은 위와 같은데 표현만 다름 // var formData = new FormData(document... 2019. 9. 8.
[Linux] Ubuntu Nexus Repository Manager 서비스 등록 우분투 16.04 기준 넥서스 서비스를 등록하여 sudo systemctl start nexus sudo systemctl stop nexus 명령어를 수행할 수 있게 설정하는 방법에 대하여 알아보자. 1. Nexus Repository Manager 다운로드 https://www.sonatype.com/ 접속 후 상단 메뉴 중 Producs 선택 -> OSS Edition 클릭 Sonatype | DevOps Automation - Open Source Governance Sonatype Nexus helps software development teams use open source so they can innovate faster and automatically control risk. www.so.. 2019. 8. 31.