본문 바로가기

전체 글

(86)
템플릿 엔진(Template Engine) 템플릿 엔진 (Template Engine)템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어뷰 코드 (HTML)과 데이터 로직 코드 (DB Connection)을 분리하는 역할템플릿 엔진의 필요성HTML에 비해 간단한 문법으로 코드 수 감소같은 페이지에 데이터만 바뀌는 경우에 활용하여 재사용성 높음하나의 템플릿으로 여러 페이지를 렌더링하는 경우가 있어 유지보수 용이 렌더링 주체에 따른 구분서버 사이드 템플릿 엔진클라이언트 사이드 템플릿 엔진 서버 사이드 템플릿 엔진서버에서 구동되는 템플릿 엔진서버에서 데이터를 미리 정의된 템플릿에 넣어서 HTML을 생성하여 클라이언트에 전달 ** 동작 과정클라이언트에서 요청 수신서버에서 데이터를 획득 (DB or API)템플릿에 데이터를 배치데이터가 반영..
2-20) DCL DCL (Data Control Language)데이터 제어어로, 객체에 대한 권한을 부여(GRANT)하거나 회수(REVOKE)하는 기능테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능 권한일반적으로 본인(접속한 계정) 소유가 아닌 테이블은 원칙적으로 조회 불가 (권한 통제)업무적으로 필요 시 테이블 소유자가 아닌 계정에 테이블 조회, 수정 권한 부여 가능 권한 종류 1. 오브젝트 권한테이블에 대한 권한 제어예) 특정 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권한테이블 소유자는 타계정에 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능 2. 시스템 권한시스템 작업 (테이블 생성 등)을 제어예) 테이블 생성 권한, 인덱스 삭제 권한관리..
2-19) DDL DDL (Data Definition Language)데이터 정의어데이터 구조 정의 (객체 생성, 삭제, 변경) 언어CREATE(객체 생성), ALTER(객체 변경), DROP(객체 삭제), TRUNCATE(데이터 삭제)AUTO COMMIT (명령어 수행 후 즉시 저장, 원복 불가) CREATE테이블, 인덱스와 같은 객체를 생성하는 명령어테이블 생성 시 테이블명, 컬럼명, 컬럼 순서, 컬럼 크기, 컬럼의 데이터 타입 정의 필수테이블 생성 시 각 컬럼의 제약 조건 및 기본 값은 생략 가능테이블 생성 시 소유자 명시 가능 (생략 시 명령어 수행 계정 소유)숫자 컬럼의 경우 컬럼 사이즈 생략 가능 (날짜 컬럼은 사이즈 명시 X) ** 문법 1소유자 명시는 테이블명 앞에 소유자명.테이블명 형태로 ** 문법 2 ..
2-18) TCL TCL (Transaction Control Language)트랜잭션 제어어 - COMMIT, ROLLBACKDML에 의해 조작된 결과를 작업 단위 (트랜잭션) 별로 제어하는 명령어DML 수행 후 트랜잭션을 정상 종료하지 않는 경우 LOCK 발생할 수 있음잠금 (LOCK)트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한잠금이 걸린 데이터는 잠금을 실행한 트랜잭션 만이 접근 및 해제 가능 (관리자 권한 제외)  트랜잭션데이터베이스의 논리적 연산 단위 (하나의 연속적인 업무 단위)하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함분할할 수 없는 최소의 단위ALL OR NOTHING 개념 (모두 COMMIT 하거나 ROLLBACK 처리) 트랜잭션의 특성원자성 (Ato..
2-17) DML INSERT테이블에 행을 삽입할 때 사용한 번에 한 행만 입력 가능 (SQL Server : 여러 행 동시 입력 가능)하나의 컬럼에는 한 값만 삽입 가능컬럼별 테이터 타입과 사이즈에 맞게 삽입INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능작성하지 않은 컬럼은 NULL이 입력됨NOT NULL 칼럼의 경우 오류 발생전체 컬럼에 대한 데이터 입력 시 테이블명 뒤의 컬럼명 생략 가능 ** 문법  예1) 여러 행 INSERT문자 컬럼에 숫자값 입력 가능 (권장 X)숫자 컬럼에 '001'처럼 숫자처럼 생긴 문자값 입력 가능 (권장 X) 예2) 서브쿼리를 사용한 여러 행 INSERT 예3) INSERT 시 컬럼 명시 생략으로 인한 오류INSERT할 컬럼명 명시하지 않으면 모든 컬럼 INSERT 시도 → 입력된..
2-16) 정규 표현식 정규 표현식문자열의 공통된 규칙을 보다 일반화하여 표현하는 방법정규 표현식 사용 가능한 문자함수 제공 (REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR,...)예) 숫자를 포함하는, 숫자로 시작하는 4자리, 두 번째 자리가 A인 5글자 등 표현 예) 일반화 규칙 찾아내기'숫자를 연속적으로 3개 이상 포함하는' 이라는 공통 패턴을 발견하여 표현할 수 있음 정규 표현식 종류[]는 안에 어떤 것이 들어가든 한 글자를 나타냄^a는 원래 'a로 시작하는'[^a] 로 [] 안에 들어가면 a를 제외한 모든 문자를 나타냄a{2} : aa 예) 전화번호의 일반화전화번호는 숫자와 -로 구성 : [0-9-]+ → (0-9- : 숫자 or -) (+ : 1개 이상)tel 값은 동시에 있고 )가 ..
2-15) PIVOT과 UNPIVOT 데이터의 구조 1. LONG DATA (Tidy data)하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조RDBMS의 테이블 설계 방식다른 테이블과의 조인 연산이 가능한 구조 2. WIDE DATA (Cross table)행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표하나의 속성값이 여러 컬럼으로 분리되어 표현RDBMS에서 WIDE 형식으로 테이블 설계 시 값이 추가될 때마다 컬럼이 추가돼야 하므로 비효율적!다른 테이블과의 조인 연산이 불가함주로 데이터를 요약할 목적으로 사용하나의 관찰대상 (속성)을 한 컬럼으로 정의하지 않고 값의 종류별로 컬럼을 분리 PIVOT교차표를 만드는 기능LONG 데이터를 WIDE 데이터로STACK 컬럼, UNSTACK 컬럼, VALUE 컬럼의 ..
2-14) 계층형 질의 계층형 질의하나의 테이블 내 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층 (depth)을 표현하는 기법예) DEPT2에서의 부서별 상하관계PRIOR의 위치에 따라 연결하는 데이터가 달라짐 ** 문법START WITH : 데이터를 출력할 시작 지정하는 조건CONNECT BY PRIOR : 행을 이어나갈 조건NOCYCLE : 순환이 발생하면 무한 루프가 될 수 있기 때문에 이를 방지하고자 사용 예1) DEPT2 테이블에 대해 각 부서의 레벨을 출력 (최상위 부서가 1 레벨) 잘못된 예) PRIOR 잘못 지정 시 아무것도 출력되지 않음! 예2) 계층형 질의 조건 전달 CASE1) CONNECT BY 절에 전달 : 연결 조건이 추가되었으므로 모든 조건이 만족할 경우만 하위 레벨로 연결됨 C..