목록Spring (49)
seong
Spring의 IOC에 들어가는 모든 객체들을 Bean이라고 함.
예외를 간단하게 정리 (원래는 종류가 굉장히 많다) E라인은 컴파일 Exception -> 오타나면 이것을 try catch로 감싸서 오류나면 넘겨줘 Re아래 라인은 런타임 Exception -> 실행 중 발생 하는 에러를 감싸서 넘겨줘 Exception동작 아래 그림으로 이해하기 1. 먼저 요청이 View, Ajax각각 들어온다. 2. 예외 처리에는 Exception메서드, NullPoint 메서드가 있다고 가정한다. 3. S(Service)에서 Nullpoint 에러가 발생해서 예외처리 Handler로 이동했다. 4. 아래 처럼 핸들러가 있다면 Nulllpoint가 발생해도 Exception이 실행된다 왜 Exception만 실행될까? 자바의 상속과 다형성 때문이다. 내부를 확인 해보면 Excepti..
백엔드 Validation 처리하기 백엔드에서 처리할 때는 각자의 Dto마다 Validation을 모두 만들어줘야한다. Dto를 회원가입 하나만 생성한다고 가정해보자 회원가입은 username,password,email 세개가 필요하다. 회원정보 수정은 password, email이 필요하다. 회원 정보 수정할 때 회원가입 Dto를 사용하게 되면 username이 없으니 당연히 에러가 날 것이다. 라이브러리 사용해 확인 주소 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation/2.7.3 자신의 spring 버전에 맞게 다운로드 해준다 1. JoinDto - 회원가입 Dto에 Validation ..
프론트에서 검사하고 막기 1. 글자 수 제한 주기 필요한 부분에 maxlength = 20 를 넣어주면 됨. 1. username 한글 체크 function koreanCheck(){ let username = $("#username").val(); let korRule = /^[가-힣]*$/; if(korRule.test(username)) { return true;// 한글이 있으면 true } else { return false;// 한글이 없으면 false } } 2. username에 대문자 꼭 하나 받기 function capitalCheck() { let username = $("#username").val(); let checkcapital = /[A-Z]/; if (checkcapital..
Interceptor 컨트롤러로 들어오는 HttpRequest, HttpResponse를 가로채는 역할을 한다. 예를 들어 컨트롤러에 글을 삭제 하는 로직이 있다. 글은 "해당글의 작성자"만이 삭제를 할 수 있다, 여기서 Interceptor 를 이용해 삭제를 하기 전 작성자가 아니라면 컨트롤러가 동작 하지 않게 한다. 필터와 인터셉터는 비슷한 역할을 하지만 다르다! Interceptor 호출 시점은 3가지가 있다. 1. preHandle : 컨트롤러가 호출 되기 전 2. postHandle: 컨트롤러가 실행 된 후 3. afterComplete : 컨트롤러 -> View 모든 동작이 끝난 후 구현해보기 필요한 환경 설정 셋팅 보통 Interceptor 구현 하기 위해서 2가지가 필요하다. 1. Inte..
조건 사용자가 특정 키워드 검색 후 게시글을 클릭 했다. 게시글로 이동 했을 때 키워드와, 현재 페이지를 가지고 가야한다. 기존의 동작 검색을 하고 게시글을 눌렀을 때 keyword와, currentPage가 없어진다. 저 부분에 검색 keyword와 currentpage를 담아줘야한다. Session의 영역 작성하기 앞서서 Session에 대해 알아야한다. Session영역은 간단하게 로그아웃 전 까지 남아있다. 시작 키워드와, 현재 페이지를 가져가기 위해선 PagingDto의 keyword,와 currentPage가 필요하다. 아래 코드로는 pagingDto가 request, reponse하면 없어진다. Session을 사용해 keyword값,currentPage값을 가져가보자. 해시맵을 이용해 코드..
글쓰기 꾸미기 - summernote 현재 필요한 부분은 CDN이 필요하다. 1. 먼저 자신의 프로젝트에 적용전에 테스트를 하고 적용해야 한다. VS코드에서 테스트 2. 잘 됐으니 CDN 부분 복사 아래 스크립트도 추가 해준다. 3. 적용완료 Summernote 에서의 그림, 사진 등등 원래 사진을 JSON에 담기 위해서는 Base64로 인코딩 해서 담아주어야 한다. Summernote에서는 자체적으로 Base64로 인코딩을 실행 해주기 때문에 편하다. Base64는 쉽게 말해 JSON에 담기 위해 문자열로 치환해주는 기술이다.
게시글 삭제 만들기 아래 부분을 수정 1. Form태그 수정 삭제 하기 위해서 ID값이 필요하다. 바인딩 시켜서 가져오기 위해서 input태그에 id값 가져오기(type에 hidden을 사용하면 웹상에서 보이지 않는다) 2. Ajax 작성(script) $("#btnDelete").click(()=>{ let id = $("#id").val(); $.ajax("/boards/"+id,{ type: "DELETE", dataType: "json" }).done((res)=>{ if(res.code == 1){ alert("게시글 삭제 성공"); location.href = "/boards"; } else{ alert("게시글 삭제 실패"); } }); }); 3. Controller 수정 해주기 //게시글..