home (269) 썸네일형 리스트형 Intellij Github upload 인텔리제이에서 생성한 프로젝트를 Github에 올리는 방법입니다. 참고로 저는 인텔리제이 한글 언어 팩을 적용해서 사용중입니다. "버전 관리 > Git 저장소 생성" 을 선택하여 로컬 저장소를 생성합니다. 생성할 저장소 위치를 선택하고 확인 버튼을 선택합니다. "Git > GitHub > GitHub에 프로젝트 공유" 를 선택합니다. 저장소 이름을 입력하고 "공유" 버튼을 클릭합니다. "Git > 원격 관리" 를 선택합니다. 원격 저장소 링크를 확인하고 "확인" 버튼을 선택합니다. 커밋할 파일들을 선택하고 커밋 메시지 입력한 뒤에 "커밋 및 푸시" 버튼을 선택합니다. 방금 커밋한 내용이 반영되었음을 확인할 수 있습니다. Oracle FlashBack Query 오라클에서 FlashBack Query를 통해 특정 시점의 테이블 데이터를 복원할 수 있습니다. 예제 테이블은 이전의 계층형 쿼리의 예제 테이블로 현재 row 8건을 가지고 있습니다. 예제 쿼리를 보면 FlashBack Query를 통해 예제 테이블의 10분 전 데이터를 조회하고 있습니다. ID가 8인 row가 추가되지 않은 것을 확인할 수 있습니다. AS OF TIMESTAMP는 특정 시점의 데이터를 조회하고 SYSTIMESTAMP - INTERVAL '10' MINUTES는 현재 시간 기준 10분 전의 시점을 지정하고 있습니다. 조금 더 복잡한 쿼리를 작성해야 되면 AS OF TIMESTAMP 절 뒤에 WHERE 절을 추가하면 됩니다. 오라클에서 데이터를 모르고 삭제하거나 수정한 경우 FlashB.. Oracle Hierarchical Query 오라클에서 한 테이블의 상속관계 row들을 계층형 쿼리로 조회할 수 있습니다. 다른 RDBMS에서 상속관계 row들을 조회하려면 join을 통해야 하는데 오라클 계층형 쿼리를 사용하면 쉽게 조회할 수 있습니다. 예제 테이블을 보게 되면 PARENT_CD를 통해 row들이 계층형 관계를 갖고 있습니다. 예제 쿼리 1을 보게 되면 START WITH를 통해 조회할 데이터의 루트 노드를 지정하는데 ID가 1인 row를 루트 노드로 지정합니다.(3라인) CONNECT BY PRIOR를 통해 부모 노드에 속하는 자식 노드들을 조회합니다.(4라인) PRIOR 뒤에 자식 노드의 ID 컬럼이 부모 노드를 참조하면 부모 노드부터 자식 노드를 순뱡향 조회합니다. 예제 쿼리 2와 3을 보면 각각 ID가 2인 3인 노.. Oracle Pivot 오라클에서 여러 행의 특정 컬럼을 하나의 행으로 조회하려면 Pivot을 사용하면 됩니다. 예제 테이블의 CODE 컬럼 기준으로 집계하여 Pivot을 통해 COL1, COL2 컬럼 합계를 구하겠습니다. 위의 예제 쿼리를 설명하면 서브 쿼리에서 CODE 컬럼 기준으로 집계하여 COL1, COL2 컬럼의 합계를 구합니다.(8 ~ 13라인) 서브 쿼리 결과를 Pivot에서 변환합니다.(14 ~ 23라인) 앞의 서브 쿼리에서 CODE 컬럼 기준으로 COL1, COL2 합계값을 구했기 때문에 MAX(COL1_SUM), MAX(COL2_SUM)을 통해서 Pivot에서 값을 구합니다. FOR CODE IN을 통해 각 CODE 별 컬럼을 생성합니다. 여기서 CODE는 SQL 예약어가 아니라 예제 테이블의 컬럼명입니다.. Spring Async CompletableFuture 앞에서 작성한 글에 이어서 비동기로 호출한 메소드들의 결과값을 처리하는 방법입니다. 비동기로 호출한 메소드들의 결과값을 처리하려면 Async와 CompletableFuture를 사용하면 됩니다. 페이징 처리를 예시로 들면 일반적으로 데이터 목록을 조회하는 메소드와 데이터 갯수를 조회하는 메소드 2개를 호출하는데 이렇게 하면 동기로 순차적으로 처리되기 때문에 비효율적입니다. 2개의 메소드가 서로에게 영향을 끼치지 않기 때문에 비동기로 호출하는 것이 효율적입니다. 위의 ElasticSearchRepositoryImp 자바 코드를 보게 되면 데이터 목록을 조회하는 메소드와 데이터 목록 개수를 조회하는 메소드들을 각각 비동기로 호출하고 결과값을 리턴하고 있습니다. @Async 어노테이션을 통해 메소드를 비동기.. Spring Async 비동기 처리 스프링에서 메소드 호출을 비동기로 처리해야 하는 경우 Async를 사용하면 됩니다. 예를 들면 첨부파일을 ElasticSearch와 DB에 저장해야 하는 경우 순차적으로 저장하는 것보다 비동기로 처리하면 성능을 개선할 수 있습니다. 비동기 처리를 설정하는 AsyncConfig 클래스입니다. @Configuration 어노테이션을 통해 이 클래스가 스프링 설정을 담당하고 있음을 나타냅니다.(10라인) @EnableAsync 어노테이션을 사용하여 스프링의 비동기 설정을 처리합니다.(11라인) 비동기 작업을 지원하는 ThreadPoolTaskExecutor 빈을 생성하는 taskExecutor 메소드입니다.(14 ~ 23라인) 이 메소드에서 생성하는 빈 이름은 "taskExecutor"입니다.(14라인) 기.. Spring ElasticSearch Snapshot Backup Restore 스프링에서 ElasticSearch 데이터를 스냅샷으로 백업하고 복원하는 방법입니다. 이전에 작성한 ElasticSearch 스냅샷 생성하는 방법은 직접 kibana에서 작업해야 했는데 이번에는 REST API를 통해 스프링에서 처리하는 방법입니다. https://tiqndjd12.tistory.com/278 ElasticSearch Snapshot Backup RestoreElasticSearch 데이터를 스냅샷으로 백업하고 복원하는 방법입니다. 스냅샷을 생성하기 전에 먼저 elasticsearch.yml 파일에 스냅샷이 저장될 레포지토리를 설정합니다. elasticsearch.yml 파일은 /usr/share/tiqndjd12.tistory.com 스냅샷 레포지토리 생성과 등록은 사전에 완료되었다고.. ElasticSearch Snapshot Backup Restore ElasticSearch 데이터를 스냅샷으로 백업하고 복원하는 방법입니다. 스냅샷을 생성하기 전에 먼저 elasticsearch.yml 파일에 스냅샷이 저장될 레포지토리를 설정합니다. elasticsearch.yml 파일은 /usr/share/elasticsearch/config/ 디렉토리에 있습니다. docker로 ElasticSearch 실행 중이라 elasticsearch.yml 파일 위치는 다를 수 있습니다. 수정한 elasticsearch.yml 파일의 내용을 반영하기 위해 ElasticSearch를 재부팅해야 합니다. docker로 ElasticSearch 실행 중이기 때문에 컨테이너 재부팅했습니다. 스냅샷을 생성하기 전에 먼저 디렉토리를 생성합니다. test_backup은 생성될 스냅샷.. 이전 1 2 3 4 ··· 34 다음