SpringBoot
-
🐸SpringBoot 파일 처리 총 정리 (파일 업로드/다운로드, 파일 경로, 파일 삭제) springboot + thymeleaf꽤나 애를 먹인 파일 처리 부분을 완벽 정리해봤다.최대한 자세히 정리하겠지만, 이해가 안 가거나 어려운 내용이 있다면 댓글을 달아주세요! 1. 파일 경로 결정가장 먼저 파악해야 할 것은 파lulook.tistory.com 위의 글에 이어 조금 더 보충하고 싶은 내용이 있어, 추가 정리를 해본다! 추가 포스팅 이유앞선 포스팅에서 아래처럼 파일 경로를 외부 경로(디렉터리)로 하는 것이 일반적이라고 했는데, 반대로 프로젝트 내부에 업로드 파일을 올리는 경우엔 어떻게 할 수 있을지 정리해보려 한다. Spring Boot 파일 구조파일 구조를 살펴보면, 대략 이해가 될 텐데 ..
🐸SpringBoot 파일 처리 총 정리 2탄 (static 경로에 파일 업로드/다운로드, 파일 경로, 파일 삭제) springboot + thymeleaf🐸SpringBoot 파일 처리 총 정리 (파일 업로드/다운로드, 파일 경로, 파일 삭제) springboot + thymeleaf꽤나 애를 먹인 파일 처리 부분을 완벽 정리해봤다.최대한 자세히 정리하겠지만, 이해가 안 가거나 어려운 내용이 있다면 댓글을 달아주세요! 1. 파일 경로 결정가장 먼저 파악해야 할 것은 파lulook.tistory.com 위의 글에 이어 조금 더 보충하고 싶은 내용이 있어, 추가 정리를 해본다! 추가 포스팅 이유앞선 포스팅에서 아래처럼 파일 경로를 외부 경로(디렉터리)로 하는 것이 일반적이라고 했는데, 반대로 프로젝트 내부에 업로드 파일을 올리는 경우엔 어떻게 할 수 있을지 정리해보려 한다. Spring Boot 파일 구조파일 구조를 살펴보면, 대략 이해가 될 텐데 ..
2024.05.30 -
꽤나 애를 먹인 파일 처리 부분을 완벽 정리해봤다.최대한 자세히 정리하겠지만, 이해가 안 가거나 어려운 내용이 있다면 댓글을 달아주세요! 1. 파일 경로 결정가장 먼저 파악해야 할 것은 파일 경로다.스프링부트는 내장톰캣을 사용하기 때문에 (but 현재 회사에선 배포할 때 외장톰캣을 씀)임시 폴더에 넣으면 톰캣을 재실행했을 때 날라가기 때문에 (⬅️이게 젤 큰 이유) 프로젝트 내부가 아닌 외부에 따로 폴더를 만들어서 저장 하기로 했다.(주로 이렇게 하는 듯) OS 에 따라 조금씩 달라지는데Window D:/upload Linux /uploadMacOS /Users/upload 참고로 나는 Windows(회사) Linux(회사 서버) Mac(개인 프로젝트) 을 모두 사용하고 있고, 모두 잘 작동하는 걸 확..
🐸SpringBoot 파일 처리 총 정리 (파일 업로드/다운로드, 파일 경로, 파일 삭제) springboot + thymeleaf꽤나 애를 먹인 파일 처리 부분을 완벽 정리해봤다.최대한 자세히 정리하겠지만, 이해가 안 가거나 어려운 내용이 있다면 댓글을 달아주세요! 1. 파일 경로 결정가장 먼저 파악해야 할 것은 파일 경로다.스프링부트는 내장톰캣을 사용하기 때문에 (but 현재 회사에선 배포할 때 외장톰캣을 씀)임시 폴더에 넣으면 톰캣을 재실행했을 때 날라가기 때문에 (⬅️이게 젤 큰 이유) 프로젝트 내부가 아닌 외부에 따로 폴더를 만들어서 저장 하기로 했다.(주로 이렇게 하는 듯) OS 에 따라 조금씩 달라지는데Window D:/upload Linux /uploadMacOS /Users/upload 참고로 나는 Windows(회사) Linux(회사 서버) Mac(개인 프로젝트) 을 모두 사용하고 있고, 모두 잘 작동하는 걸 확..
2024.05.29 -
iframe 에서 부모창의 함수를 호출해 전체 페이지를 이동시켜야 했다. 코드는 다음과 같다. iframe창으로 이동하겠냐는 confirm 창을 띄우고, 값이 true 라면 부모창의 함수를 호출한다.const ans = confirm('[] ~~~~창으로 이동하시겠습니까?');if(ans) { window.parent.postMessage( // 전달할 data (부모창에서 호출할 로직명 etc) { functionName : 'moveTo~~~~Page', deviceCode : '값1', searchDate : '값2' } // 부모창의 주소(복수 개로 쓸 수 없음) , 'http://local..
🐸iframe에서 부모창 함수 호출iframe 에서 부모창의 함수를 호출해 전체 페이지를 이동시켜야 했다. 코드는 다음과 같다. iframe창으로 이동하겠냐는 confirm 창을 띄우고, 값이 true 라면 부모창의 함수를 호출한다.const ans = confirm('[] ~~~~창으로 이동하시겠습니까?');if(ans) { window.parent.postMessage( // 전달할 data (부모창에서 호출할 로직명 etc) { functionName : 'moveTo~~~~Page', deviceCode : '값1', searchDate : '값2' } // 부모창의 주소(복수 개로 쓸 수 없음) , 'http://local..
2024.05.14 -
1) 전개 현재 프로젝트에서 select 타입에서 Live Search 기능을 활용하기 위해 bootstrap-select 를 활용하고 있다. cdn 오류로 된통 당하고, cdn 이 아닌 다운로드 파일을 프로젝트에서 가져다 쓰기로 했다. bootstrap-select 홈페이지에서 다운로드 받아 바아로~~ 적용만 하려고 했는데 Getting Started | bootstrap-select · SnapAppointments DeveloperGetting Started Quick start Bootstrap-select requires jQuery v1.9.1+, Bootstrap’s dropdown.js component, and Bootstrap's CSS. If you're not already..
🐸[Select-Picker] Uncaught TypeError: Cannot read property of undefined (reading 'Constructor') 해결1) 전개 현재 프로젝트에서 select 타입에서 Live Search 기능을 활용하기 위해 bootstrap-select 를 활용하고 있다. cdn 오류로 된통 당하고, cdn 이 아닌 다운로드 파일을 프로젝트에서 가져다 쓰기로 했다. bootstrap-select 홈페이지에서 다운로드 받아 바아로~~ 적용만 하려고 했는데 Getting Started | bootstrap-select · SnapAppointments DeveloperGetting Started Quick start Bootstrap-select requires jQuery v1.9.1+, Bootstrap’s dropdown.js component, and Bootstrap's CSS. If you're not already..
2024.05.02 -
업무 효율이 올라가는 검색 플러그인이 있다고 해서 깔아봤다. 그 전에 내가 잘 사용하는 파일/폴더 검색 단축어를 정리하자면! 유용한 파일/폴더 검색 단축어많겠지만 내가 사용하는 것만 나열해보았다. 1) 파일명 검색 ctrl + shift + r파일명을 적으면 해당되는 파일들이 쫘라락 나온다 2) 파일 내 단어 검색/수정 ctrl + f 3) 전체 검색 ctrl + H이건 비추! 대신 Quick Search로 대체할 수 있다! Quick Search 다운 방법참고로 다운받는 방법은 다양하다. 수동설치도 가능하고, jar를 삽입해서 쓸 수도 있고, Install New Software 에서 설치도 가능하다. 나는 그 중 제일 간단해보이는 Marketplace를 이용했다. Help 에서 Marke..
🐸STS 퀵 서치 (Quick Search) 플러그인 설치업무 효율이 올라가는 검색 플러그인이 있다고 해서 깔아봤다. 그 전에 내가 잘 사용하는 파일/폴더 검색 단축어를 정리하자면! 유용한 파일/폴더 검색 단축어많겠지만 내가 사용하는 것만 나열해보았다. 1) 파일명 검색 ctrl + shift + r파일명을 적으면 해당되는 파일들이 쫘라락 나온다 2) 파일 내 단어 검색/수정 ctrl + f 3) 전체 검색 ctrl + H이건 비추! 대신 Quick Search로 대체할 수 있다! Quick Search 다운 방법참고로 다운받는 방법은 다양하다. 수동설치도 가능하고, jar를 삽입해서 쓸 수도 있고, Install New Software 에서 설치도 가능하다. 나는 그 중 제일 간단해보이는 Marketplace를 이용했다. Help 에서 Marke..
2024.04.22 -
로컬 테스트 용으로 project를 하나 더 가져왔더니 프로젝트 명이 같아서 오류가 발생했다. => 당연함! settings.gradle에 들어가 rootProject.name 을 변경해주면 된다~!이후에 Project > clean 해주면 끄읕! 그래도 해결되지 않는다면, 프로젝트 디렉토리 내부에 있는 `.idea`나 `build` 디렉토리 등에 남아 있는 Gradle 캐시 파일들이 업데이트되지 않아서 발생할 수 있다. 1) STS 를 껐다가 켜고2) 재 빌드 해보고3) import 하기 전에 settings.gradle을 vscode 등으로 미리 열어서 변경한 후에 재 import 그래도 안 될때는 아예 새로 만드는 걸 추천한다.
🐸스프링부트 A project with the name already exists. 해결로컬 테스트 용으로 project를 하나 더 가져왔더니 프로젝트 명이 같아서 오류가 발생했다. => 당연함! settings.gradle에 들어가 rootProject.name 을 변경해주면 된다~!이후에 Project > clean 해주면 끄읕! 그래도 해결되지 않는다면, 프로젝트 디렉토리 내부에 있는 `.idea`나 `build` 디렉토리 등에 남아 있는 Gradle 캐시 파일들이 업데이트되지 않아서 발생할 수 있다. 1) STS 를 껐다가 켜고2) 재 빌드 해보고3) import 하기 전에 settings.gradle을 vscode 등으로 미리 열어서 변경한 후에 재 import 그래도 안 될때는 아예 새로 만드는 걸 추천한다.
2024.03.18