본문 바로가기

Learning-log126

백준 1240번. 노드사이의 거리 (Java) 1. 문제 조건 2. 아이디어 주어진 예제 입력을 살펴보면 아래와 같다. 인접행렬은 메모리 차지를 많이 할 수 있다고 생각되어 인접리스트로 구현하려고 했다. 또한, 두 노드 사이의 거리를 구하기 위해서는 간선 사이에 양방향 통행이 가능해야 하므로, 부모, 자식 상관 없이(문제에서 부모 자식을 구분할 수도 없었다.) 양 쪽 노드의 자식 노드 list에 노드를 모두 추가해줘야겠다고 생각했다. 이 때, 거리도 함께 기억해야 하므로 class를 생성하여 관리하고자 했다. 문제풀이를 하는 방식은 BFS와 DFS를 떠올렸다. 단순히 하나의 노드에서 목적지 노드까지 간선을 따라 타고 가기만 하면 되는 문제였기 때문이다. 실제로 두가지 방식으로 구현하여 제출 후 정답처리 되었으며 이 문제는 메모리와 시간복잡도 두가지 .. 2024. 2. 16.
백준 2579번 계단 오르기(Java) package baek.silver3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main_2579계단오르기 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] map = new int[N]; int[][] dp = new int[N+1][3];.. 2023. 10. 1.
백준 17182번 우주탐사(JAVA) package baek.gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_17182우주탐사 { static int answer = Integer.MAX_VALUE; static boolean[] visited; static int[][] dist; static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead.. 2023. 9. 30.
[Spring Boot] Spring Security oauth2login 설정으로 Kakao 소셜로그인 API 구현하기 (DeafaultOAuth2User 확장) JWT1. 설정build.gradle에 dependency 추가하기implementation 'com.auth0:java-jwt:4.4.0'1) Dependency 추가build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' }Maven Project org.springframework.boot spring-boot-starter-security application.properties#JWT 설정jwt.secretKey=F22rV7dQ4uHx2P6gv5lsJrE8mUcYn2023# Access Token Configuration#1시간(60분) (1000L(ms -> s) * 60.. 2023. 9. 19.
[Spring Boot, 로그인] JWT란? JWT를 활용해서 Spring Boot에서 로그인 구현하기 ( JWT 회원정보 추출 커스텀 애노테이션 ) JWT인증에 필요한 정보들을 암호화시킨 JSON 토큰. 유저를 인증하고 식별하기 위한 Token 기반 인증JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화토큰 내부에는 개인키를 통한 전자서명이 들어있음토큰 기반 인증토큰 자체에 사용자들의 정보들이 포함 ⇒ Stateless하게 설계 가능Stateless(무상태성) 란?서버가 클라이언트의 상태를 보존하지 않음. 오직 클라이언트의 요청에 대한 응답만 주는 것.HTTP통신은 무상태성을 지향. 그래야 서버를 무한 확장 가능하기 때문고객이나 요청이 갑자기 증가할 때 서버 추가가 쉬워짐Stateful 하다면? 서버 하나 고장시 서버와 연결된 클라이언트가 기존 작업을 처음부터 다시 해야 하는 상황 발생(결제 튕기면 처음부터 다시!)S.. 2023. 9. 14.
[Spring Boot] SpringSecurity 이해하기 SpringSecurity란?Spring 기반의 애플리케이션 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크인증과 인가에 관한 부분을 Filter 흐름에 따라 처리보안관련 로직을 따로 작성하지 않아도 된다는 점에서 편리Filter vs InterceptorFilter : Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL을 받음Interceptor : Dispatcher와 Controller 사이에 위치Deprecated.WebSecurityConfigureAdapterSpring Security 5.4 이후부터 WebSecurityConfigurerAdapter가 Deprecated 되었습니다. 더 이상 해당 클래스는 사용하지 않고 아래와 같이 사용합니다. 이번 프.. 2023. 9. 2.