분류 전체보기(361)
-
REST API
1. REST API 1. 개요 REST API는 REpresentational State Transfer의 줄임말로 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이는 로이 필딩이 자신의 박사 학위 논문에서 소개하면서 알려졌다. 1. 구성 자원(Resource) - URI 행위(Verb) - HTTP method 표현(Representations) 2. 특징 1. Uniform Interface URI로 지정한 리소스에 대한 조작은 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다. 2. Stateless 작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다. 세션이나 쿠키를 별도로 저장하고 관리하지 않아 API 서버는 요청만 처리한다. 때문에 서비스의 자유도가 높..
2023.03.18 -
정규식 문법 정리
문법 정리 Groups and ranges | 또는 () 그룹 [] 문자셋, 괄호안의 어떤 문자든 [^] 부정 문자셋, 괄호안의 어떤 문이 아닐 때 (?:) 찾지만 기억하지는 않음 Quantifiers ? 없거나 있거나 (zero or one) * 없거나 있거나 많거나(zero or more) + 하나 또는 많이 (one or more) {n} n번 반복 {min, } 최소 {min,max} 최소, 그리고 최대 Boundary-type \b 단어 경계 \B 단어 경계가 아님 ^ 문장의 시작 $ 문장의 끝 Charactor classes \ 특수 문자가 아닌 문자 . 어떤 글자(줄바꿈 문자 제외) \d digit 숫자 \D digit 숫자 아님 \w word 문자 \W word 문자 아님 \s space ..
2023.03.18 -
JWT
JWT란? JWT(Json Web Token)는 JSON 포맷을 활용한 토큰 기반의 인증 방식 중 하나이다. RFC 7519에 명시되어 있으며 기존의 Stateful한 세션 방식의 인증 방식과 달리 Stateless한 인증 방식으로 사용된다. JWT가 나온 배경부터 차근차근 살펴보도록 하자. JWT의 탄생 배경 웹 환경에서 까다로운 부분 중 하나는 로그인 상태를 유지하는 것이다. 사이트에 회원가입한 유저가 로그인한 후 사이트를 돌아다니는데 이동할 때마다 로그인해야 하는 것은 매우 불편하다. 이런 문제를 해결하는 방법으로 전통적인 세션이 있다. 세션은 일반적으로 서버의 메모리에 사용자에 대한 정보들을 저장해두는 방식으로 사용된다. 클라이언트에는 세션 ID를 내려주고 해당 ID에 해당하는 세션의 유무로 사용..
2023.03.18 -
[Spring Security] 인가 흐름 및 절차
⚠️ 스프링 시큐리티의 인가는 인증 절차를 먼저 이해하는 편이 권장되므로 https://somuchthings.tistory.com/197 을 먼저 읽고 오는 것을 추천한다. 1. 인가(Authorization)란? 인가(Authorization)는 인증된(authenticated) 사용자가 요청한 자원에 대해 접근할 권한이 있는지를 판단하는 절차이다. 간단히 예를 들면 회원 사용자는 관리자 페이지에는 접근하지 못하도록 해야 한다는 규칙이 있다. 회원 사용자는 분명 서비스를 이용하도록 인증되었지만 관리자 자원에 대한 인가는 받지 못하는 것이다. 2. 스프링 시큐리티의 인가 흐름 앞선 필터를 모두 지나서 맨 마지막에 인가 처리를 담당하는 FilterSecurityInterceptor에 도달한다. 이 클래스..
2023.03.18 -
[Baekjoon] 2309번: 일곱 난쟁이
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 설명 아홉 명의 난쟁이들 중 스파이 난쟁이 2명이 숨어있다. 진짜 일곱 난쟁이들의 키의 합은 100이다. 아홉 난쟁이들 중 진짜 일곱 난쟁이들만 찾아내 그 키를 출력한다. 풀이 방법 1. 7중 반복문 제일 단순무식한 방법이다. 반복문을 이렇게 극단적으로 많이 써본 것도 처음이다. import java.io.*; import java.util.Arrays; class Main { final static..
2023.03.18 -
[Baekjoon] 9935번: 문자열 폭발
https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 설명 먼저 문자열 한 줄이 주어진다. 그 다음 폭발 키워드 문자열이 주어진다. 만약 문자열에 폭발 키워드 문자열이 있으면 해당 문자열이 폭발하고 앞 뒤 문자열은 합쳐진다. 이때 폭발이 모두 끝난 후 남은 문자열을 출력하면 된다. 만약 남은 문자열이 없는 경우, 즉 모든 문자열이 폭발한 경우 FRULA를 출력한다. 스택이나 StringBuilder를 활용하면 효율적으로 해결할 수..
2023.03.17