본문 바로가기
728x90
반응형

전체보기418

스프링 대용량 멀티 배치_스케줄 여러개 배치를 실행할때 스케줄을 여러개 등록하기 위해서는 job 객체를 이름을 지정해서 생성하여 Qualifier로 객체를 주입하여 스케줄을 여러개 생성해서 기동한다. 스케줄 시간설정은 환경설정 파일을 이용하여 셋팅 Scheduler.java package kr.go.naq.batch.schedulers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.batch.core.*; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.repository.JobEx.. 2022. 8. 16.
윈도우 도커에 Centos8 설치 윈도우에 먼저 도커가 설치 되어 있어야 한다. cmd 창 띄워서 설치 가능한 docker 이미지 검색 목록 확인후 docker pull roboxes/centos8 이버전 오류가 있어서 사용안함 docker pull dokken/centos-8 이버전 설치 아래꺼도 이걸로 설치 해야 잘됨 이미지를 다운받아서 설치한다. 설치된 이미지 확인 docker images - container 생성 및 실행 docker run -it --name centos8 roboxes/centos8:latest bin/bash --name 은 생성될 컨테이너 이름 그 뒤에 나오는 이름은 REPOSITORY 이름 + TAG 이름을 적어 줍니다. bin/bash 는 컨테이너가 실행될때 bash shell로 접속하라는 구문입니다... 2022. 7. 20.
[Jenkins] 환경설정 Jenkins를 설치후에 소스 자동 배포를 위한 환경설정 - Jenkin관리로 들어가서 필요한 플러그인 설치 플러그인 관리 에 들어간다. 설치가능 에 검색창에 Publish Over SSh 입력하여 검색한후에 해당 플러그인을 설치한다. 설치가능에 많은 플러그인들이 나오는데 굳이 다 설치 할 필요는 없고 해당 기능이 필요할때는 도움말 보고 그때 그때 상황에 맞게 설치하자 시스템 설정으로 이동하여 밑으로 쭈욱 내려가서 Name : 아무이름이나 입력 Hostname : 리눅스 서버 호스트 이름 입력 UserName : 리눅스 계정 root 입력 Remode Directory : / 고급 버튼을 클릭하여 root 사용자 패스워드 입력 Use password authentication, or use a diffe.. 2022. 7. 15.
Centos 8에서 mod_jk사용하여 Apache 2.4 와 Tomcat 연동하기 1. mod_jk 모듈 만들기 wget http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz 다운을 받은후 압축을 푼다 tar -xvzf tomcat-connectors-1.2.48-src.tar.gz 디렉토리 이동 cd tomcat-connectors-1.2.48-src/native 아파치가 설치된 apxs 경로를 찾아서 컴파일을 위한 환경 설정을 합니다. apxs 경로를 모를경우 find / -name apxs 로 찾아서 아파치가 설치된 경로 /apps/apache/bin/apxs 경로로 셋팅 ./configure --with-apxs=/apps/apache/bin/apxs 컴파.. 2022. 7. 13.
Centos8 에 JenKins 설치 1 단계 : CentOS 8에 Java 설치 Jenkins가 작동하려면 Java JRE 8 또는 Java 11을 설치해야합니다. # dnf install java-11-openjdk-devel 2 단계 : CentOS 8에 Jenkins 리포지토리 추가 Jenkins는 CentOS 8 리포지토리에서 사용할 수 없으므로 Jenkins Repository를 시스템에 수동으로 추가 할 것입니다. 아래와 같이 Jenkins Key를 추가하여 시작하십시오. # rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key 이제 Jenkin의 저장소를 CentOS 8에 추가합니다. # cd /etc/yum.repos.d/ # curl -O https://pkg... 2022. 7. 12.
Centos-stream8 postgressql 컴파일 설치 root 로 로근인후 사용자 계정 생성 adduser postgres 사용자 암호생성 passwd postgres 새암호: 새암호 재입력: postgresql 사이트에서 postgresql-13.4.tar.gz 파일을 생성된 사용자 계정 홈 디렉토리에 다운 받는다. cd /home/postgres wget https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz 압축을 푼다 tar -zxvf postgresql-13.4.tar.gz 소스가 컴파일 되어서 설치될 디렉토리를 생성한다. 설치할 디렉토리 생성 mkdir -p /apps/postgresql-13.4 mkdir -p /postgresdata/pgdata 소유권 변경 chown -R po.. 2022. 7. 12.
자바 cors 우회하기 get,post방식 get 방식 호출 자바 네이버 지도 get 방식 호출 처리 @RequestMapping(value="/map-direction/v1/driving.do") public ModelAndView driving(HttpServletRequest request) throws Exception{ ModelAndView mav = new ModelAndView("jsonView"); String start = EgovStringUtil.nvl(request.getParameter("start")); //시작좌표 String goal = EgovStringUtil.nvl(request.getParameter("goal")); //목적지좌표 String option = EgovStringUtil.nvl(request... 2022. 7. 12.
[PostgreSql] 오라클 INSTR = POSITION 오라클 위치 찾기 SELECT INSTR('가나다라마바사', '다') FROM dual; POSTGRESQL 위치찾기 같은 기능 select position('다' in '가나다라마바사') 2022. 6. 30.
[PostgreSql] 오라클 WM_CONCAT와 같은 기능 /* POSTGRES 오라클 WM_CONCAT 와 같은기능 */ SELECT ARRAY_TO_STRING(ARRAY_AGG(CONCAT ORDER BY CONCAT ),',') AS AR FROM ( select '문자열합치기1' AS CONCAT UNION ALL select '문자열합치기2' AS CONCAT UNION ALL select '문자열합치기3' AS CONCAT ) A /* 오라클 WM_CONCAT */ SELECT WM_CONCAT(CONCAT) AS CONCAT FROM ( select '문자열합치기1' AS CONCAT FROM DUAL UNION ALL select '문자열합치기2' AS CONCAT FROM DUAL UNION ALL select '문자열합치기3' AS CONCA.. 2022. 6. 30.
[PostgreSql] 특정문자를 짤라서 컬럼으로 변경 /* 오라클에서 특정문자를 기준으로 짤라서 컬럼으로 변경 */ SELECT TRIM(REGEXP_SUBSTR('COLUMN1,COLUMN2,COLUMN3', '[^,]+', 1, LEVEL)) AS SPLIT_CNSTNT_ID ,LEVEL FROM DUAL CONNECT BY INSTR('COLUMN1,COLUMN2,COLUMN3', ',', 1, LEVEL - 1) > 0; /* POSTGRESQL 특정문자를 기준으로 짤라서 컬럼으로 변경 */ select (REGEXP_SPLIT_TO_ARRAY('COLUMN1,COLUMN2,COLUMN3',','))[LEVEL] AS SPLIT_CNSTNT_ID, LEVEL from (select 'COLUMN1,COLUMN2,COLUMN3' as P_CNSTNT_.. 2022. 6. 30.
[PostgreSql] pg_cron job schedule 등록방법 /* pg_cron이 설치가 안되어 있는 경우 * https://github.com/citusdata/pg_cron 사이트에 가서 소스를 다운받아서 컴파일 설치를 한다. * git clone https://github.com/citusdata/pg_cron * cd pg_cron * postgresql이 설치된 bin 경로를 설정한다. */ 리눅스에 .bash_profile 열어서 경로 설정 LANG=ko_KR.UTF-8 PGHOME=/home/passdata/apps/postgresql-13.4 PGDATA=/home/passdata/passdata/pgdata PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin LD_LIBRARY_PATH=/$PGHOME/lib .. 2022. 6. 29.
[PostgreSql] 파티션 자동 생성 프로시저 PostgreSql에서 파티션 자동생성 프로시저 입니다. 오라클과 달리 PosrgreSql에서는 파티션을 나누면 그 자체가 서브 테이블로 생성이 됩니다. 서브테이블에 바로 인서트 해도 되고 서브테이블을 그냥 삭제 해 버리면 파티션도 자동으로 그냥 삭제 처리가 됩니다. CREATE OR REPLACE PROCEDURE PROC_AUTO_PART_CREATE( OUT_RESULT_CD INOUT VARCHAR, OUT_SQLERR INOUT VARCHAR ) LANGUAGE plpgsql AS $procedure$ DECLARE V_SQL VARCHAR(4000); C_PART RECORD; BEGIN FOR C_PART IN select 'CREATE TABLE public.part_' || A.PDATE.. 2022. 6. 28.
[PostgreSql] 프로시저 생성 방법 DBeaver 툴 사용해서 생성 Function메뉴에서 마우스 오른쪽 버튼 클릭하여 Create New Function 메뉴 선택하면 생성창이 뜬다. Type에서 procedure 선택하고 Language에서 plpgsql선택후 확인 눌러서 생성하면 기본 템플릿이 작성된다. CREATE OR REPLACE PROCEDURE public.pn_test() LANGUAGE plpgsql AS $procedure$ declare /* 변수 선언 */ v_test varchar(100); v_date timestamp; BEGIN /* 로직 구현 */ /*변수 초기값 셋팅 */ v_date := now(); END; $procedure$ 2022. 6. 28.
[PostgreSql] 함수 function 생성 방법 DBeaver 툴을 이용하여 기본 템플릿 functin 생성하는 방법 create New Function 클릭하면 입력창이 뜬다. 확인 버튼 클릭 기본 템플릿 파일이 생성 된다. function은 리턴값이 존재하고 프로시저는 리턴값이 있을수도 있고 없을수도 있다. postgresql은 특이하게 function안에 commit나 rollback구문을 넣으면 프로시저나,함수 호출시 에러가 발생한다. 오라클에서는 문제가 안된다. 사실 function안 또는 프로시저안에 commit문이나 rollback을 넣는것 자체가 문제다. 원자성이 훼손된다. 프로그램에서 호출시에 전체가 성공해야 commit이 실행되어야 하는데 프로시저안에 중간 중간 다 박아 넣으면 전체가 성공해야 commit처리가 되어야 하는데 그냥 성.. 2022. 6. 28.
[PostgreSql] 오라클에서 postgresql 로 이관시 타입변환 정리 오라클에서 MERGE INTO 문은 postgresql에서는 UPSERT 문과 비슷하지만 다르다. 오라클에서는 한번에 조회해서 update나 insert처리가 되지만 postgresql에서는 한건씩 비교해서 같으면 업데이트 다르면 인서트 처리를 한다. 건수가 많지 않을경우에는 cursor돌려서 처리하면 되지만 몇백만건 이상 될때는 속도 차이가 많이 난다. FOR 루프로 100만건 정도 된다고 하면 한건싹 루프 돌면서 처리가 되어서 시간이 오래 걸림 FOR ROW_DATA IN ( SELECT KEY,TEST1,TEST2 FROM 조회_테이블명 ) LOOP WITH UPSERT AS ( UPDATE 테이블명 SET TEST1 = ROW_DATA.TEST1 , TEST2 = ROW_DATA.TEST2 , R.. 2022. 6. 28.
[PostGreSql] 문자인지 숫자인지 체크하는 함수 postgresql에는 문자인지 숫자인지 체크하는 함수가 없다. 인터넷 검색하다가 못 찾아서 그냥 함수 하나 만들었다. CREATE OR REPLACE FUNCTION is_numeric ( p_string varchar ) RETURNS numeric AS $$ DECLARE V_NEW_NUM BOOLEAN; BEGIN SELECT p_string ~ E'^[-+]?\\d*\\.?\\d+(?:[eE][-+]?\\d+)?$' into V_NEW_NUM; IF (V_NEW_NUM) THEN RETURN 1; ELSE RETURN 0; END IF; END; $$ LANGUAGE 'plpgsql' /* 사용방법 함수 호출해서 1이면 숫자 0이면 문자다 */ select is_numeric('-3.2') 2022. 6. 24.
[파이쎤] 이기종 db 마이그레이션 대용량 데이터를 이관할때 파이쎤을 이용한 벌크인서트와 읽어 올때 chunksize 옵션 처리 기능을 이용해서 메모리 오버플로우를 처리 하였습니다. 메모리가 충분하면 한방에 읽어와서 처리하면 처리가 빠르지만 메모리 용량이 부족할 경우에는 나누어서 읽어서 처리를 해야 메모리 오버플로우가 발생하지 앖습니다. 파이썬 버전 : 3.8.8 로 테스트 파이썬을 설치후 패키지를 다운받아서 설치한다. pip install contextlib pip install sqlalchemy pip install jaydebeapi pip install pandas pip install apscheduler 1. config.py TIBERO_DB_CONFIG = { 'driver': 'com.tmax.tibero.jdbc.TbD.. 2022. 6. 21.
[파이쎤] 이기종간의 DB 실시간 동기화 파이썬 버전 : 3.8.8 로 테스트 파이썬을 설치후 패키지를 다운받아서 설치한다. pip install contextlib pip install sqlalchemy pip install jaydebeapi pip install pandas pip install apscheduler 1. config.py TIBERO_DB_CONFIG = { 'driver': 'com.tmax.tibero.jdbc.TbDriver', 'url': 'jdbc:tibero:thin:@192.100.1.10:829:tibero', 'user': 'tiberotest', 'password': 'test1234', 'jdbcDriver': 'd:/python_schedule/jdbc/tibero6-jdbc.jar' } PG_DB.. 2022. 6. 21.
build.gradle plugins 와 apply plugin 차이 그레이들에서 멀티 모듈을 Root project에 위치한 빌드스크립트에서 정의하는 것을 ‘Cross project configuration'라고 한다. 예제에서 플러그인 설정을 할 때 빌드스크립트(build.gradle 파일) 내에 buildscript를 정의하는데 내 파일에는 plugins 방식으로 되어있어 찾아봤는데 개선되었다고 한다. 기존 buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } .. 2022. 5. 31.
vscode 오프라인에서 extension 설치 - 마켓 플레이스 접속하여 다운받고 싶은 툴 검색하여 다운 받는다. extension은 확장자가 vsix 이다. https://marketplace.visualstudio.com/ Visual Studio Marketplace Extensions for Visual Studio family of products on Visual Studio Marketplace marketplace.visualstudio.com 2022. 5. 11.
728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading