기록
-
학원 day100. 폼 입력값 유효성 검증, CSRF기록 2023. 1. 26. 16:15
폼 입력값 유효성 검증하기 1. 프런트엔드 폼 입력값 유효성 검증 * 폼에서 submit 이벤트 발생시 폼입력값을 스크립트 코드로 검증하는 것 2. 백-엔드 폼 입력값 검증 * 폼 입력값을 저장하는 Form 객체에 각 멤버변수별로 입력값의 유효성을 체크하는 어노테이션을 추가한다. * 컨트롤러의 요청핸들러 메소드에서 @Valid어노테이션을 이용해서 Form 객체에 저장된 폼 입력값의 유효성을 검사한다. * 백엔드 서버로만 검증하지 않고 프런트에서도 이중으로 검증을 한다. 서버검증만 하면 서버의 부하가 클테니까.. - 폼 입력값 유효성 검증 절차 1. 폼 입력값 유효성 체크를 지원하는 라이브러리 의존성 추가한다. (Validation) org.springframework.boot spring-boot-sta..
-
학원 day99. 빌더패턴, CSRF, 스프링 시큐리티 설정 및 이용기록 2023. 1. 25. 17:07
스프링시큐리티 설정정보 관련 클래스인 CustomSecurityConfig는 WebSecurityConfigurerAdapter를 상속받음. WebSecurityConfigurerAdapter는 2.7버전부터 비추천 클래스로 바뀜에 따라 2.6.7버전으로 만듦. Configure메소드가 3개인데, HttpSecurity객체를 매개변수로 받는 Configure메소드에는 다음과 같은 설정정보를 설정한다. HTTP 요청에 대한 인증/인가 관련 설정정보를 정의한다. 1. HTTP 요청에 대한 인가 정책(권한체크 정책)을 설정한다. 2. 인증 정책(로그인 정책)을 설정한다. 3. 로그아웃 정책을 설정한다. 4. 예외처리 정책을 설정한다. 객체의 초기화 1. 생성자 메소드 public class Sample { p..
-
학원 day98. Spring Security기록 2023. 1. 20. 12:52
spring-web 프로젝트 * spring framework로 생성한 프로젝트 * spring bean configuraion 파일 정의 * web.xml에 spring 관련 설정 추가 * spring-context, spring-webmvc, spring-jdbc, oracle, mybatis, mybatis-spring 등의 라이브러리 의존성 추가 springboot-rest 프로젝트 * spring boot로 생성한 프로젝트 * application.yml 설정파일 사용 * spring-boot-starter-web, mybatis-spring-boot-starter, spring-boot-devtools, ojdbc8, lombok, spring-boot-starter-test 라이브러리 의존성..
-
학원 day 97. ajax, each함수기록 2023. 1. 19. 11:13
jQuery의 ajax $.get(url, data, function(response) { ... }, dataType) * GET 방식의 ajax 요청을 서버로 보낸다. * dataType은 서버의 응답컨텐츠 타입을 지정한다. * dataType은 생략가능하다. 유추해서 알아내기 때문에 생략해도 되지만 적어놓으면 빠르니까 적는게 좋다. $.post(url, data, function(response) { ... }, dataType) * POST 방식의 ajax 요청을 서버로 보낸다. * dataType은 서버의 응답컨텐츠 타입을 지정한다. * dataType은 생략가능하다. $.getJSON(url, data, function(response) { ... }) * GET 방식의 ajax 요청을 서버로..
-
학원 day96. Rest API기록 2023. 1. 18. 17:02
스프링부트 이니셜라이저 : 이클립스, 비주얼스튜디오, 인텔리제이 각각에서 스프링부트 이니셜라이저를 제공 라이브러리 의존성을 쉽게 관리할 수 있다. spring boot starter web, spring boot starter jpa.. 등의 라이브러리 의존성을 지원해준다. 해당 라이브러리의 하위 의존성들이 자동으로 어플리케이션에 포함되게 된다. 스프링부트는 다양한 형태로 패키징이 가능하다. jar 또는 war JSP를 템플릿 엔진으로 사용하는 spring boot 웹 어플리케이션 - 패키징 방식 : war - JSP를 지원하는 내장형 톰캣과 JSTL 태그 라이브러리를 추가 패키징방식을 war라고 해야한다. war : Web Application Archive jar : Java Archive 모두 JA..
-
학원 day95. @SessionAttributes, 스프링부트기록 2023. 1. 17. 13:04
OrderForm 객체가 계속해서 새로 만들어지기 때문에 앞에서 저장한 내용이 안들어있다. 따라서, 간단한 수정작업은 지금까지 사용한 방법을 사용해도 되지만, 여러 단계에 걸친 입력폼 수정작업이 필요한 작업은 model안에 form을 담고 @SessionAttributes 어노테이션을 사용한다. @SessionAttributes({"form"})은 model에 "form"이라는 이름으로 저장된 객체를 HttpSession객체의 속성으로 저장시킨다. 세션은 안사라지니까 OrderForm이 안사라진다. 페이지를 옮겨다녀도 객체가 유지되도록 하고 싶은 것이다. @SessionAttributes({"form"}) public class OrderController { @RequestMapping("/order"..
-
학원 day94. Ajax요청 처리, 자바스크립트 배열기록 2023. 1. 16. 10:25
HandlerAdapter가 Controller를 실행하면 최종적으로 ModelAndView를 만들어서 DispatcherServlet에 전달한다. DispatcherServlet은 언제나 View를 실행하여 클라이언트에게 응답을 제공한다. 특정 컨텐츠타입으로 변환해주는 뷰만 있으면 다양한 형태의 컨텐츠를 응답으로 보내줄 수 있다. 서버로 사용자아이디를 보내지 말라고 한 건, 사용자가 작성하거나 등록할 때를 말하는 것이고, 사용자의 제한적인 정보를 조회할 때는 사용자의 아이디를 넘겨줘도 된다. controller 안에서 modelandview를 만들고 model에 사용자정보를 담고, view에 jsonView를 넣어서 전해지도록 함. DispatcherServlet은 JsonView의 render메소드를..
-
학원 day93. View를 이용한 파일 다운로드기록 2023. 1. 13. 15:55
제목, 내용, 첨부파일, 태그를 하나의 화면에 담는다. 하나의 폼에서 입력되는 값이 여러개의 테이블에 저장되는 경우가 많다. 모든 입력값을 수용할 수 있는 클래스를 만든다. 왼쪽은 요청메세지에 최적화된 클래스 오른쪽은 테이블에 최적화된 클래스 입력폼의 값들이 하나의 테이블에 담기는게 아니라 여러 테이블에 저장될 경우, 입력폼의 값들을 다 받을 수 있는 Form을 만들고 그 Form을 서비스한테 전해주고, 서비스에서 필요한 값만 꺼내서 각각의 vo로 만든다음에 그 vo를 전해줘서 db에 저장시킨다. 테이블을 가장 잘 표현하는 게 vo이기 때문에 tags는 동적으로 추가되는 거라서 하나도 없으면 null이 올 수 있다. 반면, title, content는 name이 있기 때문에 입력을 안해도 null이 올 ..