UML - 사물
- 연관 관계 : 2개 이상의 사물이 서로 관련
- 집합 관계 : 하나의 사물이 다른 사물에 포함
- 포함 관계 : 포함하는 사물의 변화가 포함되는 사물에 영향을 미침
- 일반화 관계 : 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적
- 부모 - 자식 관계
- 의존 관계 : 연관은 있으나 필요에 의해 짧은 기간만 연관을 유지
- 실체화 관계 : 서로를 그룹화할 수 있는 관계
UML - 다이어그램
분류 종류 내용 구조적 다이어그램 클래스 다이어그램 - 클래스 사이의 관계 객체 다이어그램 - 인스턴스를 객체 사이의 관계로 표현
- 럼바우컴포넌트 다이어그램 - 컴포넌트 간의 관계 또는 인터페이스를 표현
- 구현 단계배치 다이어그램 - 물리적 요소들의 위치 표현 복합체 구조 다이어그램 - 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 구조 표현 패키지 다이어그램 - 모델 요소들을 그룹화한 패키지들의 관계 행위 다이어그램 유스케이스 다어이그램 - 사용자의 요구 분석 시퀀스 다이어그램 - 상호작용하는 시스템이나 객체들이 주고받는 메시지 표현 커뮤니케이션 다이어그램 - 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관 관계 표현 상태 다이어그램 - 변화 혹은 상호 작용에 따라 상태가 어떻게 변하는지 표현 활동 다이어그램 - 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 상호작용 개요 다이어그램 - 상호작용 다이어그램 간의 제어 흐름 표현 타이밍 다이어그램 - 객체 상태 변화와 시간 제약을 명시적으로 표현
DBMS (DataBase Management System)
스키마(Schema)
| 종류 | 내용 |
|---|---|
| 외부 스키마 | 개인의 입장에서 논리적 구조 정의 |
| 개념 스키마 | 조직 전체의 데이터베이스, 전체적인 논리적 구조 |
| 내부 스키마 | 물리적 저장장치 |
Degree 또는 차수 : 속성의 수Cardinality 또는 기수 : 튜플의 수| 종류 | 내용 |
|---|---|
| 개체 무결성 | 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없음 |
| 참조 무결성 | 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함 |
| 도메인 무결성 | 주어진 속성 값이 정의된 도메인에 속한 값이어야 함 |
| 연산 | 기호 | 설명 | SQL | 예시 |
|---|---|---|---|---|
| Selection | σ | 조건에 맞는 튜플 선택 | WHERE | σ(부서='인사')(직원) |
| Projection | π | 특정 속성만 추출 | SELECT | π 이름,직급(직원) |
| Join | ⋈ | 두 릴레이션을 공통 속성 기준으로 결합 | JOIN | 직원 ⋈ 부서 |
| Cartesian Product | × | 모든 튜플을 곱하여 조합 | 직원 × 부서 | |
| Difference (차집합) | − | A에만 존재하고 B에는 없는 튜플 | EXCEPT | 학생 − 수강생 |
| UNION (합집합) | ∪ | 두 릴레이션의 모든 튜플 합집합 | UNION | 학생 ∪ 수강생 |
| Intersection (교집합) | ∩ | 두 릴레이션에 모두 있는 튜플 | INTERSECT | 학생 ∩ 수강생 |
| Division | % | 모든 조건을 만족하는 튜플 | A % B |
| 절차 | 설명 |
|---|---|
| 제 1정규화 | 도메인의 원자성 확보 |
| 제 2정규화 | 부분 함수 종속성 제거 |
| 제 3정규화 | 이행 함수 종속성 제거 |
| BCNF | 모든 결정자가 후보키 집합에 속해야 함 |
| 제 4정규화 | 다중값 종속 제거 |
| 제 5정규화 | 조인 종속 제거 |
접근 통제
| 정책 | 통제 권한 | 정책 기준 | 유연성 | 보안성 |
|---|---|---|---|---|
| MAC (Mandatory Access Control) | 관리자 | 보안 등급에 따라 결정 | 낮음 | 매우 강함 |
| RBAC (Role-Based Access Control) | 관리자(역할 기준) | 사용자 -> 역할 -> 권한 간의 연결 | 매우 높음 | 역할 설계에 따라 다름 |
| DAC (Discretionary Access Control) | 소유자 | 사용자가 설정한 권한에 따름 | 높음 | 상대적으로 약함 |
| 패턴 | 설명 |
|---|---|
| 레이어 패턴 | 시스템을 계층으로 구분 및 구성 |
| 클라이언트-서버 패턴 | 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성 |
| 파이프-필터 패턴 | 각 단계를 필터로 캡슐화하여 파이프를 통해 전송 |
| MVC(Model-View-Controller) 패턴 | 모델, 뷰, 컨트롤러로 구조화 |
객체 지향 분석의 방법론
| 종류 | 내용 |
|---|---|
| 럼바우 | 객체, 동적, 기능 모델로 나눠 수행 |
| 부치 | 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스 모두 사용 |
| Jacobson | 유스케이스 강조 |
| Coad와 Yourdon | E-R 다이어그램 |
| 종류 | 내용 |
|---|---|
| 내용 결합도 | 한 모듈이 직접 참조하거나 수정 |
| 공통 결합도 | 공유되는 공통 데이터 영역을 여러 모듈이 사용 |
| 외부 결합도 | 외부의 다른 모듈에서 참조 |
| 제어 결합도 | 내부의 논리적 흐름을 제어하기 위해, 권리 전도 현상 |
| 스탬프 결합도 | 자료 구조가 전달될 때 |
| 자료 결합도 | 자료 요소로만 구성될 때 |
| 종류 | 내용 |
|---|---|
| 기능적 응집도 | 모든 기능 요소들이 단일 문제와 연관 |
| 순차적 응집도 | 그 다음 활동 입력데이터로 사용할 경우 |
| 교환적 응집도 | 동일한 입출력 사용, 다른 기능 수행하는 요소들이 모임 |
| 절차적 응집도 | 기능을 순차적으로 수행할 때 |
| 시간적 응집도 | 특정 시간에 처리되는 기능을 모아 하나의 모듈로 작성 |
| 논리적 응집도 | 처리 요소들로 하나의 모듈이 형성되는 경우 |
| 우연적 응집도 | 서로 관련 없는 요소로만 구성된 경우 |
우리 논산에 있던 시 절, 교자랑 순대 기억나?......| 종류 | 내용 |
|---|---|
| 싱글톤 | 하나의 인스턴스 |
| 팩토리 메소드 | 하나의 객체 생성, 가상생성자 |
| 추상 팩토리 | 서브 클래스 묶어 교체, 추상적 표현, 키트 패턴 |
| 빌더 | 단계적으로 복잡한 객체 조립, 조립자 패턴 |
| 프로토타입 | 기존 객체를 복사하여 생성, 복제 패턴 |
| 종류 | 내용 |
|---|---|
| 어댑터 | 다른 인터페이스 통일, 래퍼 패턴 |
| 프록시 | 객체 대신 요청 수행, 대리자 패턴 |
| 파사드 | 복잡한 서브시스템을 간단히 제공, 통합 인터페이스 패턴 |
| 브릿지 | 두 개의 별도 클래스 |
| 데코레이터 | 기능을 동적으로 추가 |
| 컴포지트 | 폴더와 파일 합성, 부분-전체 패턴 |
| 플라이웨이트 | 인스턴스 공유하여 메모리 절약, 경량 패턴 |
| 종류 | 내용 |
|---|---|
| 옵서버 | 상태 변화 감시 |
| 전략 | 알고리즘 교체 가능, 정책 패턴 |
| 책임 연쇄 | 요청 해결될 때까지 책임 넘어감 |
| 커맨드 | 명령어 하나로 합침, 동작 캡슐화 패턴 |
| 인터프리터 | 언어에 문법 표현 정의 |
| 반복자(iterator) | 같은 명령 반복, 커서 패턴 |
| 중재자(Mediator) | 복잡한 상호작용을 객체 정의, 조정자 패턴 |
| 메멘토(Memento) | 특정 시점의 상태로 돌릴 수 있음, 스냅샷 패턴 |
| 상태 | 객체 상태에 따라 동일 동작을 다르게, 오토마타 패턴 |
| 템플릿 메소드 | 상위 클래스에서 골격 정의 |
| 방문자 | 처리 기능을 별도 클래스로 구성 |