Java/Spring
-
Spring Security 의 Filter 들은 Spring Container 에서 Spring Bean 으로 등록되어 있다.하지만 Filter 들은 Servlet Container 에서 동작하는걸로 알고 있지만Spring Container 와 Servlet Container 는 영역 자체가 다르기 때문에 어떻게 실행되는지 궁금해서정리하게 됐다. 위 이미지처럼 Servlet Container 와 Spring Container 는 영역 자체가 다르며, Filter 는 서블릿이 제공하는 기술이다.Spring Bean 으로 등록되어 있는 Filter 들은 DelegatingFilterProxy 라는 클래스를 통해Spring Bean Filter 들을 실행시킨다. DelegatingFilterProxy ..
Spring Security Filter ChainSpring Security 의 Filter 들은 Spring Container 에서 Spring Bean 으로 등록되어 있다.하지만 Filter 들은 Servlet Container 에서 동작하는걸로 알고 있지만Spring Container 와 Servlet Container 는 영역 자체가 다르기 때문에 어떻게 실행되는지 궁금해서정리하게 됐다. 위 이미지처럼 Servlet Container 와 Spring Container 는 영역 자체가 다르며, Filter 는 서블릿이 제공하는 기술이다.Spring Bean 으로 등록되어 있는 Filter 들은 DelegatingFilterProxy 라는 클래스를 통해Spring Bean Filter 들을 실행시킨다. DelegatingFilterProxy ..
2024.06.17 -
Array(배열) 과 ArrayList 의 차이가 궁금해져 정리하게 되었다. Array(배열)ArrayList사이즈초기화 할때 명시하여 고정시킨다.String[] arr = new String[3];초기화 시 사이즈를 명시하지 않는다.크기가 가변적이며 Default 크기는 10이다.ArrayList arr_list = new ArrayList();속도초기화 시 메모리에 할당하므로ArrayList 보다 빠르다.데이터 추가 및 삭제 시 메모리를 재할당하기 때문에속도가 Array 보다 느리다.크기 변경사이즈 변경 불가추가, 삭제 가능add(), remove() 아래 예시를 보자String[] arr = new String[3];ArrayList arr_list = new ArrayList();System...
Array(배열) 과 ArrayList 차이Array(배열) 과 ArrayList 의 차이가 궁금해져 정리하게 되었다. Array(배열)ArrayList사이즈초기화 할때 명시하여 고정시킨다.String[] arr = new String[3];초기화 시 사이즈를 명시하지 않는다.크기가 가변적이며 Default 크기는 10이다.ArrayList arr_list = new ArrayList();속도초기화 시 메모리에 할당하므로ArrayList 보다 빠르다.데이터 추가 및 삭제 시 메모리를 재할당하기 때문에속도가 Array 보다 느리다.크기 변경사이즈 변경 불가추가, 삭제 가능add(), remove() 아래 예시를 보자String[] arr = new String[3];ArrayList arr_list = new ArrayList();System...
2024.05.29 -
Java 는 많은 양의 데이터를 처리 하기 위해서 배열, 컬렉션 등을 이용합니다.저장된 배열, 컬렉션들은 반복문(for), 반복자(Iterator) 를 사용하여 데이터 형식에 맞게새로운 코드를 작성했다.하지만 이러한 반복문, 반복자를 이용한 코드는 가독성과 재사용성 그리고 반복되는 코드들이너무 많았다.또한 Collection 이나 Iterator 와 같은 인터페이스의 각 컬렉션 클래스들은 같은 기능이지만중복해서 정의되어 있다. 아래 코드를 보면 Collection 과 Arrays 의 sort 함수이다.List arr = new ArrayList();arr.add("banana");arr.add("apple");arr.add("melon");String[] arr2 = { "apple", "melon", ..
Stream(스트림)이란?Java 는 많은 양의 데이터를 처리 하기 위해서 배열, 컬렉션 등을 이용합니다.저장된 배열, 컬렉션들은 반복문(for), 반복자(Iterator) 를 사용하여 데이터 형식에 맞게새로운 코드를 작성했다.하지만 이러한 반복문, 반복자를 이용한 코드는 가독성과 재사용성 그리고 반복되는 코드들이너무 많았다.또한 Collection 이나 Iterator 와 같은 인터페이스의 각 컬렉션 클래스들은 같은 기능이지만중복해서 정의되어 있다. 아래 코드를 보면 Collection 과 Arrays 의 sort 함수이다.List arr = new ArrayList();arr.add("banana");arr.add("apple");arr.add("melon");String[] arr2 = { "apple", "melon", ..
2024.05.24 -
개발환경 : Spring Boot, thymeleaf Logback 이란?Java에서 사용하는 로깅 라이브러리인 log4j 후속 버전이다.Spring Boot 에 기본으로 설정되어 있어서 별도의 라이브러리를 추가하지 않아도 사용할 수 있다. 아래는 Spring Boot thyemelaf 설정까지 완료된 다음 시점입니다.Test 를 위한 Controller, templates/ 경로에 test.html 을 만들었습니다. 1. resources/ 경로에 logback-spring.xml 파일을 생성한다. 2. logback-spring.xml 에 로그백 설정하기 ${CONSOLE_PATTERN} ..
logback 설정개발환경 : Spring Boot, thymeleaf Logback 이란?Java에서 사용하는 로깅 라이브러리인 log4j 후속 버전이다.Spring Boot 에 기본으로 설정되어 있어서 별도의 라이브러리를 추가하지 않아도 사용할 수 있다. 아래는 Spring Boot thyemelaf 설정까지 완료된 다음 시점입니다.Test 를 위한 Controller, templates/ 경로에 test.html 을 만들었습니다. 1. resources/ 경로에 logback-spring.xml 파일을 생성한다. 2. logback-spring.xml 에 로그백 설정하기 ${CONSOLE_PATTERN} ..
2024.05.20 -
Spring Security 5 버전에서 6 버전으로 바뀌면서 변경된 내용중 SecurityContextHolder 에 관한 내용이 있어공부하게 되었다. SecurityContext사용자 인증 정보를 저장하고 있는 Authentication 객체를 저장하는 보관소이다.SecurityContextHolder 전략(Strategy)에 따라 SecurityContext 에 저장하는 방식이 다르며일반적으로 ThreadLocal 에 저장한다.Authentication 인증 객체를 한 쓰레드에서 공유하므로 언제든지 불러와 사용할 수 있다. SecurityContextHolderSecurityContext 를 관리하고 저장하는 객체이다.SecurityContext 저장을 위해 ThreadLocal 를 가지고 있다..
SecurityContext, SecurityContextHolderSpring Security 5 버전에서 6 버전으로 바뀌면서 변경된 내용중 SecurityContextHolder 에 관한 내용이 있어공부하게 되었다. SecurityContext사용자 인증 정보를 저장하고 있는 Authentication 객체를 저장하는 보관소이다.SecurityContextHolder 전략(Strategy)에 따라 SecurityContext 에 저장하는 방식이 다르며일반적으로 ThreadLocal 에 저장한다.Authentication 인증 객체를 한 쓰레드에서 공유하므로 언제든지 불러와 사용할 수 있다. SecurityContextHolderSecurityContext 를 관리하고 저장하는 객체이다.SecurityContext 저장을 위해 ThreadLocal 를 가지고 있다..
2024.02.23 -
Spring Security 5 버전에서 6버전으로 올라가면서 Success Handler 까지 정상적으로 인증이 성공했지만로그인이 안되어 찾아보다가 공식 문서 및 구글링을 통해 찾았다. 위 내용을 요약하면 아래와 같다.Spring Security 5 에서는 SecurityContextPersistenceFilter 를 사용하여 Security Context 가 SecurityContextRepository 에 자동으로 저장된다고 한다. 정상적인 요청과 응답이 수행되기 전에세션을 생성한다는 문제점과 이러한 세션을 추적하기가 어렵다는 문제가 있었다.Spring Security 6 에서는 SecurityContextPersistenceFilter 가 Defrecated 되고 SecurityContextHo..
Spring Security 5 버전에서 Spring Security 6 버전으로 올라가면서 변경된 SecurityContext 에 인증 객체 설정Spring Security 5 버전에서 6버전으로 올라가면서 Success Handler 까지 정상적으로 인증이 성공했지만로그인이 안되어 찾아보다가 공식 문서 및 구글링을 통해 찾았다. 위 내용을 요약하면 아래와 같다.Spring Security 5 에서는 SecurityContextPersistenceFilter 를 사용하여 Security Context 가 SecurityContextRepository 에 자동으로 저장된다고 한다. 정상적인 요청과 응답이 수행되기 전에세션을 생성한다는 문제점과 이러한 세션을 추적하기가 어렵다는 문제가 있었다.Spring Security 6 에서는 SecurityContextPersistenceFilter 가 Defrecated 되고 SecurityContextHo..
2024.02.22