인증을 알아보기 이전에, 스프링 시큐리티의 필터를 먼저 알아야한다. 필터에서의 주요 개념들은 이전 글을 통해 확인할 수 있다.2024.11.17 - [Framework/Spring] - Spring Security 의 첫 걸음 Spring Security 의 첫 걸음스프링 시큐리티에 대해 전무한 상태였다.스프링 시큐리티를 이용하면 사용자의 인증, 인가 그리고 보안 처리를 할 수 있다. 그 과정에서 필터는 가장 중요한 핵심이라는 것을 알게 되었지만 그yeongnius.tistory.com 스프링 시큐리티에서 인증은 어플리케이션 보안의 첫 번째 단계이다. 어플리케이션에 접근하려는 사용자가 누구인지 확인하는 절차는 보안의 시작이자 중요한 요소 중 하나이다. 나중에 알아 볼 인가(Authorization)의 기..
스프링 시큐리티에 대해 전무한 상태였다.스프링 시큐리티를 이용하면 사용자의 인증, 인가 그리고 보안 처리를 할 수 있다. 그 과정에서 필터는 가장 중요한 핵심이라는 것을 알게 되었지만 그만큼 어렵게 느껴졌기 때문에 필터에 대해 천천히 알아보려고 한다.Filter와 FilterChainFilter클라이언트의 요청과 응답에 대해 전처리, 후처리를 수행하는 컴포넌트로 서블릿 앞 단에 위치해서 클라이언트의 요청-응답을 가로채서 인증, 인가, 로깅, 보안 등의 작업을 처리한다. 필터는 서블릿 컨테이너의 컴포넌트로 서블릿 컨테이너에 의해 관리된다. 이때 필터는 서블릿 컨테이너의 필터일 수도 있고, 스프링에서 제공하는 필터일 수도 있고, 개발자가 만든 필터일 수도 있다. 즉, 필터는 서블릿 컨테이너 내에서 관리되지만..
Lambda와 Stream은 Java8부터 도입되었지만, 그동안 개발하면서 Lambda와 Stream 사용에 대한 경험이 적어서 제대로 알지 못했다. 그래서 Lambda와 Stream이 무엇이고 왜 사용하는지에 대해 알아보려고 한다. Lambda 정의익명 함수(anonymous function)로, 메서드나 기능을 간단하게 표현할 수 있는 방법이다.Java 8에서 도입되었으며, 주로 함수형 인터페이스(Functional Interface)의 인스턴스를 생성하기 위해 사용된다. Lambda 문법(매개변수1, 매개변수2, ...) -> { 실행할 코드 }1. 람다는 메서드 이름이 없다.2. 람다는 반환 타입이 없다. 정확하게 말하자면 람다식은 값을 반환하는 식이지만, 그 자체로 변수를 할당하는 방식이 아니..
stack 영역은 지역변수나 함수와 같이 일시적으로 사용되는 데이터들이 저장되며, 함수 호출이 종료되면 해당 데이터는 사라진다. 반면, heap 영역은 new 연산자로 생성된 객체들이 할당되며 이 객체들은 메모리 관리법에 따라 해제된다. 이 메모리 관리법은 GC(Garbage Collection)이라고 하며, GC의 동작원리에 대해 알아보려고 한다.GC (Garbage Collection)메모리 관리 기법 중 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기법이다.프로그램에서 사용중이거나 참조되고 있는 객체는 여전히 포인터를 유지되고 있지만, 참조되지 않는 객체는 더 이상 프로그램에서 참조되고 있지 않는다. 따라서 더이상 참조되지 않는 객체에 대한 메모리를 회수할..
해시 테이블은 해시 충돌이 발생하였을 때, 분리 연결법에 의하여 LinkedList를 활용하여 동일한 해시값에 대응하는 요소들을 저장한다고 해시 포스팅에서 다룬 적이 있다.해시 테이블 기반인 해시 맵 또한 LinkedList를 활용하여 해시 충돌을 해결하는지에 대해 알아보려고한다.해시 충돌이 발생하였을 때 해결 방법Java 8 기준으로 해시 충돌이 발생하였을 때 해결하는 방법이 다르다.Java 8 이전LinkedList 방식으로 해시 충돌을 해결한다. java 7에 대한 put 메서드에 대한 내용을 확인해본다.https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/util/HashMap.java#L386 jdk7u-jd..
자바 컬렉션의 iterator 는 fail-safe와 fail-fast를 지원한다.각 정의는 무엇이고 iterator에서 어떻게 동작하는지 알아보려고한다.fail-safe 와 fail-fastfail-fast는 가능한 빨리 작업을 중단하여 오류를 즉시 노출하고 작업을 중지하는 기능이다.fail-safe는 장애가 발생하더라도 작업을 중단하지 않으며 가능한 오류 발생을 피하려고 한다. 컬렉션 iterator에서의 fail-safe 와 fail-fastiterator 는 컬렉션(List, Set, Map 등)의 요소를 순차적으로 접근하고 탐색하는 방법을 제공하는 객체이다.컬렉션의 요소를 탐색할 때, 컬렉션의 수정이 발생하면 컬렉션의 iterator는 처리하는 방식이 다르다. fail-safe 방식에서는 컬렉션..
이전에 해시에 대해서 알아보았으니, 자바에서 해시를 활용한 자료구조는 무엇이 있는지 각 특징은 무엇인지 코드를 통해 한번 알아보려고 한다.2024.11.08 - [Language/Java] - Hash에 대해서 Hash에 대해서해시 (Hash, Hash Function, Hashing)Hash Function(해시 함수)은 임의의 길이의 데이터(key)를 고정된 길이의 데이터(hash)로 변경해주는 함수이다. 이 과정을 Hashing(해싱)이라고 하며, 해시 함수에 의해 나온yeongnius.tistory.comHashTable해시 함수와 배열을 기반으로 데이터를 key-value 쌍으로 저장하는 자료 구조이다. 해시 테이블은 key, hash function, hash, value, index, buc..
Object 클래스의 메서드 중 equals와 hashCode는 해시 기반 자료구조를 사용하였을 때 이점을 가져다준다고 했었다. 해시란 무엇이고, 해시 기반의 자료구조와 equals와 hashCode는 해시 기반 자료구조에서 왜 중요한지 알아보려고 한다.해시 (Hash, Hash Function, Hashing)Hash Function(해시 함수)은 임의의 길이의 데이터(key)를 고정된 길이의 데이터(hash)로 변경해주는 함수이다.이 과정을 Hashing(해싱)이라고 하며, 해시 함수에 의해 나온 결과 값이 Hash(해시)이다. 해시 함수의 특징어떠한 입력값에도 항상 고정된 길이의 해시값을 출력한다.해시 알고리즘의 종류 에 따라 결과값에 대한 길이는 정해져있으며, 다음 사이트에서 해시 알고리즘에 따라..
컬렉션 프레임워크 List의 특징과 이를 구현한 주요 클래스에 대해서 알아보려고 한다. ListCollection 인터페이스의 하위 타입으로, 순서가 있는 자료구조이다. 특징• List에 저장된 요소의 순서는 항상 보장된다. 저장 공간이 유동적으로 변하며, 순서가 있는 자료구조이다.• List는 중복 요소 저장을 허용하며, null 저장도 가능하다.• List는 저장 공간이 유동적으로 변한다. 요소가 추가되거나 삭제될 때 자동으로 크기가 조정된다.• List는 인덱스를 활용하여 요소에 접근할 수 있다.• List 와 그 구현체들은 java.util 패키지에 존재하므로, 사용 시 import 를 해줘야한다. List 의 구현체ArrayList동적 배열을 기반으로 구현된 자료구조로, 가장 널리 쓰이는 Lis..
클래스를 생성할 때 IDE나 프레임워크에서 제공하는 어노테이션으로 toString, equals, hashCode 메서드를 쉽게 재정의를 해왔었던 것 같다.그래서 이 메서드들이 정의된 최상위 클래스인 Object 클래스와 해당 메서드들에 대해 알아보려고한다.Object 클래스Object 클래스는 자바 클래스 계층 구조의 최상위 클래스이다.자바의 모든 클래스는 기본적으로 Object 클래스의 자식 클래스이므로, 클래스를 선언할 때 extends 키워드를 사용하여 명시적으로 상속하지 않더라도 컴파일러가 자동으로 Object 클래스를 상속받도록 처리한다.//일반적인 클래스 선언public class Car {}//실제로는 Object 클래스를 상속함public class Car extends Object {}..
- Total
- Today
- Yesterday
- @conditional
- AutoConfiguration
- Caching
- HashMap
- nosql
- spring boot
- 고정 세션
- HashSet
- 티스토리챌린지
- syncronized
- Security
- 인스턴스변수
- fail-fast
- JPA
- Spring
- Red-Black Tree
- 오블완
- 인터페이스
- Load Balancer
- 정적변수
- Hash
- java
- 추상클래스
- nginx
- fail-safe
- object
- 자동구성
- 다중화
- 로드 밸런서
- Sticky Session
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |