목록전체 글 (601)
sm 기술 블로그
import sys input = sys.stdin.readline N = int(input()) A = list(map(int, input().split())) result = ["-1"] * N stack = [] for i in range(N): try: while A[stack[-1]] < A[i]: result[stack.pop()] = str(A[i]) except: pass stack.append(i) print(" ".join(result)) 문제요약 입력값에 오큰수를 구해라. 오큰수란? A=A1 ~ AN이 있을 때 Ai번째의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중 가장 왼쪽에 있는 수이다. 다시 말해 지금 수 보다 크고, 인덱스 크기가 가장 작은 수 설명 입력 예시로 백준에 있는 ..
로그인, 로그아웃 링크가 상황에 맞게 보이게 하기. 로그인 로그아웃 sec:authorize는 권한에 따른 조건문으로 권한 if문으로 생각하자. isAnonymous()는 익명의 사용자 즉, 로그인이 되지 않았다면 로그인 표시를 한다. isAuthenticated()는 인증된 사용자 즉, 로그인이 되어 있다면 로그아웃을 표시한다. SecurityConfig (... 생략 ...) import org.springframework.security.web.util.matcher.AntPathRequestMatcher; (... 생략 ...) @RequiredArgsConstructor @Configuration @EnableWebSecurity public class SecurityConfig { privat..
로그인 URL 등록 스프링 시큐리티에 다음과 같이 등록한다. import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; import org.springf..
유효값 사용처 우리는 엔티티에 NotNull 혹은 Size와 같은 어노테이션을 통해서 바로바로 에러 처리가 가능했다. 그것은 @Valid에서 제공하는 어노테이션 덕분이다.(NotNull, Size) 하지만 유효성 검사에서 제공하는 어노테이션은 한정적이다. (아래의 표를 보자) 따라서 다른 에러가 발생하면 유효성으로 확인을 못하니 컨트롤러 혹은 서비스 등에서 에러를 처리해준다. 유효성 검사에 없는 에러 예를 들어 회원가입시 비밀번호 1과 비밀번호 2가 다를경우, 유저 이름과 아이디가 중복으로 발생한 경우에는 에러처리가 따로 필요하다. 1. 비밀번호가 다른 경우 에러 처리 비밀번호 1과 비밀번호 2가 다른경우 bindingResult.rejectValue를 통해서 에러 메시지를 표시한다. bindingRes..