MOM(Message Oriented Middleware)
- 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어
- 온라인 업무보다 이기종 분산 데이터 시스템의 데이터 동기를 위해 사용
- 독립적 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할
- 송신 측과 수식 측의 연결 시 메시지 큐를 활용하는 방법
- 상이한 애플리케이션 간 통신을 비동기 방식 지원
- 연관관계(Association) : 유스케이스와 액터 간의 상호작용이 있음
- 포함관계(Include) : 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 떄 형성되는 관계
- 확장관계(Extend) : 확장 기능 유스케이스와 확정 대상 유스케이스 사이에 형성되는 관계
- 일반화관계(Generalization) : 유사한 유스케이스 또는 액터를 모아 추상화한 유스케이스 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계
- 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어
- 이기종 하드웨어, 소프트웨어, 네트워크, 프로토콜, PC환경, 운영체제 환경 등에서 시스템 간의 표준화된 연결을 도와주는 SW
- 표준화된 인터페이스를 통하여 시슽메 간의 데이터 교환에 있어 일관성을 제공
- 운영체제와 애플리케이션 사이에서 중간 매개 역할을 하는 다목적 SW
- 오버로딩 : 같은 이름의 메소드를 중복하여 정의 / 한 클래스 내에서 메서드의 이름은 동일하지만 매개변수의 수나 타입을 다르게 하여 재정의
- 오버라이딩 : 상속관계에서만 발생, 슈퍼클래스의 메서드를 서브클래스에서도 동일한 메서드를 재정의
- 액터 : 시스템과 상호작용하는 모든것(사람, 시스템, 기계 등)
- View는 Model에 있는 데이터를 사용자 인터페이스에 보이는 역할
- Controller는 Model에 명령을 보냄으로써 모델의 상태를 변경
- Controller는 View와 Model사이세ㅓ 전달자 역할 수행
상향식 통합 테스트 (Bottom Up Integration Test)
- 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)필요
하향식 통합 테스트 (Top Down Integration Test)
- 상위 모듈에서 하위 모듈 방향으로 통합
- 깊이 우선 통합법, 넓이 우선 통합법 사용
- 초기부터 사용자에게 시스템 구조를 보여줌
위험 요소 징후들에 대하여 계속적으로 인지하는 것
RCS(Revision Control System)
- CVS와의 차이점은 소스 파일의 수정을 한 사람만으로 제한한다.
- 다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구이다.
- 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.
RPC(Remote Procedure call)
- 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신
RTS(Reliable Transfer Service)
- 데이터 통신에서 신뢰성이 보장된 전송 서비스를 제공하는 프로토콜
RVS(Relative Version Systen)
- 파일의 상대적인 버전을 관리하는 도구로 각 파일 버전의 차이를 저장해 파일 복원과 변경 이력을 추적
- 선형 검색 - 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 검색
- 이진검색 - 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다.
계획 - 사전교육 - 준비 - 인스펙션 회의 - 수정 - 후속 조치
전위 운행 (PreOrder) => Root, Left, Right 순서
중위 운행 (InOrder) => Left, Root, Right 순서
후위 운행 (PostOrder) => Left, Right, Root 순서
- CppUnit - C++ 프로그래밍 언어용 단위 테스트 도구
- JUnit - 자바 프로그래밍 언어용 단위 테스트 도구
- HttpUnit - 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용되는 오픈 소스 소프트웨어 테스트 프레임워크 입니다.
저장 레코드 양식 설계 시 고려 사항
- 데이터 타입, 데이터 값의 분포, 접근 빈도
오답피하기 | 트랜잭션 모델링- 트랜잭션을 개념적 시스템 독립적으로 정의한다.
- 트랜잭션의 입출력 기능, 형태만 정의한다.
- 검색, 갱신, 혼합(검색, 갱신)
DCL(Data Control Language)
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
- ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구시킨다.
- GRANT : 데이터베이스 사용자에게 사용 권한 부여한다.
- REVOKE : 데이터베이스 사용자로부터 사용 권한 취소한다.
DDL(Data Definition Language)
- CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용
- DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
DML(Data Munipulation Language)
- SELECT : 테이블에서 조건에 맞는 튜플을 검색
- INSERT : 테이블에 새로운 튜플을 삽입
- DELETE : 테이블에서 조건에 맞는 튜플을 삭제
- UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경
- 후보키(Candidate Key): 기본키로 사용 가능한 속성, 유일성/최소성 만족
- 기본키(Primary Key): 후보키 중에서 선택됨, 중복된 값과 Null값 가질 수 없음. 반드시 필요한 키
- 슈퍼키(Super Key): 한 릴레이션 내 속성들의 집합으로 구성된 키, 유일성○, 최소성X
MAC (Mandatory Access Control)
- 강제 접근 통제
- 미리 정해진 자원의 보안 레벨과 사용자에게 허락된 접근 권한 비교
DAC (Discretionary Access Control)
- 임의적 접근통제
- 자원에 대한 접근을 사용자나 그룹의 신분에 따라 제한
- 자원의 소유권을 가진 사람이 다른 사람의 접근을 허용하거나 제한할 수 있음
RBAC (Role Based Access Control)
- 사용자 역할에 따른 접근 통제
- 개별적인 신분이 아니라 조직 내 그룹 / 역할에 따라 부여
- 지식 - 본인이 알고 있는 것 (ex. 패스워드, PIN 등)
- 소유 - 본인이 가지고 있는 것 (ex. 토큰, 스마트카드 등)
- 존재 - 본인을 나타내는 것 (ex. 홍채, 지문 등)
- 행위 - 본인이 하는 것 (ex. 서명, 움직임, 음성 등)
- 애자일 방법론 중 하나
- 소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법
- 상식적인 원리와 경험을 최대한 끌어 올리는 것이 구동시키는 원리
- 구체적인 실천 방법을 정의하고 있으며, 개발문서보다 소스코드에 집중
- 상속(Inheritance) : 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스(자식 클래스)가 물려받는 것
- 클래스: 하나 이상의 유사한 객체들을 묶는다.
- 캡슐화(Encapsulation): 서로 관련성이 많은 데이터들과 연산들을 묶는다.
- 연관관계 (Association) : 2개 이상의 사물이 서로 관련되어 있음을 표현한다
애자일 개발 프로세스 : 개발에 대한 개념적 방법론으로, 개발 프로젝트 기간을 짧은 주기로 나눠 반복적인 개발을 하는 것이 특징
1. 고객관점의 효율적이고 민첩한 변화 대응을 중시
[애자일 선언문]
" 프로세스, 도구 보다는 (사람과 상호작용)을
광범위한 문서 보다는 (실제 작동하는 제품)을
계약 협상보다는 (고객 협력)을
계획을 따르기 보다는 (변화 대응)을"
정규화 과정 [도부이결다조]
- 1NF : 모든 도메인이 원자 값으로만 구성
- 2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, 부분적 함수 종속을 제거한 정규형
- 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속 관계를 만족하지 않는 정규형
- BCNF : 모든 결정자가 후보키인 정규형, 종속성 보존X
- 4NF : 다치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
- 5NF : 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
트랜잭션의 특성
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
1.개체 무결성
각 릴레이션의 기본키를 구성하는 속성은 널(NULL) 값이나 중복된 값을 가질 수 없습니다.
2.참조무결성
외래키 값은 NULL이거나 참조하는 릴레이션의 기본키 값과 동일해야 합니다.
3.도메인 무결성
속성들의 값은 정의된 도메인에 속한 값이어야 합니다.
4.고유 무결성
특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 릴레이션의 각 튜플이 가지는 속성 값들은 서로 달라야 합니다.
5.NULL 무결성
릴레이션의 특정 속성 값은 NULL 될 수 없습니다.
6.키 무결성
각 릴레이션은 최소한 한 개 이상의 키가 존재해야 합니다.
RIP(Routing Information Protocol)
- 최단 경로 탐색에는 Bellman-Ford 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜
- 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 IGP에 해당한다.
- 최단경로탐색에는 Bellman-Ford 알고리즘을 사용한다.
- 최적의 경로를 산출하기 위한 정보로서 홉(거리 값)만을 고려하므로, RIP을 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다.
- 소규모 네트워크 환경에 적합하다.
- 최대 홉 카운트를 15홉 이하로 한정하고 있다.
(강함) 기능적 응집도 > 순차적 응집도 > 교환적 응집도 > 절차적 응집도 > 시간적 응집도 > 논리적 응집도 > 우연적 응집도 (약함)
- 원시 프로그램 규모(LOC)에 의한 비용 산정 기법
- 보헴(Boehm)이 제안
- 비교적 작은 규모의 프로젝트들을 통계 분석한 결과를 반영한 모델 -> 중소 규모 소프트웨어 프로젝트 비용 추정에 적합
- 비용 산정 결과는 Man-Month로 표현