분류 전체보기(111)
-
[2559 - JAVA] 수열
문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫..
2024.03.21 -
[13305 - JAVA] 주유소
문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은 다를 수 있다. 가격의 단위는 원을 사용한다. 예를 들어, 이 나라에 다음 그림처럼 4개의 도시가 있다고 하자. 원 안에 있는 숫자는..
2024.03.12 -
[15649 - JAVA] N과 M (1)
문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이 import java.io.*; import java.util.*; public class Main { public static int n, m; public static int[] arr; public static boolean[] visit; public ..
2024.03.12 -
[Spring - Security] OAuth2 클라이언트와 Security 기초 인증 / 인가 처리 (Feat - Kakao Login && Local Login) - 1
코드 버전 Spring boot: 3.2.1Java: JDK 17.0.9Gradle - Groovy 의존성//securityimplementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframework.boot:spring-boot-starter-security' //jwtimplementation 'io.jsonwebtoken:jjwt:0.12.3'implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3' 진행 방식 클라이언트에서 로그인 요청을 보내면 서..
2024.03.07 -
[Spring] SSR에서 JWT를 이용한 인증/인가 처리 고민
SSR과 JWT에 대한 고찰여기저기 글을 찾아보면 LocalStorage, Cookie를 이용해 JWT 관리하게 되는데 Spring Boot에서 JSP, thymeleaf 같이 SSR 기반 방식의 경우 JWT를 사용하는 경우는 거의 없습니다. SSR 경우 대부분 세션-쿠키를 이용해 stateful하게 상태관리를 해줍니다. 첫 번째는 LocalStorage 방식의 경우 SSR에서는 구현이 거의 불가능하고 두 번째 Cookie를 이용하는 방법 또한 세션-쿠키를 이용한 방법에 비해 코드의 보안, 복잡도, 생산성이 모두 떨어지기에 굳이 사용하려고 하지 않습니다. 하지만 Cookie를 이용한 방법으로 처리가 가능하고 복잡하긴 하지만 왜 JWT를 사용하지 않고 세션 방식을 사용할까에 대한 고민을 하게 되었습니다. ..
2024.02.14 -
[Spring] JWT 토큰이란 무엇일까?
JWT (JSON WEB TOKEN) 이란 JSON 웹 토큰은 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로, 페이로드는 몇몇 클레임 표명을 처리하는 JSON을 보관하고 있다. 토큰은 비공개 시크릿 키 또는 공개/비공개 키를 사용하여 서명된다. 간단히 말하자면 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 말하는 것이다. 그리고 이러한 JWT을 이용해 서버와 클라이언트는 사용자가 누구인지 식별한다. JWT 프로세스 사용자 로그인 진행 사용자 확인 Access Token 발급 응답으로 Access Token 저장 데이터 요청 시 Header Access Token 전송 Access Token 검증 실행 JWT 3가지 구조 헤더(Header) : 토큰 타입과 해싱 알고리즘..
2024.01.31