분류 전체보기
-
SQL기초 DISTINCT, GROUP BY 차이SQL 2024. 3. 3. 20:40
둘다 중복을 제거해준다. DISTINCT는 중복을 제거하여 결과 집합에 고유한 값만을 반환하는 데 사용되고, GROUP BY는 결과를 그룹화하여 그룹에 대한 집계를 수행하는 데 사용된다. 원본 데이터 TB_ITEM DISTINCT SELECT DISTINCT BRAND, NAME, GEN PRICE, MADE_IN FROM TB_ITEM; 결과 DISTINCT사용시 뒤에 붙는 컬럼들을 AND조건으로 유일한 값을 추출한다. 그래서 결과는 모든 행을 조회한다. (중복되는 row가 없다) GROUP BY SELECT BRAND, NAME, MAX(GEN), SUM(PRICE), MAX(MADE_IN) FROM TB_ITEM GROUP BY BRAND, NAME; 결과 그룹핑할 컬럼만 GROUP BY에 정의하고..
-
[4] 젠킨스 Jenkins SVN + MAVEN + 부트 JAR 빌드 자동화 배포Build and deploy 2024. 1. 28. 16:11
10분마다 SVN서버에서 pull 받고 빌드 후 배포 하는 방법을 간단하게 정리하겠다. 스프링부트 프로젝트는 보통 jar 파일로 배포된다. ※ 삽질내용 - Build Steps 단계의 Excute Shell 에 jar실행 스크립트만 작성하면 될줄알았는데 기존빌드가 종료되지 않아 팬딩오류가 발생하였음 ※ 사전 준비 (중요) - POST BUILD TESK 플러그인 설치하기 post build task 플러그인은 빌드가 성공했을 경우에만 후 조치로 기존 앱을 종료시키고 새로운 앱으로 교체 및 시작하는 과정을 진행하도록 도와주는 역할을 한다. 1. 아이템생성, Freestyle project 선택 2. SVN 정보 입력 , 자세한 입력방법은 이전페이지 참고 3. 빌드 유발 입력 크론탭 포맷으로 스케쥴을 입력..
-
[2] 젠킨스 Jenkins SVN 커밋 감지 후 빌드 배포하기Build and deploy 2024. 1. 25. 12:59
내가 하려는 것 - 작업자가 SVN으로 커밋하면 젠킨스에서 레포지토리를 감지하여 재빌드후 재배포 하는것 > 테스트결과 svn 커밋을 자동으로 감지하는 방법은 없다. 젠킨스 프로젝트 구성 옵션중에는 * Build Periodically , * Poll SCM가 있다. 둘다 시간을 맞추고 배치성 행위를 할수 있다. Build Periodically란 ? - 빌드를 배치 처럼 사용하는 것. - 설정 해놓은 시간에 자동으로 빌드를 진행하도록 하는 설정 - 시간설정은 Crontab or Quartz 포맷으로 설정 Poll SCM란? - 트리거로 잡혀있는 빌드를 감지한다. - 파일에 변화가 생기면 빌드 및 배포를 한다. - 시간설정은 Crontab or Quartz 포맷으로 설정 둘이 다른건 Poll SCM이 빌드..
-
[1] 젠킨스 Jenkins 스프링부트 war+Maven+Tomcat+Svn 빌드 및 배포Build and deploy 2024. 1. 21. 21:07
스프링부트(war) Tomcat9 톰캣 WAS Maven 레퍼지토리 Svn으로 구성한 프로젝트를 젠킨스로 빌드배포하기 #버전 - JDK 1.8 - 스프링부트 버전 2.7 - 아파치 톰캣 9 - maven 3.9.6 - SVN 형상관리 # 삽질 주요 포인트 - 젠킨스에서 프로젝트를 구성할때 안보이는 옵션은 플러그인마켓에서 추가해야만 보인다. - 프로젝트를 jdk 1.8로 만들었으면 톰캣이 참조하는 jre도 1.8로 해야한다. (톰켓 로그에도 오류가안나오기때문에 해맴) - 톰캣서버를 켜놔야(./startup.sh) 젠킨스에서 최종 아웃콘솔에 Build Success가 나온다. 1. 아파치 톰캣 설정 apache-tomcat-9.0.85/conf/tomcat-users.xml 파일에 아래 내용 추가 후 저장,..
-
자바로 엘라스틱서치(Elasticsearch) 데이터 보내기 (단건,다건) Java to ELkAPi 2024. 1. 14. 20:33
웹서비스중인 사이트의 로그를 ELK(Elasticsearch Kibana)로 보기 위해 1건 전송과 한번에 여러건을 전송하는 일이 생겼다. // java rest APi 삽질의 결과를 토대로 포스팅을 한다. ※ ELK 기 본적으로 헤더에 Basic 인증정보를 넣어 API통신을 해야한다. // "아이디:비밀번호" BASE64 인코딩을 해서 보냄. 1. 단건 (1건) 보내기 - _doc api 이용 - method : POST - API주소 : https://엘라스틱서치주소/인덱스명/_doc - Java RestTemplate 클래스 사용 - 전송 형식 (Body) { "field1" : "value1" , "field2" : "value2" , "field3" : "value3" } 일반적인 json ..
-
데이터베이스 index의 고찰DBMS 2024. 1. 7. 16:46
인덱스란 무엇이고 어떻게 생성되고 적용되는지 알아보자~🥹 평소에 SQL을 툴이나 DDL문으로 직접 실행할 때 인덱스를 정의하는 부분이 없었기 때문에 내가 인덱스를 쓰는지 안쓰는지 모를때가 있었다.😂 하지만 대부분 인덱스를 사용하고 있었다. 왜냐면 index란 기본적으로 PK컬럼 지정시 자동으로 생성된다. PK가 없는 테이블은 없을것이다.😂 인덱스(Index) 란? - 특정 열(또는 칼럼)의 값을 기반으로 데이터를 빠르게 찾을 수 있도록 도와주는 데이터 구조. - 인덱스는 데이터베이스 성능을 향상시키기 위해 사용되며, 특히 대량의 데이터에서 특정 레코드를 빠르게 검색하고 정렬하는 데 도움이 된다고 한다. 출처 https://chartio.com/learn/databases/how-does-indexing-..
-
JPA Specification를 사용하여 조인,검색기능 만들기JPA 2023. 12. 25. 15:21
이 포스트는 Specification의 사용법만 설명한다. 기타 페이징 적용, response방법 등은 생략한다 JPA Specification란? 1. JPA Specification은 Java Persistence API (JPA)에서 제공하는 기능 중 하나로, 동적으로 쿼리를 생성하는 방법을 제공 2. JPA는 자바 어플리케이션에서 관계형 데이터베이스와 상호 작용할 수 있게 해주는 API 3. JpaRepository 상속받을때 JpaSpecificationExecutor도 같이 속받으면 된다. 테스트를 진행하려면 아래의 파일들이 필요하다. AccountSpecification.java public class AccountSpecification { //거래처명 검색 public static Spe..