본문 바로가기

Java/SpringBoot8

영속성(Persistence)이란 무엇일까? 스프링부트에서 데이터 관리를 위해 공부하면 영속성이란 단어를 들을 수 있다.과연 영속성이란 무엇이며 어떤 역할을 하는지 알아봤다. 우선 자바에서 영속성이란 "프로그램이 종료되더라도 데이터가 유지되는 특성"을 의미한다.일반적으로 데이터베이스나 파일 시스템에 데이터를 저장하고, 필요할 때 이를 다시 불러오는 방식으로 구현한다 . 영속성과 관련된 개념(1) 영속 계층 (Persistence Layer)애플리케이션의 데이터 저장과 관리를 담당하는 계층데이터베이스, 파일, 클라우드 스토리지 등에 데이터를 저장(2) 영속 객체 (Persistent Object)데이터베이스에 저장되거나 저장될 수 있는 객체일반적으로 Entity 클래스 또는 VO(Value Object) 형태(3) 영속 컨텍스트 (Persistenc.. 2025. 2. 3.
Security Filter Chain Spring Security의 Filter는 HTTP 요청을 가로채서인증(Authentication)과 인가(Authorization)를 처리하는 핵심적인 역할을 한다.스프링 시큐리티는 자체적인 필터 체인을 가지고 있으며,이를 통해 요청이 컨트롤러(Controller)로 전달되기 전에 보안 검사를 수행한다.스프링 시큐리티의 필터 체인(Security Filter Chain)스프링 시큐리티는 여러 개의 서블릿 필터(Servlet Filter)를 체인 형태로 구성하여 요청을 보호한다.핵심적인 필터는 SecurityFilterChain 인터페이스를 구현하는 여러 개의 필터로 이루어져 있다. 📌 스프링 시큐리티의 전체 필터 목록WebAsyncManagerIntegrationFilter비동기 요청에서도 Secu.. 2025. 1. 31.
자바의 Filter에 대해서 자바의 Filter란?자바에서 Filter는 웹 애플리케이션에서 요청과 응답을 처리하는데 사용되는 객체이다. 주요 특징:요청 및 응답 필터링: Filter는 서블릿이 요청을 처리하기 전에 요청을 가로채서 필터링하거나, 서블릿이 응답을 처리한 후에 응답을 가로채서 수정할 수 있다.체이닝: 여러 개의 필터를 정의하고, 이를 체인처럼 연결하여 순차적으로 처리할 수 있다. 각 필터는 다른 필터가 처리한 결과를 받아들일 수 있다.Web.xml 또는 어노테이션을 통한 설정: 필터는 web.xml에서 정의하거나, 자바에서 어노테이션을 사용해 설정할 수 있다.주요 메서드:init(FilterConfig filterConfig):필터가 초기화될 때 호출된다. 필터 설정을 읽고 초기화 작업을 수행한다doFilter(Ser.. 2025. 1. 31.
인증과 인가 인증 (Authentication)정의인증은 사용자의 신원을 시스템에 증명하는 과정인증의 목표는 "이 사람이 자신이 주장하는 신분이 맞는가?"를 확인하는 것프로세스사용자 입력:사용자는 로그인 화면에서 (ID와 비밀번호 / 생체 인식 / 인증 토큰)을 제출시스템 확인:시스템은 데이터베이스나 인증 서버에 저장된 정보와 사용자가 제출한 정보를 비교결과:사용자를 확인하면 "인증 성공" 상태가 되고, 그렇지 않으면 "인증 실패" 메시지 반환인증 방법지식 기반 인증 (사용자가 아는 것):비밀번호, PIN 코드, 보안 질문 등소유 기반 인증 (사용자가 소유한 것):OTP(일회용 비밀번호) 기기, 보안 토큰, 이메일 인증 링크 등본질 기반 인증 (사용자 고유의 특징):생체 정보(지문, 홍채, 얼굴 인식 등)나 행동 패.. 2025. 1. 30.
JWT 로그인 테스트-4 ○ 로그인 아키텍쳐JWT 관련 필터들을 구현하면서 자세하게 공부할 필요가 있다고 생각한게적다보면 이게 무슨 역할을 하는건지, 어떤 원리로 동작하는건지 이해하기 어려웠다. 우선은 로그인 필터를 구현했다. SecurityConfig에서 .formLogin을 disable()했기 때문에UsernamePasswordAuthenticationFilter가 동작하지 않는다고 한다. ○ formLogin을 비활성화?- 문득 소스 코드를 작성하다가 생각이 든건 JWT 토큰 인증 방식에서는 꼭 formLogin을 비활성화 해야할까?토큰 로그인 방식은 stateless 방식이기 때문에 세션을 사용하지 않는다. 따라서 세션을 사용하는 formLogin을 비활성화 하는 것이 일반적이다. 하지만 반드시 비활성화 할 필요는 없다.. 2025. 1. 22.
JWT 로그인 테스트-3 테스트 구현은 완료하고 다시 복기하며 생겼던 문제에 대해서 정리해보려고 한다. ○ 회원가입 아키텍쳐○ 유저 정보 저장을 위한 Entitypublic class JwtUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; private String role;} ○ 회원가입을 위한 JoinService 생성public Boolean joinProcess(JoinDto joinDto){ String username = joinDto.getUsername(); String password = j.. 2025. 1. 21.