Backend (183) 썸네일형 리스트형 [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.. [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()을 이용.. [git] .gitignore 적용 About .gitignore - 정의 : 프로젝트 내에서 Repository에 올리지(commit) 않고 무시할(ignore) 정보들을 가지고 있는 파일(.gitignore) - 보편적으로 포함하는 내용 용량이 커서 제외 되어야 할 파일 혹은 디렉토리 경로 보안적인 문제에서 걸려 제외 되어야 할 파일 혹은 디렉토리 경로 불 필요하다고 판단 되어 제외 되어야 할 파일 혹은 디렉토리 경로 - 작성법 표현법 설명 /dir 루트 디렉토리 하위의 dir라는 이름을 가진 모든 디렉토리 및 파일을 무시 dir/ 위치에 상관없이 dir라는 이름을 가진 모든 디렉토리 및 하위 내용들을 무시 /dir/ 루트 디렉토리 하위의 dir라는 이름을 가진 모든 디렉토리 및 하위 내용들을 무시 .txt txt확장자를 가진 파일 무.. [STS] Maven Build Error [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.3:war (default-war) on project cancerMonitor: Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.3:war failed: Unable to load the mojo 'war' in the plugin 'org.apache.maven.plugins:maven-war-plugin:2.3' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookup.. [REST API] @Controller / @RestController 이제 어느 정도 API통신이 가능한것을 확인했으니 테스트 페이지를 만들어야했다. 그래서 Tile Framework를 이용해 페이지를 구성하려고 한다. 하지만 REST API 환경에는 Tiles Framework로 웹페이지를 구성하는 것이 안되는 것은 아니지만 가능하면 사용하지 않는 것이 좋다고 한다. REST API는 주로 서버와 클라이언트 간의 상태를 전달하는 데 초점을 맞춘 데이터 주고받기 방식을 제공되어 클라이언트(예: 웹 브라우저, 모바일 앱)에서 사용자 인터페이스를 구성하고, 서버로부터 받은 데이터를 표시하는 방식으로 작동하기 때문이라고 한다. 따라서, 서버 측에서 HTML 페이지 조각을 조립하는 Tiles와 같은 기술은 클라이언트 측에서 UI를 동적으로 구성하는 현대적인 접근 방식과 잘 맞지 .. 이전 1 ··· 9 10 11 12 13 14 15 ··· 23 다음