ALL (23) 썸네일형 리스트형 [Nexacro] httptimeout 설정 회사에서 운영중인 admin 시스템이 30초가 지나면 타임아웃이 발생하여 첫번째로 mybatis 타임아웃 설정을 수정했는데도 동일하였고, 두번째로 spring default-timeout 설정을 수정했는데도 동일하였습니다. WEB/WAS는 Webtob/Jeus를 사용하는데 Webtob 로그를 확인했을때 client disconnetcion으로 로그가 찍히고 있었고 해당 로그는 사용자가 끊는거라고 하여 Nexacro 사용중인데 혹시나 확인하였는데 아래와 같이 Nexacro에서 타임아웃 설정이 존재하여 발생한 문제였습니다. - 투비소프트 기술지원 사이트(http://support.tobesoft.co.kr/Support/index.html) httptimeout 설정을 하는 부분은 두군데가 있습니다. Env.. [Java] jar 내부 파일 확인 안녕하세요. 오늘은 log4j, logback 관련 취약점 개선을 진행하는 과정에서 jar로 묶여서 실행되는 배치 시스템이 있어서 빌드 후 서버에 배포하여 정상적으로 업데이트된 라이브러리가 빌드됬는지 확인이 필요하여 jar -tf 파일명.jar 명령어로 내부 파일을 확인한 경험을 작성해봅니다. 명령어 jar -tf 파일명.jar 아래와 같은 구조로 조회되며, BOOT-INF/lib 밑에 업데이트된 라이브러리 확인 example.jar | +-META-INF | +-MANIFEST.MF +-org | +-springframework | +-boot | +-loader | +- +-BOOT-INF +-classes | +-mycompany | +-project | +-YourClasses.class +-li.. [ORACLE] LISTAGG 사용하여 여러행을 하나의 컬럼으로 합치기 오늘은 업무를 진행하면서 데이터 추출요청으로 특정기간 고객별 상위 매출 3건의 브랜드를 추출해달라는 요청이 있었습니다. 예전에 MS-SQL를 사용할때 STUFF와 FOR XML PATH를 이용하여 조회했던 기억으로 오라클도 관련 방법을 검색했더니 LISTAGG를 사용하는 방법이 있어서 관련 내용 간단히 작성해봅니다. LISTAGG는 11g부터 사용가능하며 9i는 XMLLOG, 10g는 WM_CONCAT등을 사용하여 처리하여야 합니다. 샘플테이블 회원번호 매출일자 브랜드 1 2022-01-01 샤넬 1 2022-01-03 루이비통 결과 회원번호 브랜드 1 샤넬,루이비통 사용방법 SELECT LISTAGG(브랜드, ',') WITHIN GROUP (ORDER BY 매출일자) OVER (PARTITION BY.. [Python] 이미지파일 용량 줄이기 파이썬 Pillow 라이브러리를 사용하여 이미지파일 용량을 간단하게 줄일수 있는 방법이 있어서 작성해봅니다. #!/usr/bin/python # -*- coding: utf-8 -*- import os from PIL import Image path = 'C:/Users/HS/Desktop/사진_이름변경/' # 원본 폴더 resultPath = 'C:/Users/HS/Desktop/사진_크기변경/' # 대상 폴더 if not os.path.exists(resultPath): os.mkdir(resultPath) list = os.listdir(path) list.sort() for filename in list: file = path + filename img = Image.open(file) img.s.. [Python] 파일 이름 일괄 변경하기 프로젝트 진행 중 임직원 사진파일을 일괄 등록해야 하는 작업이 있었습니다. 전달받은 사진파일의 이름 패턴은 "사번_이름" 형태였고, 시스템에서 읽어오는 패턴은 "사번"이어서 일괄적으로 사진파일의 이름을 "사번"으로 변경해야 하는 작업이 필요하여 파이썬을 사용하여 간단하게 작업한 내용을 작성해봅니다. #!/usr/bin/python # -*- coding: utf-8 -*- import os import shutil path = 'C:/Users/HS/Desktop/사진/' # 원본 폴더 resultPath = 'C:/Users/HS/Desktop/사진_이름변경/' # 대상 폴더 if not os.path.exists(resultPath): os.mkdir(resultPath) list = os.listd.. [Linux] mkdir -p 옵션 오늘은 mkdir -p 옵션 관련하여 간단하게 작성해 봅니다. 회사에서 운영하는 시스템 배포 프로세스가 빌드 후 변경한 프로그램 리스트를 바탕으로 관련 파일들(.class, .xml 등)만 운영서버에 복사하는 방식으로 구성되어 있습니다. 쉘 스크립트로 작성되어 젠킨스에서 실행하는데 배포하는 과정에서 젠킨스 실패가 발생하여 확인해본 결과 해당 스크립트에 cp 명령어로 파일을 옮기게끔 되어있는데 새롭게 디렉토리를 추가해서 작성한 소스의 파일이 현재 운영서버에는 해당 디렉토리가 없다보니 오류가 발생한 내용이었습니다. 파일 복사 전에 mkdir을 사용하여 디렉토리를 만드는 부분을 추가해야하는데 이미 있을수도 있고 또한 상위디렉토리가 없는 경우 모두 만들어져야 하기 때문에 옵션을 확인해본 결과 -p 옵션이 관련 .. [Spring] lombok @Slf4j 사용하기 오늘은 lombok @Slf4j를 사용하여 Logger 생성없이 편리하게 log를 찍을 수 있는 방법을 작성해봅니다. 스프링 부트에서 기본적으로 로깅 라이브러리를 디펜던시 하기 때문에 로그를 쉽게 사용할 수 있습니다. 보통 로그를 찍기 위해서 아래와 같이 Logger를 클래스 마다 생성했습니다. private static final Logger log = LoggerFactory.getLogger(Hello.class); 위 과정을 간단하게 해주기 위해서 lombok을 사용한다면 @Slf4j 어노테이션만 붙여서 바로 log를 사용할 수 있습니다. @Slf4j public class Hello { log.debug("로그 테스트"); } 참고자료 - https://inseok9068.github.io/ja.. [ORACLE] 반복문(CURSOR, FOR LOOP) 사용법 운영업무를 하다보면 일괄로 반복적으로 처리해야하는 작업이 자주 발생하여 오라클에서 CURSOR, FOR LOOP문 사용법을 정리해 봅니다. 실제로 사용예제만 작성하였으며, 개념 및 내용은 출처를 통해 확인해보면 좋습니다. 1. CURSOR 예제 SET SERVEROUTPUT ON; DECLARE CURSOR emp_cur -- 커서정의 IS SELECT * FROM emp WHERE DEPTNO = 10; emp_rec emp%ROWTYPE; -- 변수정의 BEGIN OPEN emp_cur; LOOP -- 반복 FETCH emp_cur INTO emp_rec; -- 하나씩 변수에 넣기 EXIT WHEN emp_cur%NOTFOUND; -- 더이상 없으면 끝내기 DMBS_OUTPUT.PUT_LINE(emp.. 이전 1 2 3 다음