본문 바로가기

개인 학습 메모장

(103)
Spring Security 3: SecurityFilter #2 DefaultLoginPageGeneratingFilter 로그인페이지 연결해주는 필터 스프링 시큐리티를 적용했을 때 자동으로 생성되는 로그인 페이지 AuthenticationProcessingFilter 1. 사용자가 인증 요청을 보내면 AuthenticationProcessingFilter를 거친다. 2. 인증 필터에서는 검증되지 않은 Authentication 객체를 생성해서 AuthenticationManager에 전달한다. 3. AuthenticationManager는 인증은 검증하고 인증된 정보(인가 등)을 다시 반환하고 사용자의 인증 과정이 완료된다. 큰 흐름은 위 순서로 진행되며 앞서 작성한 객체들은 모두 인터페이스로 작성되어 있으며 알맞은 구현체에서 작업을 수행한다. 구현체(번외) Aut..
Spring Security 2: SecurityFilter #1 이번 시간에는 스프링 시큐리티의 다양한 필터들에 대해 하나씩 알아보도록 하자. 그 전에 필터와 인터셉터의 차이 먼저 짚고 넘어가자. 필터 - 자바의 서블릿 기반 웹 애플리케이션에서 사용된다. 즉, 서블릿 명세에 정의된 구성 요소로서 웹 애플리케이션의 요청과 응답을 가로채는 역할을 한다. 인터셉터 - 스프링 프레임워크에서 제공되는 기능(디스패처 서블릿이 컨트롤러로 요청을 전달하기 전후로 특정 작업을 전달하는 기능 필터는 요청이 들어오자마자 처음으로 거치는 단계. 스프링 컨텍스트 외부에서 작동하며 톰캣 같은 서블릿 컨테 이너 수준에서 작동 인터셉터는 필터를 거친 후, 스프링의 DispatcherServlet이 컨트롤러로 요청을 처리하기 전과 후에 동작 사실 위와 같이 설명을 했지만 스프링 버전 1.2부터 D..
MySQL 기본: SQL 고급 MySQL의 데이터 형식 MySQL에서 지원하는 데이터 형식의 종류 숫자 데이터 형식 문자 데이터 형식 날짜와 시간 데이터 형식 기타 데이터 형식 변수의 사용 SET @변수이름 = 변수의 값; // 변수 선언 및 값 대입 SELECT @변수이름; // 변수의 값 출력 SET @myVar1 = 5; SELECT @myVar1, Name FROM users WHERE height > 180; //이런식으로 사용 가능 데이터 형식과 형 변환 SELECT AVG(amount) AS '평균 구매 개수' FROM buys; SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수' FROM buys; SELECT CONVERT(AVG(amount), SIGNED INTEG..
MySQL 기본: SQL 기본 SELECT 문 원하는 데이터를 가져와 주는 기본적인 use 테이블 이름 USE employess; SELECT * FROM employees.titles; SELECT * FROM titles; SELECT first_name FROM employees; 작성 방법은 위와 같으며 특정 테이블에서 모든 속성, 특정 속성을 가져올 수 있고 특정 테이블의 속성에서 값을 가져올 수 있다. 특정한 조건의 데이터만 조회하는 SELECT * FROM USERS WHERE name = '김경호'; //기본적인 where절 SELECT userId, Name FROM users WHERE birthYear >= 1970 AND height >= 182; // 관계 연산자 이용 SELECT name, height FRO..
MySQL 기본: 데이터베이스 모델링 프로젝트의 진행 단계 프로젝트: 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정 과거, 큰 규모의 프로젝트인 경우 무작정 코딩을 하는 경우가 많아 실패하는 경우가 많았다. 따라서 '소프트웨어 개발 방법론'이 나타났는데 가장 오래되고 전통적인 방법론은 폭포수 모델이다. 이 과정은 프로젝트의 계획 -> 업무 분석 -> 시스템 설계 -> 프로그램 구현 -> 테스트 -> 유지보수의 단계를 거친다. 하지만 프로젝트의 도중 요구사항이 바뀌거나 변화하는 요소가 자주 발생하기 때문에 요즘에는 애자일 방법론을 많이 선택하는 추세이다. 이렇듯 복잡한 시스템을 성공적으로 구현하기 위해서는 설계가 굉장히 중요하다. 데이터베이스 모델링 데이터베이스 모델링 개념 데이터베이스 모델링: 현실에서 쓰이는 것을 테이블로 변경하..
MySQL 설치 및 DB 구축과정 미리 실습하기: MySQL 전체 운영 실습 chapter 2는 MySQL 설치법만 나와 있어서 공식문서만 봐도 충분하기에 다음 챕터를 정리하고자한다. 요구사항 분석과 시스템 설계 그리고 모델링 정보시스템 구축 절차 요약 정보시스템을 구축하기 위해서는 일반적으로 분석 -> 설계 -> 구현 -> 시험 -> 유지보수 의 단계를 거친다. 분석 단계는 시스템, 요구사항을 분석하며 우리가 무엇(what)을 할지 결정한다. 다음으로 설계 단계에서는 우리가 구축하고자 하는 시스템을 어떻게(how)할 것인지 결정한다. 이 과정이 시스템을 구축하는데 가장 중요하고 많은 시간이 쓰이는 부분이기도 하다. 너무 추상적이므로 다음의 도서관리 시스템 예시를 통해 이해해보자 분석 단계: 사용자는 웹사이트를 통해 도서를 검색하고 선택할 수 있어야 한다. 사용자는 선택한 도서를..
Spring Security 1: Spring Security 이번 스프링 시큐리티를 공부하며 느낀 것인데 스프링 시큐리티 라는 프레임워크는 방대하고 디버깅, 내부 코드를 들여다보지 않는다면 이해하기가 쉽지 않다는 생각이 들었다. 따라서 공부의 깊이는 아래의 요구사항을 만족하는 코드를 작성하는 데 문제가 없을 정도로 할 생각이다. 너무 방대한 프레임워크이기도 하고 앞으로 내가 서비스를 개발 하며 로그인을 직접 구현하는 일은 없을 것 같아(대부분의 서비스는 이미 개발되어 있는 기능 이라고 생각) 목표 설정을 아래와 같이 잡았다. 1. 새롭게 변경된 스프링 시큐리티 버전 6.1 코드 2. 스프링 세션과의 통합 3. 토큰 기반 사용자 인증 4. OAuth 인증 스프링 시큐리티란? 강력하고 커스터마이징 가능한 인증, 인가처리 프레임워크 스프링 베이스 어플리케이션의 사실상 ..
MySQL 설치 및 DB 구축과정 미리 실습하기: DBMS 개요와 MySQL 소개 글 작성에 앞서 최근 데이터베이스 관련 지식을 꽤나 까먹은 것 같아 복습할겸 정리하고자 한다. 책은 '이것이 MySQL이다'를 보고 정리했다. 책은 총 4개의 파트로 이루어져 있고 각 파트당 챕터가 여러개 있는 형식이다. 글은 챕터단위로 작성할 것이며 챕터 내의 소제목을 기준으로 문단을 나눠 글을 작성할 것이다. DBMS 개요 데이터베이스의 정의와 특징 데이터베이스: 대용량의 데이터 집합을 체계적으로 구성해 놓은 것 DBMS: 데이터베이스를 관리하는 소프트웨어 시스템 데이터베이스의 특징 무결성: 데이터에 오류가 있으면 안됨 예시) 학생 데이터에서 모든 학생은 학번이 있어야 하며, 각 학생의 학번은 서로 중복되면 안 되는 제약 조건이 있다. 즉 학번이라는 데이터를 통해 무결한 데이터로 보장할 수 있다. 데..