기억해 두면 좋은 IT 지식 4 - 트랜잭션 특성, 스키마, 블랙박스 테스트
순수 관계 연산자
Selection(릴레이션 행, 수평 연산), Project(릴레이션 열, 수직 연산), Join, Division
트랜잭션(transaction)의 4가지 특성
원자성(Atomicity) : 트랜잭션의 포함된 작업들은 전부 수행되거나, 또는 아예 수행되지 않아야 한다.
일관성(Consistency) : 트랜잭션이 성공적이라면 일관성 있는 상태에 있어야 한다.
독립성(Isolation) : 모든 트랜잭션은 다른 트랜잭션과 아예 독립적으로 수행되는 것처럼 보여야 한다.
지속성(Durability) : 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야 한다.
&는 백그라운드 처리를 위해 명령어 끝에 입력하는 유닉스의 주요 명령어이다.
시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.
자료 흐름도(DFD)의 구성요소
-프로세스(process) -> 자료 흐름(data flow) -> 자료 저장소(data store) -> 단말(terminator)
블랙박스 테스트(Black Box Test)
소프트웨어가 수행할 특정 기능을 알기 위해서 수행한다. 각 기능이 완전하게 적절히 작동되는 것을 입증하는 기능 검사다.
소프트웨어 인터페이스에서 실시한다.
원인-효과 그래프 검사(cause-effect graphing testing), 동치 분할 검사(Equivalence Partitioning Testing)
경곗값 분석(Boundary Value Analysis), 비교 검사(Comparison오류 예측 검사(Mutation Testing) 등이 있다.
소프트웨어의 각 기능별로 적당한 입출력 영역을 정하여 적절한 입력에 대한 출력의 정확성을 검증한다.
자료 사전에서 정의는 '=', 연결은 '+', 생략(optional)은 '()', 선택은 '[]', 반복은 '{}', 설명은 '**'로 표시한다.
람바우 모델
객체 모형(Object), 동적 모형(Dynamic), 기능 모형(Functional) 3개의 모형으로 나눠서 접근하는 방법이다.
객체 모델 : 객체, 속성, 메서드 식별
동적 모델 : 조건, 사건, 상태도, 활동을 파악
기능 모델 : 객체 간의 자료 흐름도
• 셀렉트(σ) : 릴레이션에서 조건을 만족하는 튜플을 셀렉트 한다.
• 프로젝트(π) : 릴레이션 중 주어진 속성들의 값으로만 구성된 튜플을 구한다.
• 조인(▷◁):같은 속성을 이용해서 두 릴레이션을 연결하여 생성된 튜플을 구한다.
• 디비전(÷) : 나누어지는 릴레이션(B)에서 나누는 릴레이션(A)의 모든 튜플과 관련이 있는 튜플을 구한다.
스키마(schema)
스키마는 데이터베이스의 구조와 제약조건에 관한 전반적인 명세(specification)를 기술(description)한다.
스키마는 데이터베이스를 구성하는 데이터 개체(entity), 속성(attribute), 관계(relationship), 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의한다. 사용자의 관점에 따라 외부 스키마, 내부 스키마, 개념 스키마로 나뉜다.
스키마는 데이터 사전(Data Dictionary)에 저장된다. 그리고 현실 세계의 특정 부분의 표현으로서 어떠한 데이터 모델을 이용해서 만들어진다. 시간이 지나도 변하지 않는 특성을 갖는다. 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
FCFS (First Come First Served , FIFO)
제일 간단한 스케줄링 형태로 대기 큐에 들어온 순서대로 CPU를 할당한다. 도착 순서에 따라, 요청 순서대로 진행하기 때문에 공평함이 보장된다. 디스크의 부하가 적을 때 사용하는 것이 유리하고, 부하가 커질수록 응답 시간은 길어진다. 탐색하는 데 걸리는 시간을 최적화하려는 일말의 시도조차 없다.
SSTF (Shortest Seek Time First)
지금의 헤드 위치에서 제일 가까운 입출력 요청을 먼저 서비스한다. 탐색 거리가 제일 짧은 요청을 먼저 서비스하는 기법이다. 방향은 전후가 무관하다. 묻고 따지지도 않고 가까운 것만 서비스하므로 공정성이 떨어지고, 트랙별 서비스를 받는 편차가 커진다.
SCAN
지금 진행 방향 중에서 가장 가까운 곳에 있는 것을 처리한다. 엘리베이터 처리라고 한다. 엘리베이터를 탄다고 생각하면 된다. SSTF처럼 한쪽만 치우지는 차별대우를 많이 없애서 그들보다는 낮은 편차를 가진다
C-SCAN (Circular - SCAN)
SCAN에서도 불공평한 대기시간이 존재하는데, 이를 좀 더 균등하게 하려고 변형을 가한 것이다. 헤드는 항상 바깥쪽에서 안쪽으로 이동하면서 제일 짧은 탐색 시간을 가지고 있는 요청을 서비스한다.
분산처리 시스템
여러 사용자들끼리 통신하기도 쉽고, 데이터도 공유할 수 있고, 제한된 장치를 여러 지역의 사용자가 공유할 수도 있다. 또한, 중앙컴퓨터의 과부하를 줄여주고, 사용자는 어디에 존재하는지도 모르는 자원을 사용할 수 있고, 업무량이 증가해도 시스템의 점진적 확장이 용이하다. 하나의 일을 여러 시스템이 처리하기 때문에 속도와 신뢰도, 사용 가능도가 개선된다. 그러나, 중앙집중형 시스템에 비하면 소프트웨어 개발이 어렵고 보안 문제가 발생하고 시스템 유지상 중구난방으로 확장하면 통일성을 잃기가 쉽다. 게다가 시스템의 설계도 복잡하고 데이터 처리 서비스의 질은 떨어진다는 단점이 있다.
프로세스를 나타내는 단어들
실행 중인 프로그램, PCB를 가진 프로그램, 실기억 장치에 저장된 프로그램, 프로세서가 할당되는 실체, 프로시저가 활동 중인 것, 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작, 목적 또는 결과에 따라 발생되는 사건들의 과정
Sector Queuing : 회전 시간의 최적화를 위해 구현된 디스크 스케줄링 기법이다. 회전 시간의 최적화하면 섹터 큐잉이다.
소프트웨어 품질목표 중 알아두어야 할 것
Correctness(정확성) : 사용자의 요구 기능을 충족시키는 정도
Integrity(무결성) : 허용되지 않는 사용이나 자료의 변경을 제어하는 정도
Flexibility(유연성) : 새로운 요구사항에 맞게 얼마큼 쉽게 수정할 수 있는 지의 정도
Portability(이식성) : 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정할 수 있는지의 정도
럼바우 분석 기법
객체 모델링 (Object) : 객체도를 작성한다. 정보 모델링이라고도 한다. 시스템에 요구되는 객체를 찾아서 속성과 연산 식별 및 객체들 간의 관계를 규정한다.
동적 모델링 (Dynamic) : 상태도 작성, 시간에 흐름을 따른 객체들 사이의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현한다. 상태도를 작성하면 동적 모델링이다. 상동이라고 외운다.
기능 모델링 (Functional) : 자료 흐름도를 이용하여 처리과정을 표현한다. 자료 흐름도 하면 기능 모델링이다. 기자라고 외운다.
fan-in : 어떤 모듈을 제어하는 상위 모듈 수. 즉, 한 노드로 들어오는 화살표 수.
fan-out : 해당 모듈이 제어하는 하위 모듈 수. 즉, 그 노드로부터 나가는 화살표 수.
나선형 모형은 폭포수 장점과 프로토타입 장점을 합친 모델이다.
개발단계는 계획 수립(Planning)->위험분석(Risk Analysis)->공학적 개발(Engineering)->고객 평가(Customer Evaluation)로 이루어져 있다. 위험분석이 나오면 나선형 모델이다. 위의 4 단계를 반복함(점증적 생명주기 모델), 위험 분석 단계에 초점을 맞춘다.
상향식 설계
하위 모듈에서 상위 모듈 방향으로 통합하면서 검사하는 기법이다.
하위 모듈을 클러스터로 결합-> 드라이버 검사-> 드라이버 제거, 클러스터 상위로 결합한다. 클러스터, 드라이버는 꼭 기억해 둔다.
하향식 설계
상위 모듈에서 하위 모듈 방향으로 통합하면서 검사하는 기법
stub이 필요하다. 모듈 간에 통합 시험을 하기 위해 일시적으로 제공되는 시험용 모듈을 말한다. 스텁이 나오면 하향식 설계이다.
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우이며, 하위 모듈에서 상위 모듈로 제어신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상이 발생하게 되는 결합도는 컨츄롤 커플링이다.