일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- react
- wildfly
- IntelliJ
- useEffect
- VSCode
- JavaScript
- LOG4J
- JPA
- Windows
- springboot
- nginx
- intellijIDEA
- database
- mybatis
- gson
- BPMN
- Spring
- docker
- maven
- Kubernetes
- MySQL
- log4j2
- tibero
- nodejs
- dbeaver
- gradle
- kubectl
- Git
- NCP
- Today
- Total
목록분류 전체보기 (249)
두 손끝의 창조자
기준이 되는 이미지에 m1 플랫폼 이라는 것을 명시를 해줘야 하는데 그러면 플랫폼에 도커 파일이 의존성이 생긴다. 빌드할 때 ` --platform=linux/x86_64` 옵션을 추가해서 명시적으로 x86 시스템이라고 하면 빌드는 된다. 그런데 이 이미지가 실행이 잘 될까?
특정 컨텍스트에서 새 오브젝트로 데이터를 바인드 시키려면 ObjectMapper 같은 라이브러리를 활용하면 편리하다. 스프링 부트에는 이 기능을 제공하는데 org.springframework.boot.context.properties.bind.Binder 클래스가 그 역할을 수행한다.
테이블 조회시 그리드에 아래 처럼 컬럼의 설명을 넣을 수 있다. 프리퍼선스에서 Show column description in header 에 체크하고 껏다가 켜면 된다.
gradle 빌드를 하면 존재하는 테스트를 모두 수행한다. 때에 따라서 build시만 예외처리를 하고 싶으면 아래와 같이 대상을 등록한다. test { exclude("**/TestToSkipTest.class") }
org.springframework.boot.context.annotation.ImportCandidates /* * Copyright 2012-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in w..
DBeaver 에서 기본적으로 엑셀파일로 출력을 지원하지 않는다. 추가 적으로 플러그인을 설치해야하는데 잘 정리된 글이 있으므로 참조 할 것. OKKY - [Dbeaver] 엑셀 추출 라이브러리 설치 방법 OKKY - [Dbeaver] 엑셀 추출 라이브러리 설치 방법 dbeaver 처음 설치하고 데이터 추출 시, 엑셀파일은 없고 csv파일 다운로드만 존재합니다.※ csv 파일 추출시 인코딩을 EUC-KR로 하면 한글이 깨지지 않습니다. dbeaver에서 엑셀 추출 라이브러리 설치 okky.kr
JetBrains 제품을 사용하면 프로그램이 별도로 만들어내는 데이터를 저장하는 공간이 있는데 그 위치가 C:\Users\[유저]\AppData\Local\JetBrains , C:\Users\[유저]\AppData\Roaming\JetBrains 이다. 문제는 IDE를 업데이트 하면 기존에 썼던 데이터를 그대로 유지하고 있어서(폴더이름이 버전으로 되어 있음) 소중한 공간을 낭비하고, 크기도 어마한 공간을 잡아 먹는다. 불필요한 공간을 삭제하자. Menu->Help->Delete Leftover IDE Directories 를 눌러서 불필요한 공간 검색을 하게하고 지울게 있으면 알림 형태로 뜨는데 클릭해서 삭제하면 된다.
[Spring Boot]war로 배포하기 (Gradle + 내/외장 톰캣) (tistory.com)
다운로드 Apache Tomcat® - Apache Tomcat 9 Software Downloads 에서 apache-tomcat-9.0.70-windows-x64.zip 다운로드 설치 압축을 풀고 bin/startup.bat 을 실행하면 JAVA_HOME 이 지정이 안되어 있다고 나온다. 시스템 환경 변수에 자바 홈을 추가한다 다시 startup.bat을 실행한다. localhost:8080 접속하면 잘 기동된다. shutdown.bat 으로 종료한다. 포트변경 8080 포트는 다른 서비스에서 많이 쓰기 때문에 톰캣 실행 포트 변경한다. conf/server.xml 파일을 열어서 8080 -> 8088 로 변경 매니저 접속 URL 열기 톰캣 매니저 접속 권한 변경 webapps/manager/META..
tail -f 걸었는데 트래킹을 하지 않는다면 그 파일이 없어졌다가 새로 만들어지는 파일이 아닌가 의심해봐야 한다. -f 옵션은 inode로 팔로우 하는 옵션이고, 없어졌따가 새로 만들어지는 로그파일 같은 경우 파일이름으로 추적해야 하기 때문에 -F 옵션을 사용해야 한다.
백앤드 자원은 WAS에 디플로이 하면 되는데 넥사크로에서 생성한 js 파일은 nginx의 resource 디렉토리 쪽으로 매번 옮겨야 한다. 파일을 옮길 때 전체를 다 복사하면 보통 UI쪽은 파일 수가 많기 때문에 상당한 시간이 걸릴 수 있다. 리눅스에 rsync 라는 도구를 이용하면 편리하게 할 수 있다. rsync -av /home/cothe/source/ /home/cothe/target/
myBatis는 파라미터 바인딩을 위해 #{name} 이나 ${name} 형식으로 바인딩 변수를 선언한다. 대부분 SQL 툴에서는 :name 형태로 바인딩 변수를 지정하는데 myBatis로 작성된 sql은 바인딩 변수 형식을 변경을 해야 DB 툴에서 사용할 수 있다. Intellij에 포함되어 있는 Database Console 에서는 이 바인딩 변수의 패턴을 지정할 수 있다. 그래서 #{name} 이나 ${name} 패턴으로 된 변수도 sql 수정 없이 사용할 수 있다. 환경 설정에서 패턴을 추가하자. 추가된 패턴 : #\{([^\{\}]*)\}
private List splitSql(String sqlChunk) { StringBuilder sb = new StringBuilder(); List sqlList = new ArrayList(); boolean openQuote = false; for (int i = 0; i < sqlChunk.length(); i++) { char c = sqlChunk.charAt(i); if (c == '\'') { openQuote = !openQuote; } if (c == ';' && !openQuote) { sqlList.add(sb.toString().trim()); sb = new StringBuilder(); } else { sb.append(c); } } re..
ssh-keyscan -t rsa [접속하고자하는호스트주소] >> ~/.ssh/known_hosts gradle에서 org.hidetake.ssh 를 이용하여 파일을 업로드 하는 등 스크립트를 실행하려고 하니 com.jcraft.jsch.JSchException: reject HostKey 오류가 발생했다. OS에 해당 호스트에 대한 정보(?)가 없기 때문인것 같은데 위 명령을 수행해서 known_hosts에 추가한다.
Gson gson = new GsonBuilder() .registerTypeAdapter(new TypeToken() { }.getType(), (JsonDeserializer) (element, typeOfT, context) -> { if (element.isJsonPrimitive()) { return new Table(Collections.emptyList()); } else { JsonElement jsonElement = ((JsonObject) element).get("T_DATA"); if (jsonElement.isJsonObject()) { CompanyInfo deserialize = context.deserialize(jsonElement, CompanyInfo.class); re..
Map에 Key가 abc01 이고 Object 필드의 필드명이 abc_01 일 때 서로 매핑 가능하도록 하려면 매핑전략을 정의해야한다. Gson gson = new GsonBuilder() .setFieldNamingStrategy(f -> concatUnderscoredIndex(f.getName())) .create(); String concatUnderscoredIndex(String str) { if (str == null) return null; if (!str.contains("_")) return str; int i = str.lastIndexOf("_"); if (i == 0) return str; String prefix = str.substring(0, i); String suffix ..
netstat -tnlp | grep [찾을 포트 번호]kill -9 [프로세스 번호]
SELECT * FROM ( SELECT sid || ',' ||serial# "Sid,Serial" ,username "Username" ,status "Status" ,ipaddr "IPaddr" ,to_char(logon_time,'yy/mm/dd hh24:mi:ss') "Logon_Time" ,prog_name "Program" --,pga_used_mem/1024 "PGA(KB)" ,wlock_wait "Wlock_Wait" --,NVL(sql_id, prev_sql_id) "SQL_ID" ,NVL(sql_id, prev_sql_id) || '/' || NVL2(sql_id, sql_child_number, prev_child_number) "SQL_ID" --,client_pid "Client..
데이터베이스 네비게이터에서 데이터 소스를 선택 후 제네럴 선택 Customize 버튼 클릭 다른건 다 필요없고 스키마와 테이블만 표시하도록 체크 아래 Schemas / Users 클릭 유저 추가 표시 예외 조건 추가 여기서 이걸 추가 안하면 시스템 오브젝트 언더바로 시작하는 것들 등등 다 표시된다. 결과 매우 깔끔쓰
이미지 다운 host>docker run -i -t -p 8629:8629 --name tdb_ubuntu --platform linux/amd64 --hostname [호스트이름] ubuntu /bin/bash --platform linux/amd64 옵션은 arm image가 아닌 amd64 이미지를 사용하도록 한다. 호스트 이름은 라이선스에서 지정한 호스트이름과 같아야 한다. 터미널에서 hostname 쳤을 때 보이는 이름 우분투 업데이트 container>apt update && apt upgrade && apt dist-upgrade container>apt install sudo vim container>apt install libaio1 libncurses5 우분투 환경설정 환경설정 파일 열..