논리적 설계
현실의 자료를 특정 DBMS가 지원하는 자료구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다.
물리적 설계
논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 엑세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다.
웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 제시하기 위한 언어이다.
XML로 작성되며 UDDI의 기초가 된다.
배열의 요소 자체를 출력하는 것인지, 배열의 요소의 특정 부분만 출력하는 지 잘 확인하기.
식1 AND 식2 OR 식3인 경우는 (식1 AND 식2) OR 식3로 분리해서 접근해야한다.
블랙 박스 테스트 기법
동치 분할 검사 (Equivalence Partitioning Testing)
프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법이다.
경계값 분석 (Boundary Value Analysis)
입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법이다.
원인-효과 그래프 검사 (Cause-Effect Graphing Testing)
입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법이다.
오류 예측 검사 (Error Guessing)
과거의 경험이나 확인자의 감각으로 테스트 하는 기법이다.
비교 검사 (Comparison Testing)
여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.
화이트 박스 테스트 기법
기초 경로 검사 (Base Path Testing)
테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법이다.
제어 구조 검사 (Control Structure Testing)
조건 검사 (Condition Testing)
프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법이다.
루프 검사 (Loop Testing)
프로그램의 반복(Loop)구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법이다.
데이터 흐름 검사 (Data Flow Testing)
프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 기법이다.
화이트 박스 테스트 검증 기준
- 문장 검증 기준 (Statement Coverage)
소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계한다.
- 분기 검증 기준 (Branch Coverage)
소스 코드의 모든 조건문에 대해 조건식의 결과가 TRUE인 경우와 FALSE인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
- 조건 검증 기준 (Condition Coverage)
소스 코드의 조건문에 포함된 개별 조건식의 결과가 TRUE인 경우와 FALSE인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
모듈 간 통신 방식을 구현하기 위한 대표적인 프로그래밍 인터페이스 집합이다.
복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다.
기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션이다.
Point-to-Point
애플리케이션을 1:1로 연결한다.
변경 및 재사용이 어렵다.
Hub & Spoke
단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식이다.
허브 장애 발생 시 전체 시스템 전체에 영향을 미친다.
Message Bus (ESB 방식)
애플리케이션 사이에 미들웨어를 두어 처리하는 방식이다.
확장성이 뛰어나며 대용량 처리가 가능하다.
Hybrid
Hub & Spoke와 Message Bus의 혼합 방식이다.
그룹 내에는 Hub & Spoke 방식을, 그룹 간에는 Message Bus 방식을 사용한다.
출력문을 묻는 문제에서 printf문에 \n과 같은 줄바꿈 문자가 있는지 잘 확인하기.
현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다.
구조 (Structure)
논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현이다.
연산 (Operation)
데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구이다.
제약 조건 (Costraint)
데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건이다.
DAC (Discretionary Access Control) - 임의 접근통제
데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식이다.
MAC (Mandatory Access Control) - 강제 접근통제
주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식이다.
RBAC (Role Based Access Control)
사용자의 역할에 따라 접근 권한을 부여하는 방식이다.
'세션을 가로채다'라는 의미로, 정상적인 연결을 RST 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결하는 공격 기법이다.
TCP 세션 하이재킹은 공격자가 TCP 3-Way-Handshake 과정에 끼어듦으로써 서버와 상호 간의 동기화된 시퀀스 번호를 갖고 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있게 된다.
- 스푸핑 (Spoofing)
인터넷 프로토콜인 TCP/IP의 구조적 결함을 이용해 사용자의 시스템 권한을 획득한 후, 정보를 빼가는 해킹 수법을 의미한다.
- 스누핑 (Snooping)
네트워크 상에 떠도는 중요 정보를 몰래 획득하는 행위를 의미한다.
- 스니핑 (Sniffing, sniff-코를 킁킁거리다)
네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로, 수동적 공격에 해당한다.