2021/07/28 9

[ SQLD 이론 기초 ] Chapter 08. 백업 및 복구

1. 지속성과 성능이 양립하는 구조 로그 선행 기입 기법 write-ahead logging 모든 수정은 적용 이전에 로그에 기록됨 데이터베이스 버퍼 데이터 파일로의 입력을 데이터베이스 버퍼 경유로 일원화 트랜잭션마다 버퍼 취할 경우 로그와 데이터 파일 간 일관성 저하 효율적인 데이터 일관성 유지 Crash 발생 시, 발생 순간까지 쓰기 한 포인트 지점까지 데이터파일에 적용함. 2. 백업 및 복구 백업의 3가지 관점 - 핫 백업 : DB 정지 안하고 백업 콜드 백업 : DB 끄고 백업 - 논리 백업 : SQL 문으로 백업 물리 백업 : 데이터를 그대로 덤프하는 이미지로 바이너리 형식 기록 - 풀 백업 : 전체 백업 부분 백업 : 풀 백업 이후 갱신된 데이터를 백업 -> 증분 백업 : 그날 바뀐 부분만 -..

Database 2021.07.28

[ SQLD 이론 기초 ] Chapter 07. 테이블 설계

1. 테이블 설계의 기초 테이블이란 데이터 관리 및 저장하는 장소 2차원 표와 유사 2. 테이블 설계 규칙 집합을 나누는 방법 기본키의 중요성 기본키는 특정 집합에서 특정 행을 유일하게 식별할 수 있는 속성의 집합 기본키는 중복되면 안됨. NULL 허용 안됨. 3. 정규형 테이블을 정의하는 기본 형태. 제대로 된 형태를 뜻함. 정규형을 지키는 행위를 정규화 위반이라 부름 1NF 위반 테이블의 셀에 여러 개의 값을 포함하지 않는다 한 컬럼에 두가지 값이 들어가 있음 * 함수 종속성 테이블은 함수와 같아 기본키의 값을 입력하면 특정 출력 값이 나오는 구조이다 입력 X의 경우 반드시 한 개의 출력 Y 결정됨 2NF 부분함수 종속성을 허용하지 않음 기본키를 구성하는 열의 일부에만 함수 종속이 존재함 이러한 경..

Database 2021.07.28

[ SQLD 이론 기초 ] Chapter 06. 트랜잭션

1. 트랜잭션이란 시스템에 요청명령을 한부에 끝낸 상태 트랜잭션의 4대 특징 - 원자성 : 데이터 조작이 전부 성공 혹은 실패할지 보증하는 구조 - 일관성 : 데이터 조작 전후에 일관성 유지 필요 - 고립성 : 복수 사용자가 동시에 데이터 조작 실행할 경우 각각의 처리가 모순 없이 실행되는 것을 보증 - 지속성 : 데이터 조작 완료 후 완료 통지 받는 시점에서 결과를 잃지 않는 것. 즉, 트랜잭션이 Commit 되고 나면 데이터 변경 사항이 영구적으로 확정되도록 보장하는 것. 2. 트랜잭션 처리의 필요성 원자성 트랜잭션은 전부 성공하거나 혹은 전부 실패해야 한다. 부분 성공이라는 단어는 절대로 존재하면 안됨 고립성 사용자 A가 해당 데이터를 조작중이라면 다른 사용자들은 사용자 A가 작업이 끝날때까지 데이..

Database 2021.07.28

[ SQLD 이론 기초 ] Chapter 05. SQL기본

* 오라클 기본 아키텍처 - Oracle Listener : 인증 - Server Process : SGA와 통신 - SGA : 버퍼캐시. (캐시 매커니즘) - Redo Log File : 복구를 위해 로그 저장 1. SELECT 문 DUAL 테이블 : 연산 처리 시 사용 SELECT (10 + 5) / 2 AS VAL FROM dual; ORDER BY 문 디폴트가 ASC ASC : 오름차순 DESC : 내림차순 SELECT Name FROM CUSTOMERS ORDER BY NAME DESC; SELECT DISTINCT DISTINCT문을 쓰면 SELECT절의 기재된 값이 중복이 제거되어 출력된다. 유일한 ROWS을 출력 WHERE절 : SELECT절에 조건을 주어 검색함 LIKE : 특정 문자열 ..

Database 2021.07.28

[SQLD 이론 기초] 3. 데이터베이스 아키텍처

1. 아키텍처란 시스템의 구성 요소와 이를 조합하는 물리적, 논리적 구조를 의미합니다. 이에는 서버의 기능, 저장소, 네트워크 장치 등이 포함됩니다. 2. 아키텍처의 개요 stand-alone 네트워크 연결이 필요 없이 독립적으로 작동하는 시스템 구축 과정이 단순하고, 보안성이 높다. 확장성이 제한적, 원격 접근 불가, 주로 단일 사용자만 사용 가능. 클라이언트/서버 단계 중앙 서버와 이를 사용하는 클라이언트로 구성됨. 여러 사용자가 동시에 서비스를 이용할 수 있다. 동시 다발적인 접근 가능. 보안 측면에서 위험 요소가 존재. WEB3 계층 시스템을 3가지 계층의 조합으로 인식함 (WEB, WAS, DBMS) 보안이 향상됨. 비즈니스 로직이 집중됨. 각 계층간의 통신 오버헤드가 발생할 수 있음 3. 가용..

Database 2021.07.28

[SQLD 이론 기초] 2. 관계형 데이터베이스

1. 관계형 데이터베이스란 관계형 데이터베이스 키와 값들의 간단한 관계를 테이블화한 데이터베이스 입니다. 관계형 모델 집합론에 기반을 둔 일종의 데이터베이스 모델 테이블 (행,열) 안에 데이터가 저장됨 각각의 로우를 식별하는 기본키가 있음 row : record, tuple column : field, attribute 2. SQL 기초 지식 SQL이란 RDBMS의 데이터를 관리하기 위한 특수목적의 프로그래밍 언어. 세계 표준 용도 관계형 데이터베이스에서 데이터를 조회 및 갱신하기 위한 언어 SELECT SELECT "검색하고자 하는 컬럼" FROM "테이블" WHERE "검색하고자 하는 컬럼의 조건" AND "컬럼" NOT LIKE "조건" AND "컬럼" LIKE "조건" INSERT INSERT I..

Database 2021.07.28

[SQLD 이론 기초] 1. 데이터베이스란

* 해당 포스팅은 패스트캠퍼스 '데이터베이스와 SQLD 합격패스 Online' 강의를 듣고 공부한 내용을 정리한 것입니다. 1. 데이터베이스란 다양한 정보를 체계적이고 효율적으로 관리하기 위해 컴퓨터 시스템에 전자적으로 저장된 데이터의 집합을 의미합니다. 대용량의 데이터를 저장하고 조회합니다. 데이터베이스를 사용하기 전에는 '텍스트 파일형태'로 저장하고 관리합니다. DBMS (데이터베이스 관리 시스템) 데이터베이스에 저장된 데이터를 관리하고, 사용자의 요구사항에 따라 적절하게 처리하고 응답해주는 시스템입니다. 사용자는 복잡한 내부 구조나 데이터의 물리적 위치에 신경 쓰지 않고, 필요한 정보에 직접적으로 접근하고 활용할 수 있습니다. 특징 실시간 접근성 : 사용자의 요구에 따라 실시간으로 데이터베이스 내 ..

Database 2021.07.28

[Spring Security] 3-1. Authentication: Architecture

1. SecurityContextHolderSpring Security의 인증 모델의 핵심 SecurityContext가 들어있음 (현재 인증된 사용자 정보)인증이 필요할 떄 꺼내서 사용 권한을 검사하거나 인증 여부를 확인함SecurityContextHolder에 인증 정보가 존재하면, 그 사용자는 인증된 사용자로 간주됨 저장 방식ThreadLocalThreadLocal을 이용해서 현재 인증 정보인 SecurityContext를 저장함같은 스레드 내의 메서드들은 SecurityContext를 전달하지 않고도 사용할 수 있음요청 처리가 끝나면 FilterChainProxy가 SecurityContext를 지워줌 저장 전략전략설명 MODE_THREADLOCAL (기본값)현재 스레드에만 인증 정보 저장 MOD..

[Spring Security] 1. Architecture

1. A Review Of Filters Spring Security는 Servlet Filter 기반으로 동작함 동작 방식더보기클라이언트: 요청 보냄서블릿 컨테이너: 필터들을 묶어 FilterChain 생성서블릿 컨테이너: 요청 경로를 기준으로 어떤 Filter들이 요청을 처리할지 결정. Servlet FilterHTTP 요청을 처리하기 위한 사전/사후 작업용 인터셉터 동작구분설명결과stop이후의 필터나 서블릿에 요청을 전달하지 않음Filter가 직접 응답 작성modifyHttpServletRequest 또는 HttpServletResponse를 수정한 뒤 전달수정된 객체가 하위로 전달됨 FilterChain여러 개의 Servlet Filter가 연결된 객체✅ 요청을 다음 필터로 넘길지 결정할 수 있음..