목록전체 글 (230)
요르딩딩
https://github.com/fkskenf/Algorithm_study/blob/master/0.programers/%EB%88%84%EC%A0%81%ED%95%A9/level2/%ED%98%B8%ED%85%94%EB%8C%80%EC%8B%A4.md
https://github.com/fkskenf/Algorithm_study/blob/master/0.programers/DFS/level3/%ED%8D%BC%EC%A6%90%EC%A1%B0%EA%B0%81%EC%B1%84%EC%9A%B0%EA%B8%B0.md
https://github.com/fkskenf/Algorithm_study/blob/master/0.programers/DFS/level3/%EC%97%AC%ED%96%89%EA%B2%BD%EB%A1%9C.md
이번시간에는 요청파라미터의 @Valid를 활용한 유효성 체크와 @ExceptionHandler를 활용한 예외처리에 대해 공부해보겠습니다. 우선, @Valid를 사용하기 위해 pom.xml에 아래 라이브러리를 추가해줍니다. org.hibernate.validator hibernate-validator 6.0.10.Final javax.validation validation-api 2.0.1.Final 그리고, 유효성 체크를 진행할 DTO에 어노테이이션을 적용하여, 체크해줍니다. 다만, collection은 체크를 해주지 않으므로, 추가로 @Valid 어노테이션을 붙여주어야합니다. package com.**.controller.request; import com.fasterxml.jackson.databin..
이번시간에는 intercept를 활용한 Session체크 공통부분을 구현해 보았습니다. 인증 확인은 크게 Filter와 Interceptor를 활용하여, controller에 접근하기 전에 전처리할 수 있도록 공통화를 많이 한다고 합니다. 저희 회사는 세션관련 객체를 controller 또는 service단에서 처리를 하고 있었습니다. 그 이유는 회사 방침이 그렇게 적용되고 있었기 때문입니다. 그런데 이렇게 하니 모든 API를 만들때마다 꽤나 긴 공통코드를 여러번 반복해야하고, Controller 또는 Service단까지 들어와야 인증체크를 할 수 있기에 그다지 좋은 방식은 아니라고 생각합니다. 그리하여, filter와 interceptor에서 공통으로 전처리를 하면 좋을거 같다는 생각을 했습니다. 처음..
[필터 로직] package com.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class sessionFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { Sys..
이번문제는 생각하기 그리 어렵지 않은 문제이다. 다만, 구현하기가 은근히 까다로운 문제이다. 여기서 나의 풀이법에 대해 설명해 보겠다. int count = 전체 길이에서 제거해야할 숫자를 뺴면, 구해야하는 숫자의 갯수를 알 수 있다. 가장 큰 값을 구해야하므로, 맨 앞자리 부터 하나씩 나올 수 있는 수 중, 가장 큰 값을 골라주면 된다. (테스트케이스 3번) "4177252841" 여기서 10-4= 6개의 수를 골라야한다. 숫자는 맨 앞자리가 가장 클 수록 큰 수이다. 그러므로 맨 앞자리로 올 수 있는 수는 "41772" 중 하나이다. 왜냐하면, 한자리를 고르고나면, 나머지 5자리도 골라 줘야하기때문에, 뒤에 5자리는 남겨두어야 한다. (맨 앞자리가 가장 크다면, 뒤에는 어떤 수가 와도 상관없기 떄문이..
이번문제는 상당히 생각하기 까다로운 문제라고 생각한다. 이 문제 역시 다름 사람들의 해답을 참고하였다. 물론 내가 그리디 문제에 약한거 같기도 하지만, 이 문제 역시 Level2치고 어렵다는 평이 많은거 같다. 이 문제에서 포인트는 이동거리이다. 알파벳 상/하 이동의 경우는 아스키코드를 활용하면 차이를 이용해 쉽게 구할 수 있다. 이제 포인트인 이동거리에 대해 확인해보자. 이동거리가 최대인 경우는 그냥 쭉 오른쪽으로 이동하는 것이다 즉, name.length() -1 이 최대가 될 것이다. 하지만, 우리는 최소 이동거리를 구해야 하므로, AAA와 같이 변경이 필요없는 A가 나올경우, 그대로 그냥 쭉 오른쪽으로 진행할 것인지, 아니면 처음 되돌아가서 뒤로 진행할 것인지 정해야한다. 그러므로, A가 나오게 ..