! 실제 기출 문제를 바탕으로 핵심 개념들만 정리 !
애플리케이션이 주어진 시간 안에 처리할 수 있는 트랜잭션의 수
사용자 입력이 끝난 후, 애플리케이션 응답 출력이 개시될 때 까지의 시간
애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력을 완료할 때 까지 걸리는 시간.
애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량을 말함.
트랜잭션 내의 연산은 반드시 모두 수행되어야 하며, 그렇지 못한 경우 모두 수행되지 않아야 한다.
트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안된다.
하나의 트랜잭션 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 한다.
지속성이라고도 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 한다.
주로 전기적, 기계적인 특성을 이용해서 통신 케이블로 데이터를 전송한다. 이 계층에서는 데이터가 무엇인지, 어떤 에러가 있는지 신경쓰지 않는다.
대표적인 장비로 통신 케이블, 리피터, 허브 등이 있다.
물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.
이 계층에서는 MAC 주소를 가지고 통신하고, 전송되는 단위를 프레임이라고 한다.
대표적인 장비로 브리지, 스위치가 있다.
데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능이다.
대표적인 장비는 라우터이다.
통신을 활성화 하기 위한 계층이다.
보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용 프로그램들이 전송을 할 수 있게 한다.
데이터가 통신하기 위한 논리적인 연결을 맗나다.
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로 부터 덜어준다.
최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
누구나 쉽게 이해하고 사용할 수 있어야 한다.
사용자의 목적을 정확하게 달성할 수 있어야 한다.
누구나 쉽게 배우고 익힐 수 있어야 한다.
사용자의 요구사항을 최대한 수용하며, 오류를 최소화 하여야 한다.
누구나 쉽게 이해하고 사용할 수 있어야 한다.
사용자의 목적을 이해하고 사용할 수 있어야 한다.
누구나 쉽게 배우고 익힐 수 있어야 한다.
사용자의 요구사항을 최대한 수용하며, 오류를 최소화 하여야 한다.
객체의 생성에 관련된 패턴
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
인가된 사용자만 정보에 접근할 수 있도록 하는 것
적절한 권한을 가진 사용자가 인가한 방법으로만 정보를 변경할 수 있도록 하여 접근을 통제하는 것
필요한 시점에 정보에 대한 접근이 가능하도록 하는 것
불필요한 데이터가 함께 삽입되는 현상
의도와 상관 없는 값들이 연쇄되어 삭제되는 현상
속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
트랜잭션의 부분 완료 상태에선 변경 내용만 로그 파일에 저장하고, 커밋이 발생하기 전까지 데이터베이스에 기록하지 않는다.
UNDO가 필요 없다.
트랜잭션 수행 도중에도 변경 내용을 즉시 데이터베이스에 기록한다.
UNDO가 필요하다.
제품 구현을 위해 소프트웨어가 가져야할 기능적 속성
제품 품질 기준 등의 만족을 위해 소프트웨어가 가져야할 특성
업무의 대상이 되는 실제 데이터에 대해서 서로의 상관 관계를 파악하는 작업으로 이를 통한 대표적 결과물은 ERD가 있다.
DBMS의 유형에 맞추어 DBMS에 저장될 데이터의 골격, 스키마를 만드는 작업으로 이를 통해 함수 종속성 파악, 논리적 스키마 등의 결과를 얻을 수 있다.
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도.
모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행 할 경우의 결합도.
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한, 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도.
모듈 간의 인터페이스로 배열이나 객체, 주소 등이 전ㄴ달되는 경우의 결합도
모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도.
입력의 경계값에서 발생하는 오류를 제거하기 위한 검사 기법으로, 동치 분할의 경계 부분의 입력값에서 결함이 발견될 확률이 높다는 가정으로 테스트 하는 기법이다.
검사 사례 설계를 프로그램의 입력 명세 조건에 따라 설정한다.
시스템에서 테스트 가능한 가장 작은 단위를 개별적으로 테스트를 수행한다.
프로그램 또는 그 구성 요소인 모듈 등의 정보 시스템 하나 하나의 구성 요소를 결합하여 구성 요소 간의 인터페이스와 각 결합 단계의 기능을 확인하는 테스트
구현된 시스템이 정해진 요건에 적합한지 여부를 평가하기 위하여 실제 운용과 같은 환경에서 시스템 전체에 대해서 행하는 테스트
배포 여부를 결정하기 위해 최종 사용자에 의해 수행되는 완전한 시스템에 대한 테스트
프로그램 코드에 대하여 물리적인 변경이 발생 했을 경우, 새로운 결함에 대비하여 이미 실시했던 테스트 케이스에 대하여 전체 또는 일부를 재시험 하는 테스트
데이터 모델의 구성 요소 중 데이터베이스에 표현된 개체 인스턴스를 처리하는 작업에 대한 명세로서, 데이터베이스를 조작하는 기본 도구에 해당한다.
데이터 모델의 구성 요소 중 데이터베이스에 표현될 대상으로서 개체 타입과 개체 타입들 간의 관계에 해당한다.
IPC 란 '프로세스 간 통신' 이라고도 하며, 세마포어, 소켓 등 프로세스 간 메시지 전달이나 공유 메모리 기법을 통해 자원이나 데이터를 주고 받는 행위이다.
네트워크의 크기나 호스트의 수에 따라 A, B, C, D, E 클래스로 나누어진다.
IPv4의 길이는 32bit 이고, 8bit 씩 4 부분으로 구분하여 10진수로 표현한다.
IPv4를 보완하여 만들어진 차세대 IP Address 주소 체계이다.
주소 유형은 유니 캐스트, 멀티 캐스트, 애니 캐스트 3가지 이며, 주소의 길이는 128bit이고, 8개 그룹으로 배열되며 각 그룹은 16bit 이다.
객체의 인스턴스 생성에 관여하고, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화 하는 패턴이다.
Abstract Factory, Builder, Factory Method, Singleton, Prototype 이 있다.
Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy 가 있다.
Command, Observer, Template Method, Mediator, Interpreter, Iterator, Memento, State
테이블 내의 속성값은 원자값을 가지고 있어야 한다.
부분 함수 종속을 제거한다.
이행 함수 종속을 제거한다.
결정자가 후보키가 아닌 함수 종속을 제거한다.
다치 종속을 제거한다.
조인 종속을 제거한다.
서로 간에 어떠한 의미 있는 연관 관계도 없는 기능 요소로 구성될 경우의 응집도
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
연관된 기능이라기 보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
모듈 내에서 한 활동으로 부터 나온 출력 값을 다른 활동이 사용할 경우의 응집도
모듈 내부의 모든 기능이 동일한 목적을 위해 수행되는 경우의 응집도
UI 는 인간과 디지털 기기 소프트웨어 사이에서 의사소통 할 수 있도록 만들어진 매개체를 의미한다.
UX 는 사용자가 제품을 대상으로 직 / 간접적으로 사용하면서, 느끼고 생각하게 되는 지각과 반응, 행동 등 모든 경험을 의미한다.
어떤 함수가 최소 1번 이상 호출 되었는지를 기준으로 커버리지를 계산한다.
프로덕션 코드의 전체 구문 중 몇 줄의 구문이 실행 되었는지를 기준으로 판단한다.
프로덕션 코드에 조건문이 있는 경우, 조건문의 전체 조건식이 True인 케이스, False 인 케이스 2가지가 최소한 한 번 실행되면 충족된다.
개별 조건식을 기준으로 판단하여, 모두 참 / 거짓을 한 번씩 갖도록 하면 조건 커버리지 기준을 만족한다.
개별 조건과 전체 조건 모두 최소 한 번씩 참 / 거짓이 선택 되어야 한다.
트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것
트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것
어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 것
트랜잭션이 성공적으로 완료될 경우, 결과는 영구적으로 반영이 되어야 한다는 것
데이터와 함수를 하나로 묶는 것을 의미한다.
다른 객체에서 자신의 정보를 숨기고 자신의 연산만을 통해 접근하는 것
불필요한 부분을 생략하고, 중요한 것에만 중적을 두어 모델화
상위 클래스의 모든 속성과 연산을 하위 클래스가 물려 받음
부모 클래스와 자식 클래스 간의 상속 관계를 나타낸다.
인터페이스에 정의 되어 있는 메소드를 오버라이딩 하여 실제 기능으로 구현하는 것
클래스 다이어그램에서 어떤 클래스가 다른 클래스를 참조 하는 것
다른 객체의 참조를 가지는 필드를 의미함
연관 관계를 조금 더 특수하게 나타낸 것으로 전체와 부분의 관계를 나타낸다.
집합과 비슷하게 전체와 부분의 집합 관계를 나타내지만, 더 강한 집합을 의미한다.
순차 접근 방법에는 레코드가 저장되어 있는 물리적 순차를 따른다.
인덱스 접근 방법은 레코드 접근을 위해 해당 인덱스를 찾아, 그 인덱스가 가리키는 주소를 따라가 레코드에 접근하는 방식이다.
해싱 접근 방법은 원하는 레코드에 대한 디스크 블록 주소를 레코드의 탐색 값에 대한 함수 계산을 통해 직접 얻을 수 있다.
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
모듈이 다수의 관련 기능을 가질 대, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 응집도
모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
모듈간의 인터페이스로 전달하는 파라미터를 통해서만 모듈간의 상호작용이 일어나는 경우의 결합도
주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송한다.
이 계층에서는 데이터가 무엇인지, 어떤 에러가 있는지 신경 쓰지 않는다.
대표적인 장비로 통신 케이블, 리피터, 허브 등이 있다.
물리 계층을 통해 송 / 수신 되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.
이 계층에서는 MAC 주소를 가지고 통신하고, 전송되는 단위를 프레임이라고 한다.
대표적인 장비로 브리지, 스위치가 있다.
데이터를 목적지 까지 가장 안전하고, 빠르게 전달하는 기능이다.
대표적인 장비는 라우터이다.
통신을 활성화하기 위한 계층이다.
보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.
데이터가 통신하기 위한 논리적인 연결을 말한다.
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다.
최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.