싱글톤(Singleton)
객체변수가 사용하는 메모리 공간을 공유
ARP 스푸핑
ARP 스푸핑은 로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 취약점을 이용한 공격기법으로, 자신의 물리적 주소(MAC)를 변조하여 다른 PC에게 도달해야 하는 데이터 패킷을 가로채거나 방해한다
Authorization
신원이 검증된 사용자에게 특정된 권한가 서비스를 허용하는 기능
Accounting
사용자가 어떤 종류의 서비스를 이용했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능
Control Coupling ( 제어 결합도)
단순 처리 대상인 데이터만 전달하는 것이 아니라 어떻게 처리해야 되는지 하는 결정하는 제어 요소를 전달
상향식 통합 테스트
소프트웨어의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 하는 기법
Cross Join (교차 조인)
카디널리티랑 같음 A행 x B행 의 모든 경우의 수가 나온다.
파일 구조
파일의 구조는 파일을 구성하는 레코드들이 보조 기억장치에 편성되는 방식을 의미하는 것으로, 크게 순자, 인덱스, 해싱으로 구분한다.
인덱스 파일 구조는 <값, 주소> 쌍으로 구성되는 데이터 구조를 활용하여 데이터에 접근하는 방식으로, 자기 디스크에서 주로 활용된다.
데이터 링크 계층
물리적으로 연결된 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 연결 설정, 데이터 전송, 오류 제어 등의 기능을 수행한다.
DES
1974년 IBM이 개발하고 1975년 NBS에 의해 미국의 국가 표준으로 발표된 암호화 알고리즘으로, 블록 크기는 64비트, 키 길이는 56비트이며, 16회의 라운드를 수행한다.
2001년에 AES로 대체
Cause-Effect Graph
그래프를 활용하여 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
Ad-hoc Network (애드 혹 네트워크)
재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트만을 이용하여 구성한 네트워크
망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다.
멀티 홉 라우팅 기능을 지원
UX(사용자 경험)
사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험
UI(사용자 인터페이스)
사용자와 시스템 간의 상호작용이 원할하게 이뤄지도록 도와주는 장치나 소프트웨어
Atomicity(원자성)
트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 전혀 반영되지 않도록 복구되어야 한다.
Left join ~ on 조건
AES
2001년 미국 표준 기술 연구소(NIST)에서 발표한 대칭키 암호화 알고리즘
DES의 한계를 느낀 NIST에서 공모한 후 발표하였다.
블록 크기는 128비트이며, 키 길이에 따라 128,192,256으로 분류된다.
구문(문장) 검증 기준
최소 한번은 모든 문장이 수행되도록 구성하는 검증기준
결정(분기) 검증 기준
조건식이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준
조건 검증 기준
조건식에 상관없이 개별 조건이 참/거짓 일 때 수행되도록 구성하는 검증 기준
응집도
절차적 응집도 : 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도
통신적 응집도 : 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때 응집도
가상회선
연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
데이터그램
비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식
로킹(Locking)
데이터베이스의 병행제어 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써, 상호 베타적으로 접근하여 작업을 수행하도록 하는 기법
기능 모델링(Function)
다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링
정보 모델링(Information)
시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링
RARP
인터넷 환경에서의 호스트 상호 간 통신에서 연결된 네트워크 접속 장치의 물리적 주소인 MAC 주소를 이용하여 IP 주소를 찾는 인터넷 계층의 프로토콜로 역순 주소 결정 프로토콜이라고 불린다.
데이터베이스 설계
물리적 설계 : 논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 액세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다.
논리적 설계 : 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정으로, 개념 스키마 모델링과 트랜잭션 모델링을 수행하며, 요구 조건 명세를 E-R 다이어그램으로 작성한다.
개념적 설계 : 현실의 자료를 특정 DBMS가 지원하는 자료구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다.
WSDL(Web Services Description Language)
웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어로, XML로 작성되며 UDDI의 기초가 된다.
SOAP, XML 스키마와 결합하여 인터넷에서 웹 서비스를 제공하기 위해 사용되며, 클라이언트는 이것을 통해 서버에서 어떠한 조작이 가능한지를 파악할 수 있다.
애플리케이션 테스트
경계값 분석은 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용한 검사 기법
동치 분할 검사는 입력 조건이 유효한 경우와 그렇지 않은 경우의 입력 자료의 개수를 균등하게 정하는 검사 기법, 명세 기반 테스트
IPC(Inter-Process Communication)
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다.
대표적인 메서드에는 공유 메모리, 소켓, 세마포어, 파이프와 네임드 파이프, 메시지 큐잉이 있다.
EAI(Enterprise Application Integration)
기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로, Point-to-Point, Hub & Spoke, Message Bus, Hybrid 등의 다양한 방식으로 구축이 가능한 모듈 연계 방식
데이터 모델
연산은 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당
구조는 논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현한다.
제약 조건은 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 의미
임의 접근 통제
데이터에 접근하는 사용자와 사용자의 신원에 따라 접근 권한을 부여하여 제어하는 방식
데이터의 소유자가 접근 통제 권한을 지정하고 해제한다
스탬프 결합도
모듈간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될때의 결합도
즉각 갱신 기법
트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB에 그 내용을 반영하는 기법으로 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들을 로그(Log)에 보관시킨다.
즉각 갱신 기법에서 회복 작업을 수행할 경우 Redo와 Undo 모두 수행이 가능하다.
스니핑
네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당한다.
NAT(Network Address Traslation)
네트워크 주소 변환
1개의 정식 IP 주소에 다량의 가상 사설 IP 주소를 할당 및 연결하는 방식
1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개만으로 제한되는 문제가 있으나, 이 때에는 IP 마스커레이드를 이용하면 된다.
하둡(Hadoop)
오픈 소스 기반 분산 컴퓨팅 플랫폼
분산 저장된 데이터들은 클러스터 환경에서 병렬처리 된다.
일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발되었다.
더그 커팅과 마이크 캐퍼렐라가 개발했으며, 구글의 맵리듀스 엔진을 사용하고 있다.
샘플링 오라클
특정한 몇몇 테스트 케이스의 입력값들에 대해서만 기대하는 결과를 제공하는 오라클로, 전수 테스트가 불가능한 경우 사용하고, 경계값 및 구간별 예상값 결과 작성시 사용하는 오라클
블록체인
P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(Peer)의 디지털 장비에 분산 저장하는 기술
가용성
인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다
리팩토링
프로그램을 쉽게 이해하고 수정하여 빠르게 개발할 수 있도록 하기 위함
ICMP(Internet Control Message Protocol)
TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜과 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 위한 제어 메시지를 취급하는 무연결 전송용 프로토콜로, OSI 기본 참조 모델의 네트워크 계층에 속한다.
데이터 베이스 스키마
데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
프로토콜
톰마릴
컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송 하는 일련의 방법을 ‘기술적 은어' 나타낸것
관계대수 (Divide)
릴레이션 A,B 가 있을 떄 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산
분기 커버리지
소스코드의 모든 조건문이 한 번 이상 수행되도록 테스트 케이스를 작성
형상 통제
식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업
헝가리안 표기법
변수명 작성 시 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성하는 방법
UI 직관성
누구나 쉽게 이해하고 사용할 수 있어야 한다
목표 복구 시간(RTO ; Recovery Time Objective)
업무가 복구되어 다시 정상 가동될 때 까지의 시간
애자일 방법론
시제품을 끊임없이 제작하며 사이클을 반복
워터폴가 대조적
고객의 변화하는 요구사항과 환경변화에 능동적
IPSec
네트워크 트래픽에 대해 IP계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공
네트워크 계층의 보안 통신 규약
ROLLBACK
트랜잭션 실행 도중 오류가 발생하면 이전 상태로 되돌리기 위한 명령어
정적 테스트, 정적 분석 테스트
애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트
Observer Pattern
한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식으로, 일대다의 의존성을 정의하는 패턴이다.
상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합
SOAP ; Simple Object Access Protocol
HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜로, SOAP envelope, 헤더, 바디 등이 추가된 XML 문서
복잡하고 무거운 구조로 구성되어 있어 restful 프로토콜을 이용하기도 한다.
SQL Injection
웹 응용 프로그램에 SQL 구문을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격 기법이다.
UI(사용자 인터페이스)의 특성
직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.
유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야 한다.
학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화 해야 한다.
LOD(Linked Open Data), 개방형 링크드 데이터
웹 상에 존재하는 데이터를 개별 URI로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형
링크 기능이 강조된 시맨틱 웹의 모형에 속한다고 볼 수 있으며 팀 버너스 리의 W3C를 중심으로 발전하고 있다.
데이터베이스 구축
요구 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
머릿말, Header
릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 버전 등이 포함되어있따.
트랜잭션의 특징
원자성 : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되거나, 전혀 반영되지 않도록 복구되어야 한다
일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 형태로 변환한다.
독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행 되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
지속성 : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
애플리케이션 성능 측정 지표
처리량 : 일정 시간 내에 애플리케이션이 처리하는 일의 양
응답 시간 : 애플리케이션에 요청을 전달한 시간 부터 응답이 도착할 때 까지 걸린 시간을 의미한다.
경과시간 : 애플리케이션에 작업을 의뢰한 시간 부터 처리가 완료될 때 까지 걸린 시간을 의미한다.
자원 활용률 : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU, 메모리, 네트워크 등의 자원 사용률을 의미한다.
MD5
1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로, 각각의 512비트 짜리 입력 메시지 블록에 대해 차례로 동작한다. 각 512 비트 입력 메시지 블록을 처리하고 나면 128비트 스테이트(state)의 값이 변한다.
프로토콜의 기본 3요소
구문, 의미, 시간
Land Attack
공격자가 패킷의 출발지 주소 또는 포트를 임의로 변경하여 송신측 IP 주소 또는 포트를 동일하게 함으로써 자신에게 응답을 수행하는 공격 방법
살충제 패러독스
동일한 테스트 케이스로 동일한 테스트를 반복하면 결함이 발견되지 않는 현상
데이터 마이닝
대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법
HRN 비선점 스케줄링
우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
시퀀스 다이어그램
시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용 하는 과정을 애겉, 객체, 메시지 등의 요소를 사용하여 그림으로 표현한 UML 다이어그램
공통 모듈 명세 기법
명확성 : 해당 기능을 중의적으로 해석하지 않도록 작성해야 한다는 원칙
일관성 : 공통 모듈로 구현된 기능 간 상호 충돌이 발생하지 않도록 작성해야 한다는 원칙
IoC(제어의 역흐름)
객체들의 제어 권한을 프레임워크에 넘겨 생산성을 향상시킴
ARIA
학계, 연구기관, 정부의 영문 앞 글자를 따 명명한 양방향 알고리즘
국가 정보원과 산학연협회가 2004년 개발
128비트의 블록 크기와 키 길이에 따라 128, 192, 256으로 분류되는 블록 암호화 알고리즘
SQL
Update table명 set 속성=변경, 속성=변경 where 조건
insert into(속성1,속성2) 테이블명 values(삽입1,삽입2);
select 속성 from 테이블명 where 속성 in(조건);
Alter table 테이블명 add 추가속성 varchar(20);
select city as 도시, count(city) as 집계
from user
where user.age >= 10
group by city
having city >= 'b'
order by city
요구공학
소프트웨어를 설계하기에 앞서 무엇을 개발해야 하는지 요구사항을 정의하고 분석 및 관리하는 프로세스를 연구한다.
요구사항 변경의 원인과 처리 방법을 이해하고 요구사항 관리 프로세스의 품질을 개선하여 소프트웨어 프로젝트 실패를 최소화하는 것을 목표로 한다.
비트맵 인덱스
인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법
API(Application Programming Interface)
응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의 해 놓은 인터페이스로, 프로그래밍 언어에서 특정한 작업을 수행하기 위해 사용되거나, 운영체제의 파일 제어, 화상 처리, 문자 제어 등의 기능을 활용하기위해 사용된다.
커버리지
기능 기반 커버리지 : 실제 테스트가 가능된 기능의 수/ 전체 기능의 수
라인 커버리지 : 테스트 시나리오가 수행한 소스 코드의 라인 수/ 전체 소스 코드의 라인 수
코드 커버리지 : 소스 코드의 구문, 분기, 조건 등의 구조 코드 자체가 얼마나 테스트 되었는지를 측정하는 방법
프로세스 분기
Ready → Run : 디스패치(Dispatch)
Run → Wait : Timer Runout
Wait → Ready : Wake up
스머핑(Smurfing)
Ip나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보내 상태를 불능으로 만든다.
인터넷 계층
OSI의 네트워크 계층에 대응, IP, ICMP, ARP 등이 사용되고 데이터 전송을 위한 주소 지정, 경로 설정 기능 등을 제공하며 TCP/IP
응용, 표현, 세션 → 응용 계층
전송 → 전송 계층
네트워크 → 인터넷 계층
데이터링크, 물리 → 네트워크 엑세스
데이터베이스의 3가지 필수 기능
정의(Definition)기능, 조작(Manipulate) 기능, 제어(Control) 기능
OS 신뢰도
시스템이 주어진 문제를 정확하게 해결하는 정도
요구사항 개발 프로세스
도출, 분석, 명세, 학인
데이터베이스 정의
운영 데이터 : 조직의 고유한 업무를 수행하는데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 데이터이다.
통합된 데이터 : 검색의 효율성을 위해 중복이 최소화된 데이터의 모임이다.
저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터이다.
공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터다
데이터 쉐어하우스
급증하는 다량의 데이터를 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스이다.
신속 정확한 의사 결정으로 경재력을 확보하기 위하여 의사 결정용 데이터베이스의 필요성으로 인해 등장
다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성한 후 데이터의 다차원 분석 도구로 이를 분석하여 의사결정에 필요한 자료를 얻는다.
ESB(Enterprise Service Bus)
애플리케이션 간 연계, 데이터 변환, 웹 서비스 지원 등 표준 기반으로 인터페이스를 제공하는 솔루션으로 애플리케이션 통합 측면에서 EAI와 유사하지만, 애플리케이션 보다는 서비스 중심의 통합을 지향하며, 특정 서비스에 국한되지 않고 범용적으로 사용하기 위하여 애플리케이션과의 결합도를 약하게 유지하는 것
UDDI(Universal Description, Discovery and Integration)
인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 목록을 등록하기 위한 XML 기반의 규격으로, WSDL을 등록하여 서비스와 서비스 제공자를 검색하고 접근하는데 사용되는 웹 서비스의 구성 요소
운영체제의 목적
처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축
UI 프로토타입
페이퍼 프로토타입, 디지털 프로토타입
강도 테스트
과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
XSS
웹 페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 공격 기법
UNIX 명령어
fsck : 파일 시스템을 검사 및 보수하여 무결성 검사
환영대기
교착상태 발생의 필요 충분 요건 중 공유 자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야한다는 조건
페이징 기법
가상 기억 장치에 보관되어 있는 프로그램과 주 기억장치의 영역을 동일한 크기로 나눈 후 나눠진 페이지를 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법, 외부 단편화는 발생하지 않으나 내부 단편화는 발생한다.
세그멘테이션 기법
가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법으로, 내부 단편화는 발생하지 않지만, 외부 단편화는 발생한다.
데이터베이스 클러스터(Cluster)
데이터 저장 시 데이터 액세스 효율을 향상 시키기위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
OSI 7계층
물리 → 데이터링크 → 네트워크 → 전송 → 세션 → 표현 → 응용
데이터 모델 구성요소
속성 : 데이터의 가장 작은 논리적 단위로서 파일 구조 상의 데이터 항목 또는 데이터 필드에 해당
관계 : 개체 간의 관계 또는 속성 간의 논리적인 연결
개체 : 데이터베이스에서 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
분산 데이터베이스 목표
중복 투명성 : 동일한 데이터가 여러 곳에 중복되어 있더라도, 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행한다.
장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행된다.
연쇄 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.
위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있다.
주요 보안요소 3가지
기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)
테스트 오라클
테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법/및 활동
제한된 검증, 수학적 기법, 자동화 기능
UNIX 시스템 구성요소
커널 : UNIX의 핵심적인 부분으로, 프로세스, 기억장치, 파일, 입/출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 기능 수행
쉘 : 사용자의 명령어를 인식하여 프로그램을 호출하고, 명령을 수행하는 명령어 해석기로, 시스템과 사용자 간의 인터페이스를 담당
스레싱(Thrashing)
스레싱은 프로세스의 처리 시간보다 페잊 교체에 소요되는 시간이 더 많아 지는 현상
분산 저장소 방식
버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식
Git, GNU arch, ...
페이지 교체 알고리즘
FIFO : 각 페이지가 주 기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
OPT : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
NUR(Not Used Recently) : LRU와 비슷한 알고리즘으로, 최근에 사용되지 않은 페이지를 교체하는 기법
SCR : FIFO 기법의 단점을보완한 기법으로, 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것
LFU : 사용 빈도가 가장 적은 페이지를 교체하는 기법
LRU : 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
정형 분석
구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 과정으로, 요구사항 분석의 마지막 단계에서 이루어지는 요구사항 분석 기법
OLTP(Online Transaction Processing)
온라인 업무 처리의 형태
네트워크 상의 여러 사용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등 단위 작업을 처리하는 방식
빠른 응답 시간을 요구하며, 개개의 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화 한다.
개체 무결성
기보니를 구성하는 어떤 속성도 Null 값이나 중복값을 가질수 없다
인덱스
클러스터 인덱스 : 실제 데이터가 순서대로 저장
넌클러스터 인덱스 : 논리적으로 순서대로 저장
ODBC
데이터베이스에 접근하기 위한 표준 개방형 API
1992년 9월 마이크로소프트 사에서 출시
개발언어에 관계 없이 사용 가능
UI 흐름 설계 컨트롤
콤보 박스 : 목록에서 항목을 선택하거나 입력, 자주 사용하는 값을 초기값으로 설정
텍스트 박스 : 입력이 가능함을 표시, 필드 길이, 텍스트 정렬 방식 등을 지정
라디오 박스 : 여러 개의 값 중 하나만을 선택할 수 있다, 자주 사용하는 값을 초기값으로 설정한다.
체크 박스 : 여러 개의 값 중 하나 이상을 선택할 수 있다.
함수적 종속
DNS
도메인 네임을 IP주소로 변환하는 역할
워킹셋
프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합
데닝이 제안한 프로그램의 움직임에 대한 모델, 프로그램의 Locality 특징 이용
주 기억장치에 상주시킴으로써 페이지 부재 및 페잊 교체현상이 줄어들어 프로세스의 기억장치 사용이 안정
시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹셋은 시간에 따라 변경된다.
SOAP(Simpe Object Access Protocol)
컴퓨터 네트워크 상에서 HTTP/HTTPS, SMTP 등을 이용하여 XML 을 교환하기 위한 통신 규약으로, 웹 서비스에서 사용되는 메시지의 형식과 처리방법을 저장
HTTP 기반에서 동작하기 때문에 프록시와 방화벽의 영향 없이 통신이 가능하다.
Envelope : XML 문서를 메시지로 정의하는 것으로, 메시지에 대한 요소와 접근 방법을 정의
Header : 메시지에 포함되는 웹 서비스를 정의하는 것으로 생략 가능
Body : 실제 메시지 포함
경계값 분석 테스트
입력 조건의 경계 부분을 사용
테스트 오라클(Test Oracle)
테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동
- 참(True) 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출할 수 있음
- 샘플링(Sampling) 오라클 : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
- 추정(Heurisitc) 오라클 : 샘플링 오라클을 개선한 오라클로, 특정 테스트 케이스의 입력값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클
- 일관성 검사(Consistent) 오라클 : 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지 확인하는 오라클
결합도(Coupling)
모듈 간 상호 의존하는 정도
- 자료 결합도(Data Coupling) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
- 스탬프 결합도(Stamp Coupling) : 자료구조가 전달 될 때의 결합도
- 제어 결합도(Control Coupling) : 다른 모듈에게 제어 요소를 전달하는 결합도
- 외부 결합도(External Coupling) : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도
- 공통 결합도(Common Coupling) : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
- 내용 결합도(Content Coupling) : 한 모듈이 다른 모듈의 내부 기능 및 내부 자료를 직접 참조하거나 수정할 때의 결합도
자료 < 스탬프 < 제어 < 외부 < 공통 < 내용
응집도(Cohesion)
정보 은닉 개념을 확장한 것으로, 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미
- 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 구성 요소가 서로 연관이 없을 경우의 응집도
- 논리적 응집도(Logical Cohesion) : 유사한 성격, 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리되는 경우의 응집도
- 시간적 응집도(Temporal Cohesion) : 특정 시간에 처리되어야 되는 몇 개의 기능을 하나의 모듈로 작성할 경우의 응집도
- 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 갖고, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 통신적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용해 다른 기능을 수행하는 구성 요소들이 모였을 때의 응집도
- 순차적 응집도(Sequential Cohesion) : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력데이터로 사용할 경우의 응집도
- 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적
OSI(Open System Interconnection) 참조 모델
- 물리 계층(Physical Layer) : 전송에 필요한 두 장치간의 실제 접속
- 데이터 링크 계층(Data Link Layer) : 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어, 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
- 네트워크 계층(Network Layer) : 개방 시스템들 간의 네트워크 연결을 관리하는 기능, 데이터의 교환, 중계 기능
- 전송 계층(Transport Layer) : 주소 설정, 다중화, 오류제어, 흐름 제어, 종단 시스템 간의 연결 설정, 데이터 전송, 연결 해제
- 세션 계층(Session Layer) : 송/수신 측 간의 관련성을 유지, 대화 제어 담당, 데이터 교환 관리
- 표현 계층(Presentation Layer) : 응용 계층으로부터 받은 데이터를 세션 계층에 맞게, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환, 코드 변환, 데이터 암호화, 압축, 검색, 포맷 변환, 문맥관리
- 응용 계층(Application Layer) : 사용자가 OSI 환경에 접근할 수 있도록 응용 프로세스 간의 정보 교환, 전자사서함, 파일 잔성, 가상 터미널 제공
프로토콜
서로 다른 기기들 간의 데이터 교환을 원할하게 수행할 수 있도록 표준화 시켜 놓은 통신 규약
구문(Syntax), 의미(Semantics), 시간(Timing)
TCP/IP
응용, 표현, 세션 → 응용
전송 → 전송 (TCP, UDP)
네트워크 → 인터넷 : IP, ICMP, IGMP, ARP, RARP
데이터 링크, 물리 → 네트워크 액세스 : Ethernet
GoF(Gang of Four) 디자인 패턴
소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
생성 패턴
객체를 생성하는데 관련된 패턴들
- Builder : 복잡한 인스턴스를 조립해 만드는 구조, 복합 객체 생성 시 방법 분리, 서로 다른 표현 결과 만들 수 있음
- Prototype : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴
- Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
- Abstract Factory : 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- Singleton : 전역변수를 사용하지 안고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에든지 참조할 수 있도록 하는 디자인 패턴
구조 패턴
- Bridge : 기능의 클래스 계층과 구현의 클래스 계층을 연결, 구현부에서 추상 계층 분리
- Decorator : 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나감
- Facade : 복잡한 시스템에 대해 단순한 인터페이스 제공, 시스템 구조에 대한 파악을 쉽게해줌
- Flyweight : 메모리 절약, 클래스의 경량화 목적
- Proxy : 실제 객체에 대한 대리 객체, 실제 객체를 드러나지 않게 해 정보은닉
- Composite : 객체들의 관계를 트리 구조로 구성, 부분-전체 계층 표현
- Adapter : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
행위 패턴
- Mediator : 중간에 통제, 중재자
- Interpreter : 언어의 다양한 해석, 구문의 해석을 맡는 클래스 각각 작성
- Iterator : 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공
- Template Method : 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화, 상위 클래스 - 추상, 하위 클래스 - 구체
- Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락
- State : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
- Visitor : 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행
- Command : 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행
- Strategy : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 변환
- Memento : Undo 기능 개발
- Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우 따라 다르게 처리될 수 있도록 연결한 디자인
정규화(Normalization)
데이터의 중복성을 제거해 이상현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
정규화 단계
1NF : 도메인이 원자값
2NF : 부분 함수 종속 제거
3NF : 이행 함수 종속 제거
BCNF : 결정자가 함수종속이면서 후보키가 아닌 것을 제거
4NF : 다치 종속 제거
5NF : 조인 종속 제거
이상 현상(Anomaly)
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입 이상, 삭제 이상, 갱신 이상
반 정규화
정규화 된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정
스프린트 회고(Sprint Retrospective)
스프린트가 끝난 시점이나 일정 주기별로 스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인하고 기록하는 과정
Tribe Flood Network(TFN)
DDOS 공격 도구
페이어와즈 테스트
테스트 데이터 값들 간에 최소한 한 번씩 조합하는 방식
XSS
검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
RAID(Redundant Array of Independent Disks, 복수 배열 독립 디스크)
여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장하는 기술
죽음의 핑(POD, Ping of Death)
ICMP(Ping)을 정상적인 크기보다 크게 만들어 전송 → 오버플로우 발생
Fork Node(포크 노드)
평행적으로 수행되는 흐름을 나누는 노드로 굵은 가로선에 해당
Decision Node(조건 노드)
조건에 따른 제어 흐름의 분리를 표현하는 구성요소로, 마름모로 표현
Swim Lane(구획면)
액티비티 수행을 담당하는 주체를 구분하는 면으로 가로 또는 세로 실선을 그어 구분
Composite Pattern (컴포지트)
객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴
IPSec
IP 계층(3계층)에서 무결성과 인증을 보장하는 AH(인증 헤더)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜
클리어링 하우스
저작권 관리를 위한 요소 중 소비자와 유통업자 사이에 발생하는 거래에 대해 디지털 저작권 라이선싱을 중개하고 라이선스 발급을 수행하는 정산소
보안 - 무결성
정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성
클라우드 서비스
인프라형 서비스(IaaS)
플랫폼형 서비스(PaaS)
소프트웨어형 서비스(SaaS)
메타포어
XP의 기본원리, 고객과 개발자 간의 의사소통을 원할하게 한다는 원리
결합 집중
적은 수의 모듈에서 대다수의 결함이 발견됨
소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20%내에서 발견
스키마 종류
외부 스키마, 내부 스키마, 개념 스키마
포렌식(Forensic)
범죄 사실을 사법 기관에 제출하기 위해 디지털 증거자료를 수집/복사/분석/제출 하는 일련의 과정
Warm Site
DRS(Disater Recovery System)의 유형
재해복구센터에 주 센터와 동일한 수준의 자원을 보유, 중요한 자원만 부분저긍로 재해복구 센터에 보유하고 있는 센터
데이터 백업 주기가 수 시간 ~ 1일
재해 발생 시 복구까지의 소유시간(RTO)은 수일 ~ 수주
UDDI
웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소
온톨로지(Ontology)
실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서
스텁
제어모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 더미 객체에서 단순 기능에 특정 상태를 가정해서 특정한 값을 리턴하거나 특정 메시지를 출력
UI 시나리오 작성 요건
완전성, 일관성, 이해성, 가독성
FitNesse
웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트 가능
IPS(Instrusion Prevention System)
IPS는 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해트래픽에 대한 조치를 능동적으로 처리하는 시스템
관계 대수
원하는 정보가 무엇인지 정의하고 원하는 정보를 유도하기 위한 과정을 정의한 절차적 언어
관계해석
원하는 정보가 무엇인지만을 정의하는 비절차적인 언어
SDDC(Software Defined Data Center)
모든 하드웨어가 가상화되어 가상 자원의 풀을 구성하고 데이터센터 전체를 운영하는 소프트웨어가 필요한 기능 및 규모에 따라 동작 자원을 할당, 관리 하는 역할을 수행하는 데이터 센터
비바 모델
무결성을 보장하는 최초의 모델
벨-라파듈라 모델(BLP)
미 국방부 지원 보안 모델로 보안 요소 중 기밀성을 강조, 강제적 정책에 의해 접근 통제하는 모델
브로커 패턴
분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴으로 컴포넌트 간의 통신을 조장하는 역할을 수행
NAS(Network Attached Storage)
서버와 저장장치를 네트워크로 연결하는 방식으로, 구성 설정이 간편하여 별도의 운영체제를 가진 서버 한 곳에서 파일을 관리하기 때문에 서버 간 스토리지 및 파일 공유가 용이한 스토리지 장치 구성 방식
슈퍼키
릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키다
ICMP(Internet Control Message Protocol)
메시지 형식은 8바이트 헤더와 가변 길이의 데이터 영역으로 분리되고, IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
IGMP(Internet Group Management Protocol)
인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는데 사용하는 통신 프로토콜
파이썬 생성자, 소멸자
init del
Inspection
프로젝트 개발 초기에 수행해야 하고, 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 참석하여 문제를 식별하고 문제에 대한 올바른 해결을 찾아내는 공식적인 검토를 수행해야 한다.
State Transition Testing
테스트 대상/시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우를 테스트해야 한다.
OSI 캡슐화
OSI 계층 모델에서 사용자 데이터가 각 계층을 지나면서, 하위 계층은 상위 계층으로부터 전달된 정보를 데이터로 취급하며, 계층 특성을 담은 제어정보를 헤더화해서 추가하는 과정
Flyweight Pattern
다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화 하여 공유함으로써 메모리를 절약하고 ‘클래스의 경량화'를 목적으로 하는 디자인 패턴
상태 다이어그램
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현하는 동적 다이어그램
Broker Pattern
분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호 작용이 가능한 패턴으로 컴포넌트 간의 통신을 조정하는 역할을 수행한다.
CBAM(Cost Benefit Analysis Method)
소프트웨어 아키텍처 비용 평가 모델
ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
ASLR(Address Space Layout Randomization)
메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정 주소 호출을 차단시키는 대응 방안
블루재킹(BlueJacking)
블루투스를 이용해서 스팸메일 처럼 메시지를 익명으로 퍼트리는 공격
블루프린팅(BluePrinting)
블루투스 공격 장치를 검색하는 활동
UML/클래스 간의 관계
- 연관 관계
- 집합 관계 : 하나의 객체에 여러 개의 독립적인 객체들이 구성
- 복합 관계 : 연관, 집합 관계보다 더 강한 관계
- 일반화 관계 : 하나의 사물이 다른 사물에 비해 더 일반적인 구체적인지 표현
- 의존 관계 : 하나의 클래스가 또 다른 클래스 사용
- 실제화 관계 : 인터페이스를 상속받아 추상메서드 구현 , 그룹화, 해야하는 기능으로 그룹
UML의 구성 요소
사물, 관계, 다이어그램
구조적(Structural) 다이어그램/ 정적(Static)다이어그램
- 클래스 : 클래스의 속성 및 연산과 클래스 간 정적 관계를 표현한 다이어그램
- 객체 : 클래스에 속한 사물, 인스턴스
- 컴포넌트 : 컴포넌트와 그들 사이의 의존 관계
- 배치(Deployment) : 컴포넌트 사이의 종속성, 물리적 요소들의 위치
- 복합체 구조(Composite Structure) : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현하는 다이어그램
- 패키지 : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계, 서로 다른 패키지들 사이의 의존 관계 표현
행위적(Behavioral) 다이어그램/동적(Dynamic) 다이어그램
- 유스케이스 : 시스테이 제공하고 있는 기능과 관련된 외부 요소를 사용자의 관점에서 표현
- 시퀀스(Sequence) : 객체 간 상호작용을 시간적 개념을 중심으로 메시지 흐름을 표현
- 커뮤니케이션 : 동작에 참여하는 객체들이 주고받는 메시지, 객체 간의 연관
- 상태(State) : 상호작용에 따라 상태가 어떻게 변화하는지
- 활동(Activity) : 어떤 기능을 수행하는지, 객체의 처리 로직, 조건에 따른 처리의 흐름
- 타이밍 : 객체 상태 변화와 시간 제약을 명시적으로 표현
인터페이스 구현 도구
- xUnit : Java, C++ , .Net 등 다양한 언어를 지원
- STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원
- FitNesse : 웹 기반 데스트케이스 설계, 진행, 결과 확인 등을 지원
- NTAF : FitNess의 협업 기능과 STAF의 재사용 및 확장성을 통합한 NHN의 프레임워크
- Selenium : 다양한 브라우저 및 개발 언어 지원
- watir : Ruby를 사용
웹 서비스의 구성
- SOAP ( Simple Object Access Protocal ) : HTTP, HTTPS, SMTP 등을 활용하여 XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜이다. 20년 실기 기출문제
- UDDI ( Universal Desription, Discovery and Integration ) : WSDL을 등록하여 서비스와 서비스 제공자를 검색하고 접근하는데 사용된다. 인터넷에서 전 세계의 비지니스 업체 목록에 자신의 목록을 등록하기 위한 확장성 생성 언어 XML 기반의 구격이다. 이미 알려진 송 * 수신 시스템의 통합 구현에서는 공개 및 검색과정이 필요 없으므로 UDDI는 생략한다.
- WSDL ( Web Service Description Language ) : 웹 서비스명, 서비스 제공위치, 프로토콜 등 웹 서비스에 대한 상세 정보를 XML 형식으로 구현한다.