[Spring Security] anonymous
📌 익명 사용자 표현 방법의 변화 이전 인증 시스템에서는 인증되지 않는 사용자를 null 로 표현하는 경우가 많았다. 그러나 이는 코드에 user == null 과 같은 수많은 검증 로직 작성의 배경이 되었으며, NullPointerException 을 항상 고려해야 했다. 이러한 문제를 Spring Security는 ‘존재하지 않음’이라는 상태를...
📌 익명 사용자 표현 방법의 변화 이전 인증 시스템에서는 인증되지 않는 사용자를 null 로 표현하는 경우가 많았다. 그러나 이는 코드에 user == null 과 같은 수많은 검증 로직 작성의 배경이 되었으며, NullPointerException 을 항상 고려해야 했다. 이러한 문제를 Spring Security는 ‘존재하지 않음’이라는 상태를...
📌 인증 메커니즘 원리 HTTP Basic Authentication 은 특정 리소스에 대한 접근을 요청할 때 사용자에게 username 과 password 를 확인하여 인가를 수행하는 방법이다. 클라이언트가 보호된 리소스에 접근하면 서버는 Authorization 헤더의 존재 유무를 확인하고, 응답의 WWW-Authenticate 헤더에 Basi...
📌 개요 사용자가 자격 증명을 입력하면 어떤 과정을 거쳐 사용자를 인증하게 될까? 그 과정에 대해 알아보자. 📌 UsernamePasswordAuthenticationFilter이란? UsernamePasswordAuthenticationFilter 는 보안 필터 중 하나로 POST 요청으로 들어온 자격 증명을 토대로 인증을 수행한다. 📌 자격...
📌 formLogin 메서드란? formLogin 메서드는 로그인 폼을 통한 인증을 쉽게 구현할 수 있도록 하는 기능이다. 📌 formLogin API loginPage loginPage 는 Spring Security가 기본적으로 제공하는 로그인 폼 대신 개발자가 만든 커스텀 로그인 폼을 사용하려고 할 때 사용한다. loginProcessi...
📌 Filter Spring Security는 Filter 를 기반으로 동작한다. Filter 란 무엇일까? 클라이언트가 WAS, Web Application Server에 요청(HttpServletRequest)을 보내면 서블릿 컨테이너는 URI와 Servlet 을 보고 FilterChain 을 생성한다. 요청은 최종적으로 Servlet 에...
📌 WebSecurity WebSecurity 는 전역적인 보안을 담당한다. SecurityBuilder 의 구현체로 FilterChainProxy 를 생성 및 설정하는 역할을 한다. FilterChainProxy 는 모든 웹 요청을 가장 먼저 받아 어떤 SecurityFilterChain 을 적용할지 결정한다. @Bean public WebSe...
📌 BFS란? Breath-First Search, BFS 는 그래프를 탐색하는 알고리즘이다. 출발 노드로부터 가까운 노드부터 우선적으로 탐색한다. 이는 레벨 단위로 진행된다. 📌 동작 방식 먼저 시작 노드를 선택하고, 거리를 0으로 설정한다. 거리가 d 인 모든 노드들을 확인하며 해당 노드와 연결된 노드들 중 방문하지 않는 노드들을...
📌 개요 하나만 짚고 넘어가자. JPA 의 쿼리 언어는 JPQL 이다. JPA 의 구현체 중 하나는 Hibernate 이며, Hibernate의 쿼리 언어는 HQL 이다. 사실 하나가 아니고 세 개다. 내가 ‘구현’이라고 하지 않았는가? JPA라는 인터페이스를 구현한 것이 Hibernate이다. 이는 곧 Hibernate가 독자적인 기능을 가질 수...
📌 개요 Spark에서 자주 사용되는 파일 포맷에 대해 알아보자. 📌 JSON JavaScript Object Notation, JSON 은 key-value 구조를 가진 텍스트 기반 포맷이다. 사람이 쉽게 읽고 쓸 수 있으며, 계층적 구조를 표현할 수 있다는 특징이 있다. 매우 유연한 구조를 가지고 있다. JSON 내부에 객체가 있다면 스파크...
📌 Elastic MapReduce란? AWS Elastic MapReduce(EMR) 는 빅데이터 클러스터 관리 서비스이다. AWS가 알아서 스파크나 하둡 클러스터를 생성한다. 네트워크 설정이나 버전 호환 문제를 알아서 해결하며, 노드에 장애가 발생하면 자동으로 감지하여 대체 노드를 띄운다. 📌 특징 클러스터의 부하를 지속적으로 모니터링하여 부...