전체 글
-
파라미터와 validation validation은 화면에서 넘어온 데이터가 원하는 형식에 적합한가를 나타내는 것으로 앞서 살펴본 formatting과는 다르다. 포메팅이 원본 데이터를 가독성 좋은 문자열로 보이도록 처리하거나 그 문자를 다시 원본 데이터로 형 변환하기 위한 과정이라면 validation은 원하는 형태로 작성되었는가만 본다. 예를 들어 비밀번호의 복잡성이나 필수 입력 항목의 작성 여부, 값의 범위등을 확인하는 것이 validation이다. 클라이언트 단에서의 validation vs 서버 단에서의 validation 일반적으로 validation은 클라이언트 단에서 java script를 이용해서 처리하는 것으로 오해하기 쉽다. 하지만 일단 javascript를 통과한 패킷을 해커가 조작..
07. 파라미터와 validation파라미터와 validation validation은 화면에서 넘어온 데이터가 원하는 형식에 적합한가를 나타내는 것으로 앞서 살펴본 formatting과는 다르다. 포메팅이 원본 데이터를 가독성 좋은 문자열로 보이도록 처리하거나 그 문자를 다시 원본 데이터로 형 변환하기 위한 과정이라면 validation은 원하는 형태로 작성되었는가만 본다. 예를 들어 비밀번호의 복잡성이나 필수 입력 항목의 작성 여부, 값의 범위등을 확인하는 것이 validation이다. 클라이언트 단에서의 validation vs 서버 단에서의 validation 일반적으로 validation은 클라이언트 단에서 java script를 이용해서 처리하는 것으로 오해하기 쉽다. 하지만 일단 javascript를 통과한 패킷을 해커가 조작..
2020.07.08 -
파라미터의 formatting 화면에서 전달된 파라미터가 HTTP 를 통해 서버로 전송될 때는 언제나 문자열이다. 이제까지 똑똑한 @Controller는 적절한 자바 데이터 타입으로 형 변환 후 전달해줬다. @RequestMapping("/add") public String add(@RequestParam Double a, @RequestParam Integer b, Model model) { String message = String.format("%3.1f와 %d의 합은 %3.1f입니다.", a, b, a + b); model.addAttribute("message", message); return "index"; } 하지만 Controller는 인공지능이 아니니 조금만 복잡해지면 값에 대한 bind..
06. 파라미터의 formatting파라미터의 formatting 화면에서 전달된 파라미터가 HTTP 를 통해 서버로 전송될 때는 언제나 문자열이다. 이제까지 똑똑한 @Controller는 적절한 자바 데이터 타입으로 형 변환 후 전달해줬다. @RequestMapping("/add") public String add(@RequestParam Double a, @RequestParam Integer b, Model model) { String message = String.format("%3.1f와 %d의 합은 %3.1f입니다.", a, b, a + b); model.addAttribute("message", message); return "index"; } 하지만 Controller는 인공지능이 아니니 조금만 복잡해지면 값에 대한 bind..
2020.07.07 -
BJ G4 19238 스타트택시 문제링크 http://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net * 일단 문제를 정독 하고 1시간 이상 반드시 고민이 필요합니다. 핵심 컨셉 고려사항 M 명의 손님을 목적지로 이동시킴 따라서 M 번 손님 선택 --> 목적지 이동을 반복 손님 선택 기준: 1. 가장 가까운 위치의 손님 2. 1이 같다면 행 번호가 가장 작은 손님, 2도 같다면 열 번호가 가장 작은 손님 1칸을 이동할 ..
BJ G4 19238 스타트택시BJ G4 19238 스타트택시 문제링크 http://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net * 일단 문제를 정독 하고 1시간 이상 반드시 고민이 필요합니다. 핵심 컨셉 고려사항 M 명의 손님을 목적지로 이동시킴 따라서 M 번 손님 선택 --> 목적지 이동을 반복 손님 선택 기준: 1. 가장 가까운 위치의 손님 2. 1이 같다면 행 번호가 가장 작은 손님, 2도 같다면 열 번호가 가장 작은 손님 1칸을 이동할 ..
2020.07.04 -
Handler Interceptor Handler Interceptor는 말 그대로 handler(Controller)로 가는 요청을 가로채는 녀석으로 Servlet의 Filter와 유사한 녀석이다. 주요 역할은 여러 컨트롤러에서 공통적으로 사용되는 기능을 정의하는데 예를 들어 여러 컨트롤러에서 사용되는 공통적인 model attribute를 설정하거나 request에 대한 검사, response header 설정 등 무궁무진하다. HandlerInterceptor interface Handler Interceptor를 만들기 위해서는 org.springframework.web.servlet.HandlerInterceptor를 구현한다. 이 인터페이스에는 3개의 주요 메서드가 있는데 preHandle, ..
05. Handler InterceptorHandler Interceptor Handler Interceptor는 말 그대로 handler(Controller)로 가는 요청을 가로채는 녀석으로 Servlet의 Filter와 유사한 녀석이다. 주요 역할은 여러 컨트롤러에서 공통적으로 사용되는 기능을 정의하는데 예를 들어 여러 컨트롤러에서 사용되는 공통적인 model attribute를 설정하거나 request에 대한 검사, response header 설정 등 무궁무진하다. HandlerInterceptor interface Handler Interceptor를 만들기 위해서는 org.springframework.web.servlet.HandlerInterceptor를 구현한다. 이 인터페이스에는 3개의 주요 메서드가 있는데 preHandle, ..
2020.07.03 -
웹 관련 설정과 WebMvcConfigurer 스프링 부트에서의 설정은 크게 웹과 관련된 설정과 웹과 무관한 설정 둘로 나누어서 관리하는 것을 권장한다. 편의상 앞으로 웹과 관련된 설정 파일은 MVCConfig라고 하자. WebMvcConfigure MVCConfig가 웹과 관련된 처리를 하기 위해서는 WebMvcConfigurer interface를 구현하는 것이 좋다. package com.eshome.mvc.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public..
04. 웹과 관련된 설정웹 관련 설정과 WebMvcConfigurer 스프링 부트에서의 설정은 크게 웹과 관련된 설정과 웹과 무관한 설정 둘로 나누어서 관리하는 것을 권장한다. 편의상 앞으로 웹과 관련된 설정 파일은 MVCConfig라고 하자. WebMvcConfigure MVCConfig가 웹과 관련된 처리를 하기 위해서는 WebMvcConfigurer interface를 구현하는 것이 좋다. package com.eshome.mvc.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public..
2020.07.02 -
이번 시간에는 요청 처리 메서드의 리턴과 페이지 이동에 대해 살펴보자.요청 처리 메서드의 리턴 return type요청 처리 메서드는 일반적으로 String을 반환 한다. 이 값은 논리적인 View 이름(logical view name)으로 D.S을 거쳐 ViewResolver(예: ThymeleafViewResolver)로 전달된다.더보기더보기ViewResolver는 사용하는 View 기술에 따라 미리 정해진 설정을 이용하여 실제 View 페이지와 연결된다. 다음은 application.properties에 설정된 기본 옵션이다. 아래 설정을 보면 왜 /templates/경로에 템플릿 파일을 저장해야 하는지 알 수 있다.spring.thymeleaf.prefix=classpath:/templates/ ..
03. Controller 작성 2이번 시간에는 요청 처리 메서드의 리턴과 페이지 이동에 대해 살펴보자.요청 처리 메서드의 리턴 return type요청 처리 메서드는 일반적으로 String을 반환 한다. 이 값은 논리적인 View 이름(logical view name)으로 D.S을 거쳐 ViewResolver(예: ThymeleafViewResolver)로 전달된다.더보기더보기ViewResolver는 사용하는 View 기술에 따라 미리 정해진 설정을 이용하여 실제 View 페이지와 연결된다. 다음은 application.properties에 설정된 기본 옵션이다. 아래 설정을 보면 왜 /templates/경로에 템플릿 파일을 저장해야 하는지 알 수 있다.spring.thymeleaf.prefix=classpath:/templates/ ..
2020.07.01 -
이번 시간에는 Controller 클래스를 만드는 방법과 요청 처리 메서드 작성법에 대해 알아보자.Controller와 요청 처리 메서드 @ControllerController는 클라이언트의 요청인 HttpServletRequest를 처리하는 클래스로 Handler라고도 불린다. 스프링에서는 Controller를 구현하기 위해 @Controller라는 스테레오 타입 애너테이션을 사용한다. @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Controller {...}@Controller는 클래스 레벨에서 사용할 수 있는 애너테이션으로 내부적으로 @Component를 포함한다...
02. Controller 작성 1이번 시간에는 Controller 클래스를 만드는 방법과 요청 처리 메서드 작성법에 대해 알아보자.Controller와 요청 처리 메서드 @ControllerController는 클라이언트의 요청인 HttpServletRequest를 처리하는 클래스로 Handler라고도 불린다. 스프링에서는 Controller를 구현하기 위해 @Controller라는 스테레오 타입 애너테이션을 사용한다. @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Controller {...}@Controller는 클래스 레벨에서 사용할 수 있는 애너테이션으로 내부적으로 @Component를 포함한다...
2020.06.30 -
Error resolving template [XXX], template might not exist or might not be accessible by any of the configured Template Resolvers 상황발생 Spring@MVC의 @Controller 클래스에서 handler method의 return 값에 해당하는 템플릿 페이지를 찾을 수 없을 때 발생 대책 반환값과 대상 페이지에 오타가 없는지, 경로에 문제가 없는지 확인
EError resolving template [XXX], template might not exist or might not be accessible by any of the configured Template Resolvers 상황발생 Spring@MVC의 @Controller 클래스에서 handler method의 return 값에 해당하는 템플릿 페이지를 찾을 수 없을 때 발생 대책 반환값과 대상 페이지에 오타가 없는지, 경로에 문제가 없는지 확인
2020.06.29