분류 전체보기 (57) 썸네일형 리스트형 Spring Security의 구조 Spring Security의 구조 핵심 구성 요소 AuthenticationManager: 인증 프로세스를 관리. 이는 Authentication 객체를 받아 유효한지 확인 함. Authentication: 사용자의 인증 정보를 나타내는 객체. UserDetails: 사용자의 정보를 담고 있는 객체. 사용자의 이름, 패스워드, 권한 등을 포함. UserDetailsService: 사용자 정보를 가져오는 인터페이스. 일반적으로 데이터베이스에서 사용자 정보를 조회하는 데 사용. 인증 과정 (Authentication Process) 사용자가 로그인 정보를 입력. AuthenticationManager는 UserDetailsService를 사용하여 사용자의 정보를 조회. 조회된 정보와 입력된 정보를 비교하여.. JWT 발급 과정 JWT 발급 과정 사용자 인증 사용자는 로그인 정보를 제공 Spring Security는 이 정보를 사용하여 사용자를 인증. JWT 생성 인증에 성공하면 서버는 토큰 생성. 일반적으로 사용자의 식별 정보, 권한, 유효 기강 등을 포함한다. 서명을 통해 보안이 강화된다. (HMAC 알고리즘 또는 RSA 키 사용) JWT 발금 생성된 JWT는 클라이언트에게 반환한다. 클라이언트는 이후의 요청에서 이 JWT를 사용하여 자신을 인증함. JWT 검증 클라이언트로부터 요청이 들어올 때, JWT는 서버에 의해 검증된다. JWT의 유효성, 만료 시간, 서명 등이 확인된다. 권한 부여 및 리소스 접근 JWT가 유효하다면, 사용자는 권한에 따라 시스템의 리소스에 접근할 수 있다. 프론트를 할 때 JWT로 고생했던 적이 있.. 클래스와 인스턴스의 차이 클래스 클래스는 객체를 만들기 위한 템플릿 또는 청사진이다. 클래스는 객체의 구조와 행동을 정의하며 여기서 구조는 변수로, 행덩은 메소드로 표현된다.일종의 개념적 또는 추상적인 틀이며 하나의 정의일 뿐이다.ex) [자동차] class - 브랜드, 모델, 색상 - 속성- 주행, 정지 - 행동(메소드) 인스턴스 인스턴스는 클래스에 의해 생성된 객체이다. 클래스를 사용하여 실제 메모리에 할당된 것. 클래스를 바탕으로 만들어진 구체적인 실체이다. 클래스의 정의를 바탕으로 실제로 생성된 많은 객체 중 하나이다. ex) [자동차] class를 바탕으로 만든 특정한 자동차 ( 현대 아반떼) java의 컴파일 과정 사용자가 .java 를 작성. 자바 컴파일러가 위의 코드를 바이트 코드(.class)로 변환한다. 컴파일 된 바이트 코드를 JVM(Java 가상 머신)으 클래스로더로 전달한다. 클래스 로더는 바이트코드를 메모리 영역에 담는 운반기 역할을 한다. 클래스 로더는 동적로딩(Dynamic Loading)을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역(Runtime Data Area의 Method Area), 즉 JVM의 메모리에 올린다. 실행엔진(Execution Engine)은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 하나씩 가져와서 실행한다. MVC 모델? MVC : Model-View-Controller 모델, 뷰, 컨트롤러로 소프트웨어의 구성 요소를 세 가지 역할로 분리 한 것을 말한다. 모델 데이터와 비즈니스 로직을 담당함. DB와의 상호작용 데이터의 유효성 검사, 조작 등을 처리한다. 뷰 사용자에게 시작적으로 표현하는 역할. 컨트롤러 사용자의 입력을 처리하고 그에 맞는 모델의 업데이트와 뷰의 업데이트를 조정한다. 뷰를 통해 사용자가 어떠한 동작을 요청하면 이를 감지하고 해당 동작에 맞는 모델의 업데이트를 수행하고 뷰를 업데이트 한다. 장점으로는 유지 보수성과 재사용성을 높이는 장점을 가지고 있고 또 인터페이스오 비즈니스 로직이 독립적으로 개발될 수 있어 작업을 효율적으로 분담할 수 있다. 또한 새로운 기능을 추가할 때 해당 기능에 맞는 세로운 모델,.. HTTP, HTTPS? HTTP 데이터를 주고 받는 양식을 정의한 통신 규약 중 하나. 전 세계에서 널리 쓰이는 통신 규약이다. 컴퓨터끼리 데티터를 주고 받을 때 정해둔 약속을 의미함. HTTPS 기본적으로 HTTP에 보안 기능을 추가한 프로토콜이다. SSL, TLS 프로토콜을 사용해 데이터를 암호화 한다. 즉, 서버와 브라우저 사이에 있는 모든 통신을 암호화 하여 보안성을 높인 것이다. 요즘은 모든 웹사이트는 웬만하면 HTTPS를 쓰는 듯. 그렇다면 무엇이 다른가요? HTTPS도 기본적으로 HTTP와 동일하게 작동하나 위에서 말 했듯이 보안 기능이 추가 되었다. 작동 방식 HTTP HTTPS 브라우저가 서버에게 요구(Request) → 서버에서는 원하는 데이터가 있는지 확인 있으면 응답(Response), 없으면 없는 데이터.. JAVA 문법 종합 1주차 - 2 처음 인텔리제이를 실행하면 기본적으로 나오는 코드다. public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } } 조금 해석해보자. - public class Main {: 클래스의 정의이다. - public: 클래스 경로 외부에서 실행시킬 수 있다고 표시해주는 "접근제어자" - class: 클래스 명 파일명과 일치 시켜야 하고 Java 컴파일러가 바이트코드 변환 했을 때 파일 확장명이랑 일치 된다. - public static void main(: main 메서드 정의. - public: 위와 마찬가지로 외부에서 실행 시킬 수 있다고 표시해주는 "접근제어자" - static: Java.. JAVA 문법 종합 1주차 - 1 JAVA 언어 어디서나 동작 가능한 언어. C언어 기능 +공통 실행환경 (JVM) , 클래스(대표적 객체지향) , 객체(object - 모든 '것' 특징과 행동을 가지고 있음) 안정성이 높아 오류를 방지하고 보안상 안정하는 특징을 가지고 있다. JVM? 자바 가상 머신 (Java Virtual Machine) 의 약자. 여러 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것. JVM 구성 바이트 코드 : 운영체제가 읽을 수 있는 코드(바이트 코드)로 JAVA컴파일러가 변환한 코드. Java 컴파일러란? 내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드💬(.class 파일) 로 변환하는 변환기 인터프리터 Java .class 코드 해석기 운영체제.. 이전 1 2 3 4 5 ··· 8 다음