AAA 서버는 사용자의 컴퓨터 자원 접근 처리와 서비스 제공에 있어서 다음 3가지 기능을 제공하는 서버이다.
- 접근하는 사용자의 신원을 검증하는 기능
- 신원인 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능
- 사용자가 어떤 종류의 서비스를 이요했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능
- Authentication(인증)
- Authorization(권한)
- Accounting(계정관리)
( ) 패턴은 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 다른 이름으로 가상 생성자(Virtual Constructor) 패턴이라고도 불린다.
Factory Method
(1)는 소프트웨어의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다.
하나의 주요 제어모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요하다.
데이터의 입/출력을 확인하기 위해 더미 모듈인 (2)를 생성한다.
(1) : 상향식 통합 테스트
(2) : 드라이버
<참고>
Stub : 제어 모듈이 호출되는 타모듈의 기능을 단순히 수행하는 도구로 일시적으로 필요한 조건만 가지는 시험용 모듈이다.
하향식 통합 테스트에서 사용된다.
파일의 구조는 파일을 구성하는 레코들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 크게 순차, ( ), 해싱으로 구분한다. ( ) 파일 구조는 <값, 주소> 쌍으로 구성되는 데이터 구조를 활용하여 데이터의 접근하는 방식으로, 자기 디스크에서 주로 활용된다.
색인 또는 Index
관계(Relationships)는 사물과 사물 사이의 연관성을 표현하는 것이다.
1. 하나의 사물이 다른 사물에 포함되어 있는 관계로, 전체와 부분이 구분되어지며 서로 독립적이다.
2. 상위 모듈이 하위 모듈보다 더 일반적인 개념을 가지고 있으며, 하위 모듈이 상위 모듈보다 더 구체적인 개념을 가진다.
- Aggregation
- Generalization
- 재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장수에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크이다.
- 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다.
- 멀티 홉 라우팅 기능을 지원한다.
Ad-hoc
- 최소 한번은 모든 문장이 수행되도록 구성하는 검증 기준
- 조건식이 참/거짓 일때 수행되도록 구성하는 검증 기준
- 2번과 달리 조건식에 상관없이 개별조건이 참/거짓 일때 수행되도록 구성하는 검증 기준
- 구분(문장) 검증 기준
- 분기 검증 기준
- 조건 검증 기준
- 내부의 요소들이 기능적으로 연관성을 없으나, 순차적으로 실행될 때의 응집도
- 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
- 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도
- 절차적 응집도
- 교환적 응집도
- 기능적 응집도
( 1 ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
( 2 ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식
가상회선 방식
데이터그램 방식
디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다. 그중 ( ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로, Interperter, Observer, Command등이 있다.
행위
- 다수의 프로세스들 간의 자료 흐름을 중심으로 처리과정을 표현한 모델링
ex) 자료흐름도(DFD)- 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
ex) 상태변화도(STD), 사건 추적도- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링
ex) ER 다이어그램(ERD)
- Fuction
- Sequence
- Information
웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어로, XML로 작성되며, UDDI의 기초가 된다. SOAP, XML 스키마와 결합하여 인터넷에서 웹 서비스를 제공하기 위해 사용되며, 클라이언트는 이것을 통해 서버에서 어떠한 조작이 가능한지 파악할 수 있다.
WSDL
- ( 1 )은 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당한다.
- ( 2 )는 논리적으로 표현된 객체 타입들 간의 관계로서 데이터 구성의 정적 성질을 표현한다.
- 제약 조건은 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 의미힌다.
- 연산
- 구조
- ( 1 )는 모듈 간의 인터페이스로 데이터, 지역 변수 등을 직접 참조하거나 수정할 때의 결합도이다.
- ( 2 )는 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도다.
- ( 3 )는 모듈 간의 인터페이스로 파라이터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도이다.
- 내용 결합도
- 스탬프 결합도
- 공유 결합도
- 우리말로 번역하면 '네트워크 주소 변환'이라는 의미의 영문 3글자 약자이다.
- 1개의 정식 IP주소에 다량 가상 사설 IP 주소를 할당 및 연결하는 방식이다.
- 1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개만으로 제한되는 문제가 있으나, 이 때에는 IP마스커레이드(Masquerade)를 이용하면 된다.
NAT
- 오픈 소스 기반 분산 컴퓨팅 플랫폼이다.
- 분산 저장된 데이터 들은 클러스터 환경에서 병렬 처리된다.
- 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형셩하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발되었다.
- 더그 커팅과 마이크 캐퍼렐라가 개발했으며, 구글의 맵리듀스(MapReduce) 엔진을 사용하고 있다.
Hadoop
- 1960년대 AT&T 벨(Bell)연구소가 MIT, General Electric 사와 함께 공동 개발한 운영체제이다.
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제이다.
- 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
- 트리 구조의 파일 시스템을 갖는다.
UNIX
인가받은 사용자는 시스템에 자원을 언제라도 사용할 수 있다.
심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메세지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( ) 이라는 용어로 정의하였다.
프로토콜
릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산이다.
÷
형상 항목에 대한 변경 도구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업
누구나 쉽게 이해하고 사용할 수 있어야한다.
애자일
IPSec, Internet Protocol Security
Observer
( ) 는 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메세지를 네트워크 상에서 교환하는 프로토콜로, ( ) envelop, 헤더(Header), 바디(Body) 등이 추가된 XML 문서이다. ( )는 복잡하고 무거운 구조로 구서오디어 있어 ( ) 보다는 restful 프로토콜을 이용하기도 한다.
SOAP, Simple Object Access Protocol
직관성 : 누구나 쉽게 이해하고 사용할 수 있어야한다.
( ) : 사용자의 목적을 정확하게 완벽하게 달성해야한다.
학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화해한다.
유효성
요구 분석 -> ( ) -> ( ) -> ( ) -> 구현
개념적 설계, 논리적 설계, 물리적 설계
웹 페이지의 기본 형식인 HTML의 문법이 각 웹 브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡합을 해결하기 위하여 개발된 ( )은 다른 특수한 목적을 갖는 마크업 언어이다. 원활한 데이터의 연계를 위해 송수신 시스템 간에 전송되는 데이터가 동일한 구조로 구성될 수 있도록 형태를 정의하는 역할을 수행하며, 다음과 같은 특징이 있다.
유니코드 문자 : 텍스트 형식으로 유니코드를 사용하여 전 세계 언어를 지원한다.
( ) 파서(Parser) : 대다수의 웹 브라우저가 해석을 위한 번역기(Parser)를 내장하고 있다.
마크업과 내용 : ( ) 문서의 문자들은 마크업과 내용을 구분된다. 일반적으로 마크업은 "<"로 시작하여 ">"로 끝나는 태그를 의미하고 그 외의 문자열은 내용 해석에 해당한다.
엘리먼트 : 마크업과 내용으로 이루어지는 하나의 요소를 의미한다.
XML
( )은 속성-값 쌍으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 택스트를 사용하는 개방형 표준 포맷이다. 비동기 처리에 사용되는 AJAX에서 XML를 대체하여 사용되고 있다. 다음은 ( )이 가질 수 있는 자료형이다.
- 숫자 : 정수와 실수를 표현한다.
- 문자열 : 유니코드를 문자로 표현하며, 큰 따옴표("")로 묶는다.
- 참/거짓: 참(True) 또는 거짓(False)을 표현한다.
- 배열 : 다양한 요소들을 쉼표로 구분하여 표현하며, 대괄호([])로 묶는다.
- 객체 : 이름/값 쌍으로 표현하며, 중괄호({})로 묶는다.
- NULL : 아직 알려지지 않거나 모른느 값을 표현하기 위한 자료형이다.
JSON
( 1 ) : 일정 시간 내에 애플리케이션이 처맇나느 일의 양을 의미한다.
( 2 ) : 애플리케이션에 요청한 전달한 시간부터 응답이 도착할 때까지 걸린 시간을 의미힌다.
( 3 ) : 애플리케이션에 작업을 의뢰한 시간 부터 처리가 완료될 때까지 걸린 시간을 의미한다.
자원 활용률 : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU, 메모리, 네트워크 등의 자원 사용률을 의미힌다.
- Throughput
- Response Time
- Turn Around Time
- 다양한 전송매체를 통해 비트 스트림을 전송한다.
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의힌다.
물리계층
미들웨어
공통 모듈을 여러 프로그램에서 공통으로 사용할 수 있는 모듈로, 여러 사람이 참조하는 데 어려움이 없도록 다양한 명세 기법을 준수해야한다. ( 1 ) 은 해당 기능을 중의적으로 해석하지 않도록 작성해야 한다는 원칙으로, 공통 모듈로 구현된 기능 간 상호 충돌이 발생하지 않도록 작성해야 한다는 ( 2 ) 과 함께 반드시 준수해야 하는 명세 기법이다.
- 명확성
- 일관성
개발자가 관리하고 통제해야하는 객체들의 제어 권한을 프레임워크에게 넘겨 생산성을 향상시키는 것
직관성, 유연성, 학습성, 유효성
ARIA
요구공학
트리거
인덱스는 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조로, 인덱스를 구성하는 구조나 특징에 따라 다양한 형태가 존재한다. 그중 ( )는 인덱스 컬럼의 데이터를 Bit 값이 0 또는 1로 변환하여 인덱스 키로 사용하는 방법으로, 키 값을 포함하는 로우(Row)의 주소를 제공하는 것이 목적이며, 데이터가 Bit로 구성되어 있기 때문에 효율적인 논리 연산이 가능하고 저장 공간이 작다. 또한 동일한 값이 반복되는 경우가 많아 압축 효율이 좋다.
비트맵 인덱스
에러 추정 검사, 체크리스트, 동치 클래스 분해, 조건 기반 테스트, 경계값 분석
동치 클래스 분해, 경계값 분석
테스트 검증 기준은 테스트가 얼마나 적정한지 판단하는 기준으로, 종류에는 크게 기능 기반 커버리지, 라인 커버리지, ( ) 가 있다.
- 기능 기반 커버리지 : 실제 테스트가 수행된 기능의 수 / 전체 기능의 수
- 라인 커버리지 : 테스트 시나리오가 수행한 소스 코드의 라인수 / 전체 소스 코드의 라인수
- ( ) : 소스 코드의 구문, 분기, 조건 등의 구조 코드 자체가 얼마나 테스트 되었는지 측정하는 방법이다.
코드 커버리지
와이어프레임
정의, 조작, 제어
시스템이 주어진 기능을 정확하게 해결하는 정도를 의미힌다.
도출, 분석, 명세, 확인
데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임으로, 다음과 같이 4가지로 구분하여 정의할 수 있다.
( 1 ) : 조직의 고유한 업무를 수행하는데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 데이터이다.
통합된 데이터 : 검색의 효율성을 위해 중복이 최소화된 데이터의 모임니다.
( 2 ) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터이다.
공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터이다.
- 운영데이터
- 저장된 데이터
급증하는 다량의 데이터를 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스이다. 신속 정확한 의사결정으로 경쟁력을 확보하기 위하여 의사결정용 데이터베이스의 필요성으로 인해 등장하였으며, 다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성한 후 데이터의 다차원 분석 도구로 이를 분석하여 의사결정에 필요한 자료를 얻는다.
데이터 웨어하우스
ESB, Enterprise Service Bus
UDDI, Universal Discription Discovery and Intergration
( ) 는 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것을 의미하다. ( )의 목표는 모듈 간 결합도의 최소화, 응집도의 최대화이다.
모듈화
Throughput, Available, Reliablity, Turn Arround Time -> TARTT
XSS
fsck
환형 대기
동일한 성격의 데이터들을 동일한 성격의 블록들에 저장하는 물리적인 방법이다.
- ( 1 ) : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행한다.
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행된다.
- ( 2 ) : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.
- 위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있다.
- 중복 투명성
- 병행 투명성
- DTO/VO 구현
- 데이터 교환을 위해 사용할 객체를 만드는 과정으로, 변수 및 객체 를 송수신할 데이터의 자료형에 알맞게 생성한다.- SQL 구현
- 데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문을 생성하는 과정으로 SQL문은 소스 코드내에 직접 입력하거나, 별도의 XML파일로 저장하여 관리한다.- ( 1 ) 구현
- 데이터 베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정이다.
Service 구현
- 사용자의 요청에 응답하기 위한 로직을 구현하는 과정이다.
( 2 ) 구현
- 사용자의 요청에 적절한 서비스를 호출하여 그 글과를 사용자에게 반환하는 코드를 구현하는 과정이다.
- DAO
- Controller
( ) 은 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동이다.
- ( ) 은 결과를 판단하기 위해 테스트 케이스에 대한 예상 결과를 계산하거나 확인한다.
- ( ) 의 특징
- 제한된 검증 : ( )을 모든 테스트 케이스에 적용할 수 없다.
- 수학적 기법 : ( )의 값을 수학적 기법을 이용하여 구할 수 있다.
- 자동화 기증 : 테스트 대상 프로그램의 실행, 결과 비교 ,커버리지 측정 등을 자동화 할 수 있다.
테스트 오라클
- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식이다.
- 개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경된 내용을 로컬 저장소에서 우선 반영한 다음 이를 원격 저장소에 반영한다.
- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업할 수 있다.
- 종류에는 Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper ,Plastic SCM 등이 있다.
분산 저장소 방식
프로그램 실행시간 보다 페이지 교체시간이 더 오래 걸리는 현상을 말한다.
정형 분석
온라인 업무 처리 형태의 하나로 네트워크 상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식으로, 여기서 단위 작업은 트랜잭션을 의미하며 데이터 무결성을 위해 각 트랜잭션은 그 전체가 완전히 행해지든지, 아니면 전혀 행해지지 않든지 둘 중 하나가 되도록 처리되어야한다. 이 시스템은 일반적으로 빠른 응답시간을 요구하며, 개개의 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화한다.
OLTP, 온라인 트랜잭션 처리
도메인 네임을 컴퓨터가 알기 쉽게 IP 주소로 변환하는 것이다.
- ( )은 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합니다.
- 데닝(Denning)이 제안한 프로그램의 움직임에 대한 모델로, 프로그램의 Locality 특징을 이용한다.
- 자주 참조되는 ( ) 을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.
- 시간이 지남에 다라 자주 참조하는 페이지들의 집합이 변화하기 때문에 ( ) 은 시간에 따라 변경된다.
워킹 셋