본문 바로가기

반응형

전체 글

(499)
[IntelliJ] IntelliJ 복구기능 프로젝트에서 우클릭후 하단에 로컬기록으로 가서 팝업을 띄우면 이렇게 나오는데 좌측에서 변경할 시점을 선택해 되돌리기를 누르면 그때로 복구가 가능하다. 스탬프는 build가 되면서 찍히는 것 같다. + ) Local History 보관 기간 - 기본값은 최근 5일치 보관 - 일수는 파일에 변경이 실제로 일어난 working day 로 산정함 - IntelliJ 의 JVM 옵션에 -DlocalHistory.daysToKeep=30 처럼 지정하여 변경할 수 있음 - 또는 IntelliJ 설정 중 Registry 설정에서 변경 가능
[POI] EXCEL업로드시 숫자타입 문자타입으로 변경 @Override public List uploadExcelFile(MultipartFile excelFile, Boolean dbInsertFlag, AdminSearchVO paramVO) { List list = new ArrayList(); Set groupCodes = new HashSet(); try { OPCPackage opcPackage = OPCPackage.open(excelFile.getInputStream()); XSSFWorkbook workbook = new XSSFWorkbook(opcPackage); XSSFSheet sheet = workbook.getSheetAt(0); for(int i=1; i
[POI] 엑셀 업로드시 중복값 체크 Set groupCodes = new HashSet(); ... XSSFCell cell = row.getCell(0); if(cell == null) { break; } if (null != cell) { String groupCode = cell.getStringCellValue(); if (groupCode.equals("")) { break; } // 중복을 확인하기 위해 varCode를 Set에 추가하고, 중복인 경우 해당 항목 스킵 if (groupCodes.contains(groupCode)) { continue; } data.setGroupCode(groupCode); groupCodes.add(groupCode); } if(null != cell) { data.setGroupCode(ce..
[Spring Security] CSRF 토큰 토큰 재생성시 Model에 담아야함 Controller String csrf = getCsrfToken(request); model.addAttribute("newToken", csrf); JavaScript function sample() { ... // 토큰과 헤더의 meta데이터 수정 const token = $("meta[name='_csrf']").attr("content"); const header = $("meta[name='_csrf_header']").attr("content"); var tags = ""; $.ajax({ url: '/amng/dataVariableMng/uploadExcelFile', data: formData, processData: false, contentType..
[gitHub]Large files detected. You may want to try Git Large File Storage GitHub에 push를 하던 중 그동안 못봤던 노란 글씨가 보여 놀랐다. 해당 경고문은 권장 최대 파일크기가 50MB인데 50MB가 넘는 파일을 업로드 하려고 했다고 나타나는 것이다. 확인해보니 100MB이상은 업로드가 되지 않아 100MB가 넘는 파일이 검출되면 에러가 발생한다고 한다. $ find . -type f -size +50M 파일 사이즈가 큰 것들은 해당 디렉토리로 이동해서 검색해본다. 나의 경우에는 단순 경고문인데다가 push가 되지 않더라도 크게 문제가 되지 않는 파일들이라 찾아본 해결책만 작성해보겠다. 해결방법 lfs 설치 $ git lfs install 관리할 파일 지정 $ git lfs track 경로/.../파일명 # e.g.) git lfs track project/largeF..
[JPA] Auto Increase가 안될 때 역시 기계는 솔직하다 삽질(이전글1, 이전글2)은 내가 해놓고 원인을 못찾고있었으니... 데이터를 먼저 올리고 Auto Increase가 안될 때 여러가지 경우가 있다.(경험치....) @GeneratedValue 전략이 잘못 되었을 때 GeneratedValue에서 기준이 잘못되어 ID값이 잘못 부여되는 경우가 많다고 한다. (관련 글) properties 혹은 yml파일에서의 설정 - Spring에서는 Script-base 방식과 Hibernate의 생성 방식과 같이 다양한 데이터 초기화 기술을 함께 쓰는 것을 권장하지 않음(참고 글) - init.schema 후 init.data / 세트로 둘이 같이 있어야 한다. # application.properties spring.jpa.database=h2..
[FrontEnd] 디렉토리들의 경로와 정의, 역할 webapp 디렉토리 역할: 웹 애플리케이션의 root 디렉토리로 모든 웹 리소스(정적 및 동적)를 포함 정의: HTML, CSS, JavaScript 파일, 이미지 등의 정적 리소스와 JSP, Tiles 정의 파일 등의 동적 리소스를 포함 / WEB-INF와 META-INF 디렉토리를 포함하며, 웹 애플리케이션의 구조 정의 WEB-INF 디렉토리 역할: 웹 애플리케이션의 보안이 필요한 부분을 담당하는 디렉토리로, 외부 접근 제한 정의: WEB-INF 내부에는 서블릿 클래스, 라이브러리 JAR 파일, 배치 설명자(web.xml), 그리고 Tiles 구성 파일 같은 웹 애플리케이션 리소스가 저장됨 / 보안상의 이유로 외부에서 직접 접근 불가 META-INF 디렉토리 역할: 애플리케이션의 메타데이터를 담고 ..
[JDBC] java.sql.SQLException: No suitable driver found for jdbc:mariadb Spring Batch를 이용해 물리적으로 다른 서버에 있는 DB를 옮기려고 한다. 기존에 정상 작동을 확인했으나 보안 이슈를 해결하는 과정에 다시 마주친 에러이다. Sol) 의존성 관련 이슈 의존성을 추가해 주면 된다 org.mariadb.jdbc mariadb-java-client 3.3.3 ​ 클래스를 불러오지 못하는 경우 작성한 Batch관련 Java코드 안에 public class Batch{ public void connection() { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, password); //... } }​​ 이런식으로 Class.forName()을 이용..

반응형