본문 바로가기

Springboot Study13

Spring Security에서 중요한 인터페이스들 Spring Security에서 중요한 인터페이스들은 인증(Authentication), 인가(Authorization), 그리고 보안 상태 관리와 관련된 기능을 제공합니다.1. UserDetailsUserDetails는 Spring Security에서 사용자 정보를 나타내는 인터페이스입니다. 사용자 정보의 형태를 정의하여, Spring Security가 인증을 위해 사용하는 사용자 정보를 일관되게 관리할 수 있습니다.주요 메서드:getUsername(): 사용자의 이름(예: ID) 반환.getPassword(): 암호화된 비밀번호 반환.getAuthorities(): 사용자에게 부여된 권한 목록 반환.isAccountNonExpired(): 계정 만료 여부 확인.isAccountNonLocked(): .. 2024. 10. 30.
스레드풀 스레드 풀(Thread Pool)은 미리 생성된 일정 수의 스레드 묶음으로, 여러 작업을 동시에 효율적으로 처리하기 위해 사용됩니다. 매번 새로운 스레드를 생성하지 않고 재사용 가능한 스레드를 미리 준비해두는 방식으로, 시스템 자원 소모를 줄이고 작업 처리 성능을 향상시킵니다.스레드 풀의 작동 방식스레드 생성: 애플리케이션이 시작될 때, 설정된 수만큼의 스레드를 미리 생성합니다. 이 스레드들은 작업이 할당되기를 기다리면서 풀 안에 대기 상태로 있습니다.작업 할당: 작업이 요청되면, 스레드 풀에서 대기 중인 스레드가 할당되어 해당 작업을 처리합니다.스레드 반환: 작업이 끝나면, 해당 스레드는 종료되지 않고 다시 풀로 반환되어 다음 작업을 처리할 준비를 합니다. 이로써 스레드를 지속적으로 재사용할 수 있습니.. 2024. 10. 29.
세션(Session)과 제이슨웹토큰(JSON Web Token) 세션(Session)과 JWT(JSON Web Token)은 모두 사용자 인증을 관리하기 위한 방법이지만, 동작 방식과 저장 방식에서 차이가 있습니다.  세션(Session)세션은 사용자가 웹 애플리케이션에 로그인할 때 서버가 고유 세션 ID를 발급하여, 서버에 사용자 상태를 저장하고 이를 통해 인증 상태를 관리하는 방식입니다.세션의 특징세션 저장 위치: 세션 정보는 서버에 저장되며, 주로 메모리나 데이터베이스에 저장됩니다.세션 ID: 서버가 생성한 고유 세션 ID가 사용자의 브라우저에 쿠키로 전달됩니다. 이후 클라이언트는 요청 시 쿠키에 포함된 세션 ID를 서버로 전송하여, 서버가 이를 확인하고 사용자의 인증 상태를 유지합니다.상태 저장성(Stateful): 서버가 세션 정보를 유지하기 때문에 상태 저.. 2024. 10. 29.
OAuth OAuth는 인증(누구인지 확인)보다는 권한 부여(무엇을 할 수 있는지 확인)에 중점을 둔 프로토콜입니다. 사용자의 비밀번호를 공유하지 않으면서도 제3의 애플리케이션이 특정한 사용자 데이터를 안전하게 접근할 수 있도록 설계된 것이 특징입니다. OAuth의 주요 개념리소스 소유자(Resource Owner): 사용자를 의미하며, 보호된 자원(예: 이메일, 프로필 정보 등)을 소유하고 있는 사람입니다.클라이언트(Client): 사용자 데이터를 이용하고자 하는 제3의 애플리케이션입니다. 예를 들어, 사용자의 구글 프로필 정보에 접근하고자 하는 뉴스 앱이 클라이언트 역할을 합니다.권한 부여 서버(Authorization Server): 사용자를 인증하고 클라이언트에 액세스 토큰을 발급하는 서버입니다. 이 서버는.. 2024. 10. 28.
인증(Authentication)과 권한 부여(Authorization) 인증(Authentication)과 권한 부여(Authorization)는 보안 시스템에서 사용자나 시스템이 누구인지 확인하고, 무엇을 할 수 있는지 결정하는 데 중요한 역할을 하는 개념입니다. 1. 인증 (Authentication)정의: 인증은 사용자가 누구인지 확인하는 절차입니다. 쉽게 말해, 시스템에 접근하려는 사람이 "정말 그 사람인지"를 확인하는 과정입니다.사용 사례:로그인: 가장 흔한 인증 과정입니다. 사용자는 자신의 ID(사용자 이름)와 비밀번호를 입력하여 시스템이 본인이 맞는지 증명합니다.2단계 인증(2FA): 비밀번호 외에도 추가적인 보안 요소(예: 휴대전화로 전송된 코드나 생체 인식)를 활용하여 신원을 더욱 정확하게 확인합니다.싱글 사인온(SSO): 한 번의 인증으로 여러 애플리케이션.. 2024. 10. 28.
스프링부트의 RunListener 스프링부트에서 RunListener는 애플리케이션의 라이프사이클 이벤트를 처리하기 위해 사용되는 컴포넌트입니다. Spring Boot는 애플리케이션이 시작되고 실행되기까지 여러 단계를 거치며, 이러한 각 단계에서 특정 이벤트를 발생시킵니다. RunListener는 이러한 이벤트들을 수신하고 처리할 수 있도록 해주는 역할을 합니다.1. SpringApplicationRunListenerSpringApplicationRunListener는 스프링 애플리케이션이 시작되면서 발생하는 다양한 이벤트를 수신하고 대응하는 인터페이스입니다. 이 인터페이스는 스프링 애플리케이션의 실행 흐름을 제어하거나, 특정 단계에서 추가 작업을 수행하고 싶을 때 사용됩니다.주요 역할스프링 부트 애플리케이션이 실행될 때 여러 단계에서 .. 2024. 10. 24.