데블 아니고 데블리

운동,햄버거, 개발 좋아요

🐷💻📝

프로그래밍 7

Spring Security 구조 복습 with 로그인은 어떻게 구현되는가 (1) ?

[정리하게 된 계기]시큐리티.. 스프링 하위 프레임워크라고 생각하면 되는데,토큰 만들면서 Filter의 흐름대로 처리하고는 있지만..어느 시점에 실행되고 구조는 어떻게 이루어져 있는지 깊게 공부하지는 못했던 것 같다특히 403에러가 많이 나오는데, 정말 권한이 없어서 그런건지.. 이런 것들이 궁금해져서 작성해 보기로 한다이번에 정리해 본 후 로그인 기능까지 정리해 보자*https://webfirewood.tistory.com/115 여기 블로그 참고했고, 코드는 제 코드로 작성했습니다~ [스프링 시큐리티 (인증, 인가, 필터, 인터셉터)]Spring Security 는 spring 기반의 어플리케이션의 보안(인증,인가) 등을 담당하는 스프링 하위 프레임워크이다스프링 시큐리티는 보안을 크게- 인증(Auth..

[JAVA] 자바는 call by value다..

지금 이론 공부를 다시 하고 있는데, 당연하게 생각했던 개념들인데 내가 착각하고 있던 개념이 있어서 블로그에 작성해보려고 한다.그 중 하나가 call by value 개념인데, call by reference 와 비교해서 면접예상 질문으로 나오기도 한다.call by value, call by reference 둘 다 변수, 객체 등이 함수의 인자로 들어와 매개변수(parameter)로 전달될 때 어떤 방식으로 전달될 지를 결정하는 방법이다. [착각한 개념]call by value : 자바의 기본형 타입이 전달되기 때문에 값이 그대로 전달된다(원본 데이터 값 계속 변경)call by reference : 자바의 참조타입이기 때문에 참조하는 주소값이 복사되어 전달된다(주소값으로 값을 찾는다), 그래서 주소..

[자료구조] Stack, Queue, Deque

오늘은 자료구조에 대해 강의를 듣고 구현해 보는 시간을 가졌는데, 깊이있게 공부해 본 경험은 처음이라 어려웠다. [01. Stack] - stack 자료구조는 후입선출 : 나중에 들어간게 처음으로 나온다(Last in First Out, LIFO) 구조입니다. 저는 세로구조라고 생각해요.. 맨 나중에 들어간 것 부터 꺼낸다 = 맨 위에서부터 꺼낸다.. 일단 선언하고 데이터를 집어 넣는 것 부터 해야겠지요.. - 기본 연산 push: 스택의 맨 위에 요소를 추가. pop: 스택의 맨 위 요소를 제거하고 그 값을 반환. peek: 스택의 맨 위 요소를 조회. import java.util.*; public class StackExample { public static void main(String[] arg..

[JAVA] Scanner vs BufferedReader(),(BufferedWriter) 코딩테스트 무엇을 쓰는게 좋을까 (2)?

[이어서.. 속도차이가 얼마나 날까 ? ] 백준 예제 10998 두 수의 곱셈 문제를 풀어보려고 한다 문제 https://www.acmicpc.net/problem/10998 10998번: A×B 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. www.acmicpc.net [Scanner를 사용한 코드] import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int sum = a * b; System.out.println(sum); sc..

[JAVA] Scanner vs BufferedReader(),(BufferedWriter) 코딩테스트 무엇을 쓰는게 좋을까 (1)?

[서론] 나는 이제서야 백준을 시작했다.. 처음에 입력값 받는 방법을 몰라 검색했었는데, Scanner, BufferedReader, BufferedWriter, StringBuilder, StringTokenizer가 눈에 띄는 문법이다. 비슷한 기능을 하지만 왜 코딩테스트에는 BufferedReader를 권장하는 것일까 ? 이번 게시물에서는 기본적인 문법에 대해 설명할 예정입니다 [본론] 1. Scanner [요약] java.util 패키지에 들어있다. 띄어쓰기, 개행문자("\n")를 기준으로 값을 인식해 편합니다. 정수, 소수, 문자 데이터도 읽을 수 있고 별도의 예외 처리를 명시하지 않아도 됩니다. ⭐️핵심! 데이터를 입력 받을 때 바로 사용자에게 전송된다 ➡️ 한 문자(공백 or 엔터) 칠 때 ..

API 방식에 따른 반환 클래스 구현

[개요] 백엔드는 spring , 프론트엔드는 vue 를 사용하는 프로젝트를 시작하게 되었습니다. 기존 thymeleaf 로 개발하던 방식과는 다르게 Api를 사용하게 되었습니다. 그렇다면! 기존 thymeleaf 프로젝트와 Api 방식은 어떤 차이가 있을까요 ? 1. Thymeleaf 사용해 개발한다. 데이터를 컨트롤러에서 사용하는 model 에 담아 타임리프 html 파일을 반환합니다. 여기서 타임리프는 HTML 및 XML 기반의 뷰 템플릿 엔진으로 사용되는 기술이며, 타임리프는 서버 측에서 실행되며, 클라이언트에게 렌더링된 최종 HTML을 전송합니다. 즉 타임리프가 알아서 다 할게! (서버 사이드 랜더링) 방식입니다. 2. RESTful API로 개발한다. 프론트엔드 프레임워크와 소통하는 방법이라고..

[로그인] 토큰 방식 로그인(Spring boot, Spring Security, JWT)

jwt토큰을 사용하여 로그인 구현합니다. (2024.03.23. 수정 중... 완료 예정 26일(화)) 기능에 대한 간단한 설명 토큰 기반 로그인입니다. 1 ) 클라이언트 서버로 ID/PW 로그인 요청(실제 로그인 하는 행위) 2 ) 서버에 해당 유저가 있다면 Access Token 과 Refresh Token을 발급 3 ) 클라이언트측(브라우저)에서 AccessToken을 포함하여 API 요청합니다.(axios) 4 ) 토큰 유효성 검사 후 토큰 유효 하면 그대로 진행, 유효하지 않다면 토큰 새로 발급받습니다. *RT 만료는 7일이라 여유롭습니다… 로그아웃 하고 다시 재로그인 시 1번 로직 타는거라고 생각하시면 이해하기 편할 것 같습니다 해당 기능을 구현하기 전 공통으로 jwt(json 형식의 토큰)을..