분류 전체보기510 SpringSecurity 와 JWT 의 구조, 동작 과정 인증 : 해당 사용자가 본인이 맞는지 확인 인가 : 인증된 사용자가 요청한 자원에 접근 가능한지 권한 확인 Principal (접근주체) : 보호받는 Resource 에 접근하는 대상 Credential (비밀번호) :Resource 에 접근하는 대상의 비밀번호 인증 -> 인증 성공 후 -> 인가 인증과 인가를 위해 principal 을 아이디로, Credential 을 비밀번호로 사용한다. 스프링 시큐리티의 구조 1. AuthenticationFilter 에서 Http 요청을 받는다. 2. 해당 부분에서는 request 로 부터 username, password 를 가지고 와서 UsernamePasswordAuthenticationToken을 생성한다. 3. 생성된 UsernamePasswordAuth.. 2022. 10. 23. 데이터베이스(DB) 데이터 모델 현실 시계에 존재하는 데이터를 컴퓨터의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라고 한다. 모델링은 추상화 하는과정과 데이터베이스에 어떻게 저장할지 구조를 정하는 것이다. 예로, 뱀이라고 했을 때, 다리가 0개이며, 꼬리가 있고, 혀를 낼름거린다. 라고 하는것을 추상화 과정이라고 한다. 이러한 특징을 데이터베이스로 옮기는 것 까지를 모델링 과정이라고 한다. 모델링 과정은 현실세계의 사물의 중요한 데이터를 추출해서 개념세계로 옮기는 것을 개념적 모델링과정이라고 하며, 개념적 모델링 과정 이후, 데이터베이스에 저장할 구조를 결정하는 과정을 논리적 모델링이라고 하는데, 보통 합쳐서 데이터 모델링이라고 부른다. ( 데이터 모델링 = 개념적 모델링 + 논리적 모델링 ) 데이터 모델링은 현실 세계의 데이터.. 2022. 10. 22. 데이터베이스(DB) 데이터 언어 데이터 언어는 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리 시스템과 통신하는 수단이다. 1. 데이터 정의어 (DDL / Data Definition Language) : 스키마를 정의하거나, 수정 또는 삭제하기 위해 사용 2. 데이터 조작어 (DML / Data Manipulation Language) : 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용 3. 데이터 제어어 (DCL / Data Control Language) : 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용 데이터 정의어 (DDL / Data Definition Language) 새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 , 기존 스키마를 삭제 또는 수정하기 위해 사용하는 .. 2022. 10. 20. SpringSecurity DB 없이 테스트 방법 1. 기본인증 -> 처음 애플리케이션 시작하면 콘솔에 있는 랜덤 비밀번호 사용 Id : user (고정) password : 콘솔창 확인 2. yml에 사용자 추가하기 application.yml 에 사용자 추가하기 spring: security: user: name: user1 password: 1234 roles: USER 3. UserDetailsService 서비스 빈을 추가하기 USER , ADMIN 으로 테스트하기 위해서는 yml 에 추가하는 것으로는 불가능 서비스빈을 사용해 여러명을 등록 설정추가 ( @Configuration , @Bean 사용 ) @Configuration //설정 정보를 추가해준다 public class SecurityRoleTest { @Bean // 스프링 컨테이너에.. 2022. 10. 20. JWT (Json Web Token) 의 개념 JWT 는 당사자간의 정보를 JSON 객체로 안전하게 전송하기 위한 방법이다. 헤더 - Header 어떤 알고리즘이 사용되었는지 유형은 무엇인지 확인할 수 있다. 헤더에 있는 알고리즘으로 Signature에서 사용한다. 알고리즘은 SHA256 또는 RSA 를 대중적으로 사용한다. RSA 는 비대칭키 암호화 방식을 사용해 잠금한다. 공식홈페이지 예시로는 HS256 알고리즘을 사용하며, 유형은 JWT 라는 것을 알 수 있다. 페이로드 - Payload 민감한 정보를 담으면안된다. JWT 를 가지고 디코딩을 하면 해당 값을 모두 알 수 있기 때문이다. 클레임을 포함하고 있다 클레임이란 사용자 및 추가 데이터에 대한 설명을 의미한다. 구성된 페이로드는 Base64Url로 인코딩된다. 클레임은 3가지로 나뉜다. .. 2022. 10. 19. 세션(서버) 기반 VS 토큰 기반 차이 인증 (Authentication) : 사용자가 맞는지 확인 -> 로그인 인가 (Authorization) : 권한부여 -> 자신이 작성한 글 확인 등 ( 인증 이후 ) 1. 세션기반 인증 세션 기반 인증은 서버 기반의 인증방식이다. 따라서 서버 측에서 사용자들의 정보를 기억하고 있어야 하므로 stateful 한 구조를 갖는다. 사용자들의 정보를 기억하기 위해서는 사용자의 정보를 메모리에 저장한다. 클라이언트는 쿠키저장소에 서버로부터 받은 SessionID 를 저장한다. 장점으로는, 토큰방식처럼 signiture 등등 부가적인 정보가 없기 때문에, 주고받는 데이터가 적다 단점으로는, 서버에서 직접 정보를 저장하기 때문에, 정보를 저장하는데 한계가 있다. 하드디스크나 DB에 저장하기에는 작업이 느리고, 무.. 2022. 10. 19. 데이터베이스(DB) 스키마 스키마란? 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것을 의미한다. 스키마 예시 (=개념스키마) 고객번호 이름 나이 주소 INT CHAR(10) INT CHAR(20) 데이터를 데이터베이스에 저장하기 쉽기때문에, 많은 사용자가 이용한다. 하지만, 내부 구조와 동작 방식은 매우 복잡하기 때문에 이것을 모두 이해 하기 어렵다. 따라서 미국 표준화 기관에서는 내부 구조를 몰라도 일반 사용자가 쉽게 이해하고 이용할 수 있도록 제안했다. 외부단계로 갈수록 구체적이게 된다. 1. 외부단계 : 집주인 관점 2. 개념단계 : 관리인 관점 3. 내부단계 : 건설업체 관점 집주인은 자기의 집만 잘알면 되지만, 관리인은 하나의 집이아닌 , 한 동의 아파트에 대해 알아야하고, 건설업체는 한개의 아파트가 아닌, .. 2022. 10. 19. 데이터베이스(DB) 는 왜 등장했을까? 데이터베이스는 왜 등장했을까? 과거에는 데이터를 보관하기 위해 파일을 사용했다. ( 파일 시스템 ) 예로, 쇼핑몰을 운영하기 위해서 고객의 정보를 파일에 담아두고, 주문관리에 필요한 정보를 다른 파일에 담아 저장해 사용했다. 해당 쇼핑몰의 고객정보 담당자는 고객의정보와 고객이 무엇을 주문했는지 알아야 하기 때문에, 파일의 구조를 전부 알아야했으며, 주문담당자 또한 고객의정보도 같이 알아야 하는 번거로움이 발생했다. 파일 시스템으로 정리하면 장점은 별도의 구매비용이 들지 않는다는 것이지만, 치명적인 단점이 있다. 같은 내용의 데이터가 여러 파일에 중복 저장된다 (중복성) 고객명, 연락처, 주소 등 고객정보 파일과 고객주문 파일에 중복으로 저장된다. 실수로 한곳을 최신화하지 않으면, 데이터의 일관성이 유지되.. 2022. 10. 19. 데이터베이스(DB) 데이터 분류 (형태,특성) 데이터베이스의 가장 중요한 목적은 데이터를 모아두고 조회하는 것이다. 데이터를 수집하기 위해서는 수집하는 데이터의 유형을 파악하고 있어야 한다. 그 유형에 따라, 저장 및 처리 기술을 선택해 활용해야 한다. 1. 형태에 따른 분류 정형 데이터 : 정해진 구조가 있다 - 엑셀의 프레드시트 - 관계형 데이터 베이스 반정형 데이터 : 내용 안에 구조에 대한 설명이 있다. - HTML, XML - JSON 문서 비정형 데이터 : 정해진 구조가 없다 - 소셜 데이터의 텍스트 구조 - 영상, 이미지, 음성 2. 특성에 따른 분류 형태에 따른 분류를 더욱 자세히 보면, 다양한 특성의 데이터가 모여 있다. 범주형 데이터(종류)와 수치형 데이터(크기 비교, 연산)로 나뉘며, 통계적 관점에서 분석하기 위해 활용한다. 범주.. 2022. 10. 17. 이전 1 ··· 22 23 24 25 26 27 28 ··· 57 다음