전체 글 669

[SpringMVC] Session( 세션 )이란?

[SpringMVC] Cookie ( 쿠키 ) 클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라이언트는 ID와 비밀번호를 입력하고 서버로 전송한 lordofkangs.tistory.com 지난 포스팅에서 쿠키(Cookie)를 다루어 보았다. 쿠키는 보안상의 문제가 많다. 언제든 탈취가 가능하기 때문이다. 보안의 문제가 많지만 쿠키는 상태 유지를 위해 필요한 요소이다. 안전한 쿠키 사용을 위해 서버에 세션(Session)이 도입되었다. 세션(Session) 세션의 존재 이유는 안전한 쿠키 사용에 있다. 안전하게 쿠키를 사용하려면 쿠키데이터는 아무도 예측할 수 없는 랜덤한 데이터여야 하고 탈취된 쿠키가 사용될 수 없도록 만료시..

SPRING/Spring MVC 2023.08.30

[SpringMVC] Cookie ( 쿠키 )

클라이언트가 웹페이지에 접근하려고 한다. 웹페이지는 회원만 접근 가능하므로 서버는 클라이언트 요청에 로그인 페이지로 응답한다. 클라이언트는 ID와 비밀번호를 입력하고 서버로 전송한다. 서버는 ID와 비밀번호를 토대로 회원여부를 검사하고 회원이 맞다면 웹페이지 접근을 허용한다. 이것이 '로그인(Log-In)'이다. 그런데 한 가지 문제가 있다. 클라이언트와 서버는 HTTP 프로토콜로 통신한다. HTTP는 상태 비저장(Stateless) 프로토콜이다. 전화 연결처럼 한번 연결되면 상태가 유지되는 것이 아니다. 그저 클라이언트에서 서버로 데이터만 전송되고 모든 연결상태는 사라진다. 그러므로 로그인으로 특정 페이지에 접근해도 다른 페이지로 이동하려면 또 다시 로그인을 해야한다. 그래서 HTTP의 Stateles..

SPRING/Spring MVC 2023.08.30

[SpringMVC] 검증(Validation)(8) - Bean Validation ( 폼객체 )

[SpringMVC] 검증(Validation)(7) - Bean Validation ( groups ) [SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - Bindi lordofkangs.tistory.com 지난 포스팅에서 하나의 객체에 서로 다른 유효성 검사가 필요한 경우를 다루어 보았다. Bean Validation은 groups 설정을 제공하여, 하나의 클래스에 서로 ..

SPRING/Spring MVC 2023.08.30

[SpringMVC] 검증(Validation)(7) - Bean Validation ( groups )

[SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validati lordofkangs.tistory.com 지난 포스팅에서 Bean Validation에 대해서 다루어보았다. Bean Validation은 객체에 주입된 데이터를 검증하는 어노테이션 기반 검증 방식이다. 그런데 여기에는 한 가지 문제가 있다. It..

SPRING/Spring MVC 2023.08.30

[PS] BOJ15486 퇴사2 ( dp ) with JAVA

15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net ◎ 문제풀이 DP 점화식 구현이 까다로운 문제였다. 7일에 받을 수 있는 상담의 경우의 수는 다음과 같다. 1일에 시작된 상담이 6일 걸려 7일이 될 수 있고 3일에 시작된 상담이 4일 걸려 7일이 될 수 있다 그리고 만약 전날에 마무리 된 상담비용이 더 크면 그대로 7일의 상담비용이 된다. 이와 같이, 7일이 될 수 있는 모든 경우의 수에서 최댓값을 구하면 된다. ◎ 코드 import java.io.BufferedReader; im..

문제풀이/DP 2023.08.30

[SpringMVC] 검증(Validation)(6) - Bean Validation ( 에러 코드 )

[SpringMVC] 검증(Validation)(5) - Bean Validation [SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validati lordofkangs.tistory.com 지난 포스팅에서 Bean Validation을 다루었다. Bean Validation은 어노테이션 기반으로 유효성 검사를 진행하는 검증 방식이다. 검증 과정에서 발견한 에러는 BindingResult에 담긴..

SPRING/Spring MVC 2023.08.29

[SpringMVC] 검증(Validation)(5) - Bean Validation

[SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated ) [SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validation)하기(1) 클라이언트로부터 요청(Request)이 들어 lordofkangs.tistory.com 지난 포스팅에서는 @Validated 어노테이션으로 검증을 구현해보았다. 유효성 검사를 위해, Validator 인터페이스 구현체를 만들고 검증 로직도 작성하였다. 그러나 대부분의 검증 로직은 비슷한 경우가 많다. 빈값인가? Null..

SPRING/Spring MVC 2023.08.29

[PS] BOJ13549 숨바꼭질3 ( BFS ) with JAVA

13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net ◎ 문제풀이 A지점에서 B지점으로 최소비용으로 이동하는 문제는 BFS로 풀어야 한다. 그러나 나는 최근에 DP 문제를 하나 풀어서 그런지, 이 문제를 보고 DP 발상을 했다. N에서 K까지 가는 경우를 모든 고려하는 문제이다. 이동하는 방법은 3가지이다. 1) x2 2) +1 3) -1 N이 5이고 K가 17이라고 가정해보자. 위 그림 같이, 경우의 수가 기하급수적으로 증가하니 DP로 풀기는 어려운 문제이다. 1) x2 2) ..

[SpringMVC] 검증(Validation)(4) - BindingResult ( @Validated )

[SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 ) [SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validation)하기(1) 클라이언트로부터 요청(Request)이 들어오면, 요청 데이터는 가장 먼저 Controller에 도착한다. 그러 lordofkangs.tistory.com 지난 포스팅에서 BindingResult의 rejectValue 메소드로 코드를 단순화 해보았다. Controller @PostMapping("/add") public String addItem(@ModelAttribute Item item, BindingResult bin..

SPRING/Spring MVC 2023.08.28

[SpringMVC] 검증(Validation)(3) - BindingResult ( rejectValue 메소드 )

[SpringMVC] 요청데이터 검증(Validation)하기(2) - BindingResult [SpringMVC] 요청데이터 검증(Validation)하기(1) 클라이언트로부터 요청(Request)이 들어오면, 요청 데이터는 가장 먼저 Controller에 도착한다. 그러므로 Controller에서 적합한 데이터인지 검사해야 한다. 적 lordofkangs.tistory.com 지난 포스팅에서 BindingResult를 다루어 보았다. BindingResult는 오류 메시지를 담는 그릇으로, FieldError와 ObjectError에 담긴 에러 메시지를 저장한다. 그러나 개발자가 FieldError와 ObjectError를 직접 생성하면 코드가 복잡해지고 길어진다. 그래서 BindingResult는..

SPRING/Spring MVC 2023.08.28