이번에는 스프링 시큐리티의 로그인 로직에 대해서 살펴보고자 한다.사실 해당 부분 과정이 나에게는 어렵게 느껴져서, 아직도 긴가민가 하다,,,우선 내가 이해해본대로 설명해보겠다.01. 전체 구조위의 이미지는 스프링 시큐리티의 로그인 로직을 보여준다. 하나씩 과정을 살펴보자.1. 클라이언트의 요그인 요청이 날아오면 AuthenticationFilter(UsernamePasswordAuthenticationFilter) 가 요청을 가로챈다.2. AuthenticationFilter가 UsernamePasswordAuthenticationToken 객체를 생성한다.이때 사용된 토큰은 사용자가 입력한 로그인 정보를 담고있으며, 해당 객체는 로그인 검증에 사용된다.3. 생성한 토큰 객체를 Authentication..
전체 글
안녕하세요. 고민하는 개발자가 되고 싶은 Hayden 입니다. 초보 개발자의 공부 과정을 기록하는 블로그입니다. 현재 Spring boot에 관심을 가지고 공부하고 있습니다.이미지 출처단위 테스트(Unit Test)란?*단위 테스트: * 작고 격리된 애플리케이션 코드 블록(일반적으로 함수 또는 메서드)의 정확성을 확인하는 코드 블록 [출처]즉, 코드의 최소 기능 단위(보통은 메소드 단위)로 테스트를 진행하는 코드최근에 TDD(Test-Driven Development, 테스트 주도 개발) 을 많이 사용함에 따라, 테스트의 중요성이 증가함단위 테스트 이외의 테스트 방식에는 통합 테스트(Integration Test), 기능 테스트(Functional Test) 등이 있다.단위 테스트 장점새로운 기능 추가시 빠르게 테스트 할 수 있다.수시로, 반복적으로, 빠르게 테스트 할 수 있다.프로그램에 문제 발생시, 문제가 발생한 부분을 빠르게 알 수 있다.테스트 코드가 문서가 될 수 있..
·알고리즘
문제문제 바로가기풀이배열을 순회하면서, 이웃한 배열들을 검사한 건물의 조망권이 확보된 세대 갯수 = 해당 건물의 높이 - 양 옆으로 이웃한 네개의 건물중 가장 높은 건물 OR 0배열 인덱싱 에러만 잘 처리하면 쉽게 풀리는 문제코드import java.util.*;import java.io.FileInputStream;class Solution{public static void main(String args[]) throws Exception{Scanner sc = new Scanner(System.in); for(int test_case = 1; test_case = 0 && nearbyHeight = 0 && nearbyHeight # 결과![](https://velog.velcdn.com/i..
·알고리즘
문제문제 바로가기문제 풀이언뜻보면 쉬워 보이지만, ?조건 때문에 BFS/DFS로 풀어야한다.나 같은 경우는 재귀를 활용한 DFS로 문제를 해결했다.방문 처리를 할 때는 (좌표, memory, 방향)을 모두 고려해야한다.매우 악질적인 케이스를 고려해야한다.Case 39해당 케이스는 정답이 없으므로 모든 경우를 탐색해야 하는데, 이럴 경우 4^20 =. 1.0995116e+12 경우의수,,, 나는 @ 가 없으면 탐색을 안하는 방법으로 케이스를 회피했다.Case 40해당 케이스는 정답은 있는데, 정답에 접근할 수 없는 매우 악질적인 테스트 케이스이다.사실 저 정답 주위를 계속 돌다보면 memory가 15에서 0으로 초기화 된 후, 중복 방문 처리가 되어 프로그램이 종료되어야 하지만.. 이러한 방법은 메모리 크..
·알고리즘
문제문제 바로가기풀이Back Tracking을 이용하여 해결Stack을 사용하여 구현현재 위치에서 이동 가능한 위치가 있으면 Stack에 추가만약 이전에 방문한 적이 있는 위치이면 추가 XSet을 사용하여 이전에 방문한 위치 기록Stack에서 Pop한 위치를 탐색만약에 pop하여 얻은 위치에서 이동 가능한 경로가 없으면 다시 pop위 과정을 Stack이 비어있거나, 목적지에 도착할 때 까지 반복코드import java.util.*;import java.io.FileInputStream;class Solution{ public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in);..
·알고리즘
문제문제 바로 가기문제 풀이문제 조건중 한 막대에서 출발한 가로선이 다른 막대를 가로질러서 연속하여 이어지는 경우는 없다. 라는 조건 덕에, 복잡한 케이스 고려X사다리 맨 마지막의 도착지로부터 역으로 추적현재 이동 방향을 표시하는 direction변수를 사용하여 유동적으로 방향 전환현재 방향이 위로 향하는 경우위로 향하던 도중, 양 옆에 길이 있으면 그 길로 빠져야함가로선이 다른 막대를 가르는 경우는 없기 때문에, 왼쪽 또는 오른쪽 길이 발견되면 바로 그쪽 길로 향하면 됨update direction옆의 길이 발견되지 않으면 계속 위로 이동현재 방향이 오른쪽으로 향하는 경우현재 위치의 오른쪽에 길이 있으면 계속 오른쪽으로 이동길이 막히면 위로 이동, update direction현재 방향이 왼쪽으로 향하..