Study Hard35 [스프링시큐리티] role명에 "ROLE_" 접두사를 꼭 붙여야 하는가? (해결방법) 오늘 하루종일 Spring MVC 프로젝트의 시큐리티를 구현하는데 힘썼다. 그중 3시간은 역할설정할때 role앞에 접두사 "ROLE"이 필수인지, 그리고 수정할수 있는것인지 검색하는데 시간을 보내서 정리해본다. 삽질1. 처음에는 role_을 써야하는것으로 배웠지만 혹시 안써도 자동으로 bind되는지 삽질을 1시간가량 해보았다. 삽질2. 국내 티스토리 검색 - 검색해도 대부분 "ROLE_" 접두사가 필수인것처럼 작성한 블로그들이 대부분이었다. - 덕분에 희망고문 당하면서 시간을 많이 뺏겼다. 삽질3. 스프링 공식 문서 검색 https://docs.spring.io/spring-security/reference/servlet/appendix/faq.html#appendix-faq-role-prefix Spr.. 2023. 6. 25. [짧은개발지식] 버블정렬 - Js코드로 만들어보기 버블정렬은 sort방법중에 가장 기본적인 정렬방법이다. 3단계로 나눠서 버블정렬의 코드를 작성해보자. 1. 배열 안의 최대값 찾기 let testArr = [3,6,1,2,9,7,3,2]; let max = testArr[0]; // 첫번째 값이 가장 크다고 가정한다. for(let i=0; i 2023. 6. 23. [자바스크립트] console.log로 디버깅이나 값 확인 시 주의점!! 자바스크립트에서 console.log를 할때 객체를 읽어오면 잘못된 값을 확인할 수 있다. let testObj = { name: "홍길동", age : 26 } console.log("값체크1", testObj); testObj.name="홍길순"; testObj.age= 27; console.log("값체크2", testObj); 위와 같이 코드를 작성해보고 콘솔을 확인해보면 전혀 예상하지 않았던 결과가 나온다. 이 이유는 객체(object)를 console.log 를 찍게되면 변화하는 object는 자원을 아끼기위해 마지막 값을 출력해주는 경우가 있다. 해결방법 let testObj = { name: "홍길동", age : 26 } var cloneObj = structuredClone(testOb.. 2023. 6. 23. [짧은개발지식] JSONP (JSON Padding) 이란? JSONP (JSON Padding) JSONP 를 이용해서 가져오면 다른 도메인에 있는 json 파일도 가져올수 있고, 바로 불러와서 사용할 수 있으니 익혀두자. 우선 api이용이나 다른서버에 요청해서 데이터를 가져올때 생기는 문제는 CORS 문제가 있다. CORS 란?(Cross-Origin Resource Sharing) CORS는 Cross-Origin Resource Sharing의 약자로, 웹 애플리케이션에서 다른 도메인 간에 리소스를 안전하게 공유할 수 있도록 해주는 메커니즘입니다. 기존의 동일 출처 정책(Same Origin Policy)에서의 제한을 우회하여, 다른 도메인에 있는 리소스에 접근할 수 있는 방법을 정의하고 있습니다. 서버는 응답 헤더인 "Access-Control-Allow.. 2023. 6. 22. [STS 버전문제] STS 3.9.15, 이클립스 4.16기반버전 이용하려면... sts3.9.15 이클립스4.16버전을 사용하려고 했다. 하지만 이클립스 4.16버전기반 sts문제는 이클립스 Marketplace 이용이 불가능하다. 그렇다고해서 이클립스 4.17버전을 사용하려면 java11 버전부터 지원이 가능하다. 그래서 4.16기반버전을 사용하려면 플러그인들을 모두 수동 설치해줘야한다. 2023. 6. 19. [이클립스/Maven/스프링] ojdbc8 문제로 build 되지 않는 문제 해결 (Maven, BUILD FAILURE) no such file or directory 메이븐 프로젝트 빌드시 pom.xml의 dependency로 설정된 ojdbc8로 인해서 빌드가 안되는 문제가 있다. 대략적으로 찾아보니 JDBC 드라이버(ojdbc)는 Maven 에서는 공식지원되지 않는다고한다. [INFO] 12 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Tota.. 2023. 6. 12. [스프링] 파일업로드, "어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다." 메세지 해결방법 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: 어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다. at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:127) 이 메세지의 원인은 multi-part 설정이 서버에 제대로 안되어있기 때문이다. 1. po.. 2023. 6. 11. [짧은개발지식] 메이븐 (Maven) 이란? 도구(Tools)는 필요한 만큼 아는 것이 중요하다. 언어를 속성으로 배우고 있는 나에게 메이븐이란 라이브러리 자동 설치 Tool 쯤으로 여겨지곤 하였다. 다만 에러가 많은... 최종프로젝트 PL역할을 맞게되면서 환경셋팅에 대해 시간을 공들이고 있는데 메이븐이라는 녀석은 늘 에러를 뿜뿜하는 그런 무엇으로 느껴졌다. 다른 친구들이 이클립스 셋팅 중 가장 어려워하는게 메이븐인데 그럴때마다 이 루틴으로 모두 해결이 되었다. 메이븐 클린 - 메이븐 빌드 - 업데이트 메이븐프로젝트 - 프로젝트 클린 을 반복하고 안되면 로컬에 설치된 메이븐 repository를 삭제하고 메이븐 프로젝트를 업데이트 하는 방식으로 진행하면 왠만한 메이븐으로 인한 오류들은 다 해결되었다. 그러면 메이븐이 뭔지 알아보자. 메이븐(Mave.. 2023. 6. 10. [스프링Legacy] 아이디 찾기, 비밀번호 찾기 로직 (Ajax, JSON 사용) 아이디와 비밀번호를 단순 로직을 만들어보자 흔한 아이디와 비밀번호 찾기 로직 - 아이디찾기는 이메일과 이름을 입력하고 비동기 처리 - 비밀번호 찾기는 아이디,이메일,이름 비밀번호 찾기를 이용 자바스크립트에서 pwFindBtn.on("click", function() { var memId = $("#memId2").val(); var memEmail = $("#memEmail2").val(); var memName = $("#memName2").val(); if(memId == null || memId == "") { alert("ID을 입력해주세요"); return false; } if(memEmail == null || memEmail == "") { alert("이메일을 입력해주세요"); return.. 2023. 6. 9. 이전 1 2 3 4 다음