트랜잭션(Transaction)

데이터를 보장하기위해 시스템에서 하나의 논리적 기능을 정상적으로

수행하기 위한 작업의 기본 단위이다.

 

 

 

트랜잭션의 특성

원자성: 하나라도 실패하면 전체가 취소되는 특성

일관성: 삽입,삭제,갱신 이후에도 일관되게 데이터가 유지되는 성질

고립성(격리성): 트랜잭션 중에는 그 어떤 작업도 방해 받을수 없는 성질

영속성(지속성): 한번 넘어온 데이터는 영구적으로 유지되는 성질

 

 

트랜잭션의 상태변화

부분 완료 - 완료

실패 - 철회

 

트랜잭션 제어

Commit :  영구적 저장 명령

Rollback : 저장 무효화 시키는 명령 ( 원래대로 돌아감 ) 

checkpoint: Rollback 되는 시점을 지정

 

 

병행 제어

 

여러 트랜잭션을 수행할 때 데이터베이스를 일관성을 유지하기 위해 상호작용 하는 기법

 

병행 제어 미 보장시 문제점

(갱현아 모연냐~?)

갱신 손실 : 먼저 수행된 트랜잭션 결과를 다른 트랜잭션이 덮어쓰면 발생

현황파악오류 : 먼저 수행된 트랜잭션의 중간결과를 다음 트랜잭션이 참조하면서 발생

모순성 : 두 트랜잭션이 동시에 시작되어 발생하는 일관성 결여 오류

연쇄복귀 : 취소가 안되는 상황 

 

병행제어 기법

로킹:  트랜잭션 순차적 직렬화 기법

낙관적검증: 트랜잭션이 다 끝나고 검증을 진행

타임스탬프순서: 작업마다 타임스탬프를 부여하여 제어하는 기법

다중버전 동시성제어: 버전 선택하는거

 

회복기법:

로그기반 회복기법

-지연갱신 : 트랜잭션 완료 후 반영하는 기법

-즉각갱신 : 그 즉시 바로바로 반영 기법

 

체크포인트 회복기법 : 체크포인트를 걸어두고 오류나면 체크포인트 시점으로 돌아감

 

그림자 페이징 회복기법: 복사본 만들어 놓고 잘못되면 복사본 사용

 

DDL

도메인, 스키마(외부,개념,내부),테이블,뷰,인덱스

 

스키마

외부 - 논리적

개념 - 전체적인

내부 - 물리적

 

 

테이블 생성

CREATE TABLE [테이블명] (

     IfmmSeq PRIMARY KEY NOT NULL;

)

테이블 삭제

DROP TABLE [테이블명]

 

📌CASCADE 연관된 것 연쇄적 모두 삭제

📌RESTRICT 참조 중이면 제거 하지 않는 옵션

📌TRUNCATE 테이블 내 데이터 모두 삭제 

 

인덱스 생성

CREATE INDEX [인덱스명] ON [테이블명]

 

인덱스 삭제

DROP INDEX[인덱스명]

 

 

데이터 삽입 

 insert into 사람 VALUES ("박찬희", "F");

 

컬럼 추가 

ALTER TABLE 사람 ADD 나이 int(3);

 

컬럼 속성 변경

ALTER TABLE 사람 MODIFY 나이 varchar(100);

 

컬럼 이름 변경

ALTER TABLE 사람 CHANGE 나이 age varchar(255);

 

데이터 삭제 

DELETE FROM 사람 WHERE 이름 = '김진짜';
 

뷰 생성

CREATE VIEW 기머뷰 AS SELECT 이름, 나이 FROM 사람 WHERE 이름 = '김진짜';
 

뷰 조회

SELECT * FROM 기머뷰;

 

뷰 삭제

 DROP VIEW 기머뷰;

 

컬럼삭제
 ALTER TABLE 사람 DROP 나이;

 

SELECT [컬럼]

FROM [테이블명]

GROUP BY [컬럼명]

HAVING [컬럼명] 조건식

ORDER BY [컬럼명] DESC or ASC ; (DESC 내림차순, ASC 오름차순)

WHERE [컬럼명] 조건식 ;

마지막에 세미콜론 잊지말기

 

WHERE LIKE '이%'   맨앞에 '이'

LIKE '%이%' 이가 들어간 것 찾기

LIKE _psy 앞에 한칸 비우고 psy가 들어간것 

 

조인문도 중요함

SELECT A.컬럼 , B.컬럼

FROM [테이블명] AS A

LEFT JOIN [테이블2명] AS B 

ON A.[컬럼명] = B.[컬럼명]

 

 

Union = 중복 배제

UNION ALL = 중복포함

INTERSACT = 교집합

MINUS = 차집합 

 

GRANT [명령어] ON [테이블명] TO [사람이름]

 

REVOKE [명령어] ON [테이블명] FROM [사람이름] 

 

 

절차형 SQL 

프로시저 : 쿼리의 집합

사용자 정의함수: 절차형 SQL

트리거 : 이벤트 수행

 

 

 

웹 서버 : HTTP 이용한 요청 /응답처리

웹 애플리케이션 서버 : Tomcat

데이터베이스 서버 : MYSQL

파일 서버: HDD,SSD

 

형상관리

SW가 만들어지는 시작부터 끝까지 일련의 과정을 

관리해주는 것을 말한다.

 

형상식별 : 정의 및 식별하는 기능

형상통제 : 형상 통제위원회

형상감사 : 베이스라인의 무결성 평가

형상기록 : 일련의 과정을 기록하는 것

 

공퓨 폴더 - RCS 한사람만 수정 가능

서버- 클라이언트 - CVS : 여러사람 수정가능

분산 저장소 - GIT : 로컬과 웹을 나눈 분산처리방식

 

 

모듈:

하나의 완전한 기능을 수행할수 있는 독립된 실체이다.

 

응집도: 모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소간 연관 정도

(기순교 절에서 시간,논리가 우연적이었다)

기능적 응집도 : 모듈 내 단일 목적으로 작동하는 응집도

순차적 응집도 : 모듈 내 한 활동을 다른 활동에 사용

교환적 응집도 : 동일한 입력과 출력을 다른 활동에 사용함

절차적 응집도 : 순차적으로..

시간적 응집도 : 시간적으로 겹치는 경로들끼리 처리

논리적 응집도 : 유사한 비슷한 것끼리 한꺼번에 처리

우연적 응집도 : 연관성이 없음

 

📌응집도는 높을 수록 좋은 품질이다.

 

결합도: 모듈 내부가 아닌 외부의 모듈과 연관도 또는 모듈간의 상호의존성이다.

(자스민 제외하고 공내놔)

자료 결합도 : 파라미터 내에서만 사용

스탬프 결합도 : 배열, 기능....

제어 결합도 : 어떻게 처리해야하나 

외부 결합도 : 외부의 디바이스 인터페이스 이용

공통 결합도 : 파라미터가 아닌 모듈밖에 선언되어있는 전역변수

내용 결합도 : 다른 모듈 내부에있는 변수나 기능을 사용

 

결합도는 낮을수록 높은 품질이다.

 

FAN-IN  : 주는~ 보통 A0

FAN-OUT : 받는~ A0은 아님

 

DAO: 세부내용 노출 없이 데이터 조작

DTO: 데이터를 전송하는 개체로 데이터 저장 회수외 다른 기능없음

VO : DTO와 달리 고정 클래스를 가짐

 

 

백엔드: 프론트엔드와 연동하여...

 

프론트엔드:  사용자 화면에 나타는 웹..

 

 

크론표현식

 0 0 12 * * : 매일 12시 실행

 0 * 12 * * : 12시 ~ 12시 59분까지 매 분마다 실행

 

SW 개발 보안의 3대요소

(기무사 가~)

기밀성: 인가받지 못하면 개인으로부터 노출을 막음

무결성: 부적절한 경로의 데이터 변경을 변경되지 않음

가용성: 권한이 있는 사용자의 사용을 보장

 

SW 개발보안용어

자산 : 가치를 부여하는 것

위협 : 악영향을 끼치는 행위

취약점 : 약점

위험 : 취약점으로부터 피해가 올 가능성

 

DOS : 해커 혼자서 피해자를 공격해 트래픽 자원을 소모시켜 정상적인 작동을 못하게 만드는것

SYN 플로딩 : ICMP의 구조적 문제를 공격

스머핑 : 브로드캐스팅을 직접 마비공격

죽음의핑 : 핑을 비정상적으로 크게하여 공격

랜드어택 : 시작점과 출발점을조작하여 트랙피자원소비

보잉크,봉크 : 과부하 유발 패킷전송과 재전송

 

DDOS 공격 :

DOS공격보다 업그레이드 형태로 공격자가 여러대의 컴퓨터를 감염시켜 명령을 내려 감염된 컴퓨터들이 공격 분산공격이라고도함

 

핸들러

에이전트

마스터

Attacker

Daemon

Trinoo: UDP flood 서비스 거부 공격

Tribe Flood network : 좀더 쌘 버전 ㅋ

 

DROS : DDOS보다 업그레이드 된 버전으로 위치추적조차도 불가능함.

애플리케이션 공격

HTTP GET FLOODING : 과도한 GET 메세지, 케시 옵션을 조작

Slowloris: HTTP GET메서드를 이용하여 ...

RUDY: content-length

 

 

 

네트워크 공격

스니핑 : 몰래 정보를 들여다보고 가는것

네트워크 스캐너 = 스니퍼 : 취약점을 스윽 보고탐색하고 가는것

패스워드 크래킹

-사전 크래킹  : ID와 PW

-무차별 크래킹 : 영문자 

-패스워드 하이브리드 공격 : 무차별 대입공격

-레인보우 테이블 공격 : 해시 공격 (안나올거같음)

IP 스푸핑 : IP 주소를 몰래바꿈

ARP 스푸핑 : MAC의 주소를 바꿈

트로이 목마 : 정상적인척 하면서 비정상적 활동

 

버퍼 오버 플로우

스택 오버 플로우

힙 오버 플로우

 

스택가드 : 키나리 

스택쉴드  :GLOBAL RET 

 

이블트윈 : 와이파이 공격

난독화: 보기어렵게 난독하는거

악성 봇 : 좀비 피씨

랜섬웨어: 파일 잠기

 

인증

지식기반 : ID, PW

소지기반 : OTP , 공인인증서

생체기반 : 지문, 홍채

특징기반 : 서명

 

접근통제기법

식별Identification - 자신을 알림

인증Authentication - 신원을 검증

인가Authorization - 허가 해줌

책임추적성Accountablility - 추적

 

DAC 그룹신분

MAC  허용등급
RBAC 

 

 

접근통제 보호모델

 

벨-라파듈라 - 기밀성

비바 - 무결성

 

 

암호 방식

대칭키 : 블록 + 스트림

DES: 1975 연방 표준국(NIST)에서 만든 64, 56 기가 짜리

SEED : 1999 한국진흥국에서 만듬 

AES : 2000년 미국표준연구소에서 만든 128 기가 128 192 256 기가

ARIA: 국가정보원 + 산합기술협회에서 만듬

IDEA : 스위스 에서만듬

LFSR: 선형, XOR 배타적, 임

 

비대칭키

디퍼-헬만: 최초의 공개키 알고리즘

RSA: MIT 수학교수가만듬 소수인분해 수학적 알고리즘

ECC : 타원형

ELGAMAL: 엘가말이 만듬 전자서명

 

해시알고리즘

MD-5: MD-4를 업그레이드 시킴 1991년 R-rivest가 MD4 개선함, 512비트

SHA-1 : 160 비트의 해시값 생성, 1993년 NSA에서 미 정부 표준으로 

SHA-256 : sha-1과 다른 종류의 버전음

HAS-160: 국내표준서명알고리즘

 

IPSEC : 3계층에서 무결성

AH: 인증

ESP: 암호화

IKE: 키 관리

 

SSL/TLS 4~7계층에서 무결성 관리

 

S-HTTP 뭐.. 알아서 나오겟지?

 

SDLC 모범사례 - Seven touch points

 

XSS

CSRF

SQL injection

 

 

결함집중 : 파레토 법칙

살충제 패러독스 : 비슷한 것만 자주 검사하면 오히려 무의미함

오류-부재의 궤변 : 요구사항을 못맞추면 오류나는것보다 못한거임

 

 

정적 테스트 : 구조를 분석하여 논리성 검증

동적 테스트 : 직접 테스트하여 수행 결함을 검출: 화이트박스 ,블랙박스, 경험기반

화이트박스 테스트: 내부구조 와 동작를 검증하는 테스트

블랙박스 테스트 : 명세기반 테스트

 

구문 커버리지 : 다 한번씩 해보는거

결정 커버리지 : 

 

동등분할테스트: 유효값, 무효값을 그룹핑

경계값 분석:  경곗값을 포함하여 

복사했습니다!