1과목 : 소프트웨어 설계
시스템 구성요소
•
입력 (Input)
•
처리 (Process)
•
출력 (Output)
•
제어 (Control)
•
피드백 (Feedback)
하향식 설계 방법과 상향식 설계 방법
•
하향식 설계
◦
계층 구조상에서 시스템의 주요 컴포넌트들을 찾고 그것을 낮은 수준의 컴포넌트들로 분해하는 것으로 단계적 정제라 하며 메인 모듈의 설계에서 시작하여 단계적으로 구체화시키는 것
◦
하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.
◦
하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다
•
상향식 설계
◦
가장 기본적인 컴포넌트를 먼저 설계한 다음 이것을 사용하는 상위 수준의 컴포넌트를 설계하는 것
◦
상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.
•
기존 컴포넌트들을 조합하여 시스템을 개발하는 경우에는 상향식이 적합
•
시스템 명세가 명확한 경우와 모든 것을 새로 개발하는 작업에는 하향식이 적합하다.
자료흐름도 4가지 구성소
•
처리 Process : 원
•
자료흐름 Data Flow : 화살표
•
자료저장소 Data Store : 평행선
•
단말 Terminal : 사각형
CASE의 원천 기술
•
구조적 기법
•
프로토타이핑 기술
•
자동프로그래밍 기술
•
정보 저장소 기술
•
분산 처리 기술
MOM(Message Oriented Middleware)
•
메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어이다.
•
온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용한다.
MOM(Message Oriented Middleware)은 즉각적인 응답을 원하는 경우가 아니라 다소 느리고 안정적인 응답을 필요로 하는 경우에 많이 사다
Requirements Checklist(요구사항 체크리스트)
•
유효성(Validity): 고객의 필요를 충족하는 기능을 제공하는지(요구한것이 맞는지)
•
일관성(Consistency): 충돌하는 요구사항이 존재하는지(ex.모순되는 제약조건)
•
완결성(Completeness): 고객이 요구한 모든 기능이 포함되었는지
•
현실성(Realism): 예산과 기술적으로로 실행 가능한지(일정 또한 포함)
•
검증 가능성(Verifiability): 만들고 난 뒤 요구사항들을 검증할 수 있는지(요구사항과 일치여부)
요구분석, 기능적 요구사항 Vs 비기능적 요구사항 ★
•
요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계
•
요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계
•
도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링
•
기능적 요구사항 : 시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항
•
비기능적 요구사항 : 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 실제 수행에 보조적인 요구사항
요구사항 개발 프로세스의 순서
요구사항을 "도출"해야 "분석"하고, 분석해야 자세히 쓸수 있고(=명세), 명세를 확인
럼바우 분석기법 (객2, 동상, 기자)
•
객체모델링 = 객체 다이어그램
•
동적모델링 = 상태 다이어그램
•
기능 모델링 = 자료흐름도
객체지향의 5가지 특징
•
캡슐화(Encapsulation)
•
정보 은닉(Information Hiding)
•
추상화(Abstraction)
•
상속성(Inheritance)
•
다형성(Polymorphism)
객체지향 설계 원칙(SOLID)
•
단일 책임의 원칙(SRP : Single Responsibility Principle) : 단일 목적
•
개방 - 폐쇄의 원칙(OCP : Open Closed Principle) : 확장 개방, 수정 페쇄
•
리스코프치환 원칙(LSP : Liskov Substitution Principle) - 상속
•
인터페이스 분리 원칙(ISP : Interface Segregation Principle) : 의존X
•
의존 역전 원칙(DIP : Dependency Inversion Principle)
객체지향 분석 방법론
1.Booch(부치)
•
미시적, 거시적 개발 프로세스를 모두 사용하는 분석방법.
•
클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
2. Jacobson(제이콥슨)
•
Use Case를 사용하여 분석(사용자, 외부 시스템, 다른 요소들이 시스템과 상호 작용 하는 방법을 기술)
3. Coad-Yourdon
•
E-R 다이어그램을 사용하여 객체의 행위를 모델링
•
객체 식별, 구조 식별
4. Wirfs-Brock
•
분석과 설계간 구분이 없으며, 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행
5.
럼바우
•
객체, 동적, 기능 모델로 나누어 수행하는 방법
UI 설계 지침 (사일 단결 가표접오명)
•
사용자 중심 : 사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경을 제공해 실 사용자에 대한 이해가 바탕이 되어야 함
•
일관성 : 버튼이나 조작 방법을 사용자가 기억하기 빠르고 쉽게 습득할 수 있도록 설계해야 함
•
단순성 : 조작 방법은 가장 간단하게 작동되도록 하여 인지적 부담 최소화
•
결과 예측 가능 : 작동시킬 기능만 보고도 결과 예측이 가능해야 함
•
가시성 : 주요 기능을 메인 화면에 노출하여 쉬운 조작이 가능해야 함
•
표준화 : 디자인을 표준화하여 기능 구조의 선행 학습 이후 쉽게 사용 가능해야 함
•
접근성 : 사용자의 직무, 연령, 성별 등이 고려된 다양한 계층을 수용해야
•
오류 발생 해결 : 사용자가 오류에 대한 상황을 정확하게 인지할 수 있어야 함
•
명확성 : 사용자가 개념적으로 쉽게 인지해야함
•
사용자가 UI를 통해서 프로그램을 사용할 때 발견할 수 있는 치명적 오류에 대한 부정적인 사항들을 인지할 수 있어야 프로그램의 개선이 가능하고 또 오류를 피할 수 있다
소프트웨어 아키텍처 설계 - 시스템 품질속성
•
가용성
•
변경용이성
•
성능
•
보안성
•
사용편의성
•
시험용이성
다형성 오버로딩, 오버라이딩
•
다형성
◦
현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 한다.
•
오버로딩
◦
같은 이름의 메소드를 중복하여 정의하는것
◦
한 클래스 내에서 메서드의 이름은 동일하지만 매개변수의 수나 타입을 다르게 하여 재정의 하는 것
•
오버라이딩
◦
상속관계에서만 발생. 슈퍼클래스의 메서드를 서브클래스에서도 동일한 메서드를 재정의 하는 것
인터페이스
인터페이스: 서로 다른 두 시스템이나 소프트웨어 등을 서로 이어주는 부분 또는 접속 장치를 의미
피드백(Feedback)
•
처리된 결과를 측정하고 목표에 도달되었는가를 검사하며 불충분할 경우 다시 입력하는 요소로 사용.
•
UI와 관련된 기본 개념 중 하나로, 시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령에 대한 진행 상황과 표시된 내용을 해석할 수 있도록 도와주는 것
사용자 인터페이스(UI, User Interface)의 구분
•
CLI(Command Line Interface) : 텍스트 형태 인터페이스
•
GUI(Graphical User Interface) : 마우스로 선택하여 작업하는 그래픽 환경 인터페이스
•
NUI(Natural User Interface) : 사용자의 말이나 행동으로 기기 조작하는 인터페이스
•
VUI(Voice User Interface) : 사람의 음성으로 기기 조작하는 인터페이스
•
OUI(Organic User Interface) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스
유스케이스 다이어그램(Use Case Diagram)
•
시스템 액터는 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고받는 등 서로 연동되는 시스템
•
유스케이스는 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한다.
•
액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
액터
•
시스템과 상호작용하는 모든 것(사람, 기계, 시스템 등)
유스케이스(Use Case)의 구성 요소 간의 관계
•
연관 : use case 와 actor의 관계
•
확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행할 usecase
•
포함 : 시스템의 기능이 별도의 기능을 포함
•
일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
•
그룹화 : 여러개의 usecase를 단순화하는 방법
UML 모델
•
Dependency(의존) : 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것을 말합니다 (Cascade 생각하셈)
•
Realization(실체화) : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
•
Generalization(일반화) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관계를 말합니다.('is-a')관계
•
Association(연관) : 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말함 ('has-a')관계라고도 합니다
정보공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어.
•
uml다이어그램
◦
Package Diagram
◦
State Transition Diagram
◦
Deployment Diagram
•
정보공학방법론
◦
Entity-Relationship Diagram
미들웨어(Middleware)
•
클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어이다.
•
이기종 하드웨어, 소프트웨어, 네트워크, 프로토콜, PC 환경, 운영체제 환경 등에서 시스템 간의 표준화된 연결을 도와주는 소프트웨어이다.
•
표준화된 인터페이스를 통하여 시스템 간의 데이터 교환에 있어 일관성을 제공한다.
•
운영체제와 애플리케이션 사이에서 중간 매개 역할을 하는 다목적 소프트웨어이다.
자료 사전 표기법
•
= : 자료의 정의
•
+ : 자료의 연결
•
() : 자료의 생략
•
[] : 자료의 선택
•
{} : 자료의 반복
•
** : 자료의 설명(주석)
GoF(Gang of Four) 디자인 패턴 ★★★
객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴.
•
생성패턴 : 객체를 생성하는 것에 대한 패턴
◦
추상 팩토리 패턴(abstract factory), 빌더 패턴(builder), 팩토리 메소드 패턴(factory method), 프로토타입 패턴(prototype), 싱글톤 패턴(singleton)
•
구조패턴 : 구조를 통해 확장성을 꾀하는 패턴
◦
어댑터 패턴(adapter), 브릿지 패턴(bridge), 컴포지트 패턴(composite), 데코레이터 패턴(decorator), 퍼사드 패턴(facade), 플라이웨잇 패턴(flysweight), 프록시 패턴(proxy)
•
행위 패턴 : 행위의 변경, 수정 등을 위한 패턴
◦
역할 사슬 패턴(책임 연쇄, chain of reposibility), 커맨드 패턴(command), 인터프리터 패턴(interpreter), 이터레이터 패턴(반복자, iterator), 미디에이터 패턴(중재자, mediator), 메멘토 패턴(memento), 옵저버 패턴(observer), 상태 패턴(state), 전략 패턴(strategy), 템플릿 메소드 패턴(template method), 비지터 패턴(방문자, visitor)
2과목 : 소프트웨어 개발
위험 모니터링의 의미
•
위험 요소 징후들에 대하여 계속적으로 인지하는 것
정형 기술 검토(FTR)의 지침
•
오류 검출에 초점을 두고 해결책을 나중으로 미룸(제품 검토의 집중성)
•
검토를 위한 자료를 사전에 배포하여 검토하도록 한다(사전 준비성)
•
의견을 제한하되 충분히 받아들인다(의제의 제한성)
•
안건을 세우면 고수한다(안건 고수성)
•
논쟁과 반박을 제한한다(논쟁 반박의 제한성)
•
문제 영역을 공개한다(문제 공개성)
•
참가자의 수를 제한한다(참가 인원의 제한성)
•
발견된 오류는 문서화한다(문서성)
소프트웨어 재공학의 주요 활동 (애널 선정, 마이 변환, 리구성, 리얻)
•
Analysis: 기존 소프트웨어를 분석하여 재공학 대상을 선정하는 것
•
Migration: 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업
•
Restructuring: 기존 소프트웨어를 향상시키기 위하여 코드를 재구성하는 작업(기능과 외적 동작은 변하지 않음)
•
Reverse Engineering: 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업(소스코드로 소프트웨어를 만드는 작업의 역작업)
검증(Verification)과 확인 (Validation) - (검개, 확사)
•
검증(Verification): 소프트웨어가 요구사항에 부합하게 구현되었음을 보장하는 활동 (개발자)
•
확인(Validation): 소프트웨어가 고객의 의도에 따라 구현되었음을 보장하는 활동 (사용자)
RCS(Revision Control System)
동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
•
CVS와의 차이점은 소스 파일의 수정을 한 사람만으로 제한한다.
•
다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구이다.
•
다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.
RPC(Remote Procedure call)
•
별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신
NS-Chart(Nassi-Schneiderman Chart)
•
3가지 기본구조만으로 논리를 표현(표준화 가능)
•
Flow Chart의 최대 단점인 화살표가 표시되지 않음
•
기본구조의 입구와 출구는 각 하나씩
•
전체적인 알고리즘을 일목요연하게 볼 수 있음
•
논리 기술에 중점을 둔 도형을 이용한 표현 방법으로 박스 다이어그램, Chapin Chart 라고도 한다.
•
GOTO나 화살표를 사용하지 않는다.
정렬
8개 종류: [선택, 버블, 삽입, 쉘, 퀵, 힙, 이진병합, 버킷정렬]
•
종류 최상 평균 최악
•
선택 정렬 O(n) O(n2) O(n2)
◦
큐 사
•
버블 정렬 O(n2) O(n2) O(n2)
•
삽입 정렬 O(n2) O(n2) O(n2)
•
쉘 정렬 O(n) O(n1.5) O(n2)
•
퀵 정렬 O(nlog2n) O(nlog2n) O(n2)
◦
분할 정복 알고리즘
◦
피벗(pivot)
◦
레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방식
•
힙 정렬 O(nlog2n) O(nlog2n) O(nlog2n)
◦
전이진 트리를 이용한 정렬 방식
•
이진병합 정렬 O(nlog2n) O(nlog2n) O(nlog2n)
ISO/IEC 25000
•
SW 품질 평가 통합 모델
•
SQuaRE로도 불림
•
ISO/IEC 9126, ISO/IEC 12119, ISO/IEC 14598의 3개 표준을 통합한 모델
•
2500n : 개요 및 품질관리
•
2501n : 품질모델
•
2502n : 품질측정
•
2503n : 품질요구
•
2504n : 품질평가
•
2505n : 확장분야
ISO 12207 표준의 기본 생명주기의 주요 프로세스
•
기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수 프로세스
•
지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 문제 해결 프로세스
•
조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스
알고리즘 관련 설명
•
주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것으로 볼 수 있다.
•
선형 검색 - 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 검색
•
이진검색 - 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다.
스택의 삽입/삭제로 알고리즘
// 삽입
if TOP >= n then call Stack-Full;
else TOP = TOP + 1;
Stack(TOP) = Data;
end Insert
C
복사
// 삭제
if TOP = 0
then Underflow
Else
Remove S(TOP)
TOP = TOP - 1
C
복사
// 오버플로
TOP <- TOP + 1
if TOP > n then goto AA
else Stack(TOP) <- item
C
복사
통합 테스트 드라이버, 스텁
•
테스트 드라이버(test driver) : 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈
•
테스트 스텁(test stub) : 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할
•
테스트 드라이버 : 하위 → 상위 - 상향식 테스트
•
테스트 스텁 : 상위 → 하위 - 하향식 테스트
테스트 케이스 자동 생성 도구 (자기 입랜)
•
자료 흐름도
•
기능 테스트
•
입력 도메인 분석
•
랜덤 테스트
빌드 자동화 도구
•
Ant, Maven, Gradle
형상 관리 도구
•
GIT,CVS, Subversion 등
Compile
•
주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 기능
•
고급언어(사람이 인식하는 언어)에서 저급언어(기계어)로 바꾸는 변환하는 기능
워크스루(Walkthrough)
•
사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용할 수 있다.
•
복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용
•
단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것
•
요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견
인스펙션(Inspection) 과정
가 - 사전교육
나 - 준비
다 - 인스펙션 회의
라 - 수정
마 - 후속조치
물리데이터 저장소의 파티션 설계에서 파티션 유형 (범해조)
•
범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
•
해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터 분할
•
조합 분할(Composite Partitioning) : 범위 분할 후 해시 함수를 적용하여 다시 분할
•
리스트 분할
소스코드 품질분석 도구
•
정적 분석 도구
◦
pmd :소스 코드에 대한 미사용 변수 최적화안된 코드 등 결함을 유발할 수 있는 코드 검사
◦
cppcheck : C/C++ 코드에 대한 메모리 누수 오버플로우 등 분석
◦
SonarQube : 중복 코드 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
◦
checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사한다.
◦
ccm : 다양한 언어의 코드 복잡도를 분석한다.
◦
cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정
•
동적 분석 도구
◦
Avalanche : Valgrind 프레임워크 및 STP기반 / 프로그램 결함 및 취약점 분석
◦
valgrind : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석
3과목 : 데이터베이스 구축
정규화 과정 [도부이결다조] - 논리적 설계 단계 ★★★★
도부 이결 다조?
•
1NF : 모든 *도*메인이 원자 값으로만 구성
•
2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, *부*분적 함수 종속을 제거한 정규형
•
3NF : 기본키가 아닌 모든 속성이 기본키에 대해 *이*행적 함수 종속 관계를 만족하지 않는 정규형
•
BCNF : 모든 *결*정자가 후보키인 정규형, 종속성 보존X
•
4NF : *다*치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
•
5NF : 모든 *조*인 종속이 R의 후보키를 통해서만 성립되는 정규형
2NF → 3NF : 정규화 과정에서 함수 종속이 A→B 이고 B→C 일 때 A→C인 관계를 제거하는 단계
데이터베이스의 무결성 규정(Integrity Rule) ★
•
데이터베이스의 데이터가 정확하고 일관성을 유지하도록 보장하는 제약 조건
•
무결성규칙 = db에서 무결성규칙은 데이터무결성을 지키기 위한 모든 제약사항을 뜻함
•
개체무결성 = 모든 테이블이 기본키로 선택된 컬럼을 가져야함
•
참조무결성 = 참조관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지하는것
•
도메인무결성 = 테이블에 존재하는 필드의 무결성을 보장하기 위한것 ex ) 어떤 값의 허용 에 대한 사항을 정의하고 올바른데이터가 입력되엇는가 확인하는것
데이터베이스의 트랜잭션 성질들
•
원자성(Atomicity) : 모두 실행되거나 모두 실행되지 않거나
•
일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
•
격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
•
영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
직렬화 기법
•
로킹, 타임스탬프
로킹 (병행제어 기법의 종류 중 하나) 크면 작고 작으면 크고
•
직렬화 기법
•
데이터베이스, 파일, 레코드 등은 로킹단위가 될 수 있음.
•
로킹 단위가 작아지면, 데이터 베이스 공유도 증가.
•
로킹 단위가 작아지면, 로킹 오버헤드 증가.
•
로킹 단위가 작아지면, 로크의 수 증가.
•
로킹 단위가 작아지면, 병행성 수준이 높아짐.
•
한꺼번에 로킹할 수 있는 객체의 크기를 로킹단위 라고 함.
타임스탬프 기법
•
동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법
이상(Anomaly)
•
데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것
•
이상의 종류
1. 삽입 이상
2. 갱신 이상
3. 삭제 이상
저장 레코드 양식 설계 시 고려 사항
•
데이터 타입, 데이터 값의 분포, 접근 빈도
•
트랜잭션 모델링은 개념적 설계 단계
트랜잭션 모델링
•
트랜잭션을 개념적 시스템 독립적으로 정의한다.
•
트랜잭션의 입출력 기능, 형태만 정의한다.
•
검색, 갱신, 혼합(검색, 갱신)
뷰
•
DBA는 보안 측면에서 뷰를 활용할 수 있다.
•
뷰 위에 또 다른 뷰를 정의할 수 있다.
•
독립적인 인덱스를 가질 수 없다.
•
삽입, 삭제, 갱신 연산에 제약이 따름
DDL ★
•
CREATE: SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의한다.
•
ALTER: TABLE에 대한 정의를 변경하는 데 사용한다.
•
DROP: SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제한다.
DML ★
•
SELECT : 테이블에서 조건에 맞는 튜플 검색
•
INSERT : 테이블에 새로운 튜플 삽입
•
UPDATE : 테이블에서 조건에 맞는 튜플의 내용 갱신
•
DELETE : 테이블에서 조건에 맞는 튜플 삭제
DCL ★
•
COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료 됐음을 알려주는 명령어
•
ROLLBACK : 아직 COMMIT 되지 않은 변경된 모든내용 들을 취소하고 , 데이터베이스를 이전 상태로 되돌리는 명령어
•
GRANT : 데이터베이스 사용자에게 사용 권한 부여
•
REVOKE : 데이터베이스 사용자의 사용 권한 취소
키(Key) ★
•
기본키(Primary Key)
◦
후보키 중에서 선택됨, 중복된 값과 Null값 가질 수 없음. 반드시 필요한 키
•
후보키(Candidate Key)
◦
기본키로 사용 가능한 속성, 유일성/최소성 만족
•
대체키(Alternate Key)
◦
대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미
◦
== 보조키
•
슈퍼키(Super Key)
◦
한 릴레이션 내 속성들의 집합으로 구성된 키, 유일성○, 최소성X
•
외래키
◦
관계형 데이터베이스에서 한 테이블 속성 집합이 다른 테이블의 기본키가 됨.
◦
데이터베이스 내에 존재하는 테이블들의 관계에서 참조의 무결성을 보장하기 위함임
◦
중복되는 값, 비어있는 값(Null) 가질 수 있음(<->기본키)
기본키
•
후보키 중에서 선정된 주키(MAIN KEY)로 중복된 값을 가질 수 없다.
•
한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
•
기본키는 후보키의 성질을 갖는다. 즉 튜플을 식별하기 위해 반드시 필요한 키
•
기본키는 NULL 값을 가질 수 없다. 즉 기본키로 설정된 속성에는 NULL값이 있어서는 안된다.
•
검색할때 반드시 필요한 것은 아니다
•
하지만 기본키로 검색하면 유일한 튜플을 조회할 수 있다.
데이터 모델의 구성 요소
•
구조(Structure):논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현
•
연산(Operation):실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본 도구
•
제약 조건(Constraint):DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
Partially Committed
•
트랜잭션의 상태 중 트랜잭션의 마지막 연산이 실행된 직후의 상태
•
모든 연산의 처리는 끝났지만 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하지 않은 상태
튜플과 속성의 수
•
차수(Degree) : 속성의 수
•
카디널리티(Cardinality) : 튜플의 수 (기수)
DELETE와 DROP
•
DELETE문은 테이블내의 튜플들만 삭제
•
DROP문은 테이블 자체를 삭제
CREATE TABLE에 포함되는 기능
•
테이블 생성: 새로운 테이블을 데이터베이스에 추가합니다.
•
컬럼 정의: 각 컬럼의 이름과 데이터 타입을 지정합니다.
•
제약조건 설정: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL 등의 제약조건을 설정하여 데이터 무결성을 강화합니다.
•
기본값 설정: DEFAULT를 통해 특정 컬럼에 기본값을 지정할 수 있습니다.
ALTER TABLE 문 : 속성타입 변경
관계 데이터베이스에 있어서 관계 대수 연산
1. 일반 집합 연산자
•
합집합
•
교집합
•
차집합
•
카티션 프로덕트(곱집합)
2. 순수 관계 연산자
•
셀렉트
•
프로젝트
•
조인
•
디비전
UNION, UNION ALL
•
UNION ALL : 각 쿼리의 모든 결과를 포함한 합집합 (중복제거 안함)
•
UNION : 각 쿼리의 결과 합을 반환하는 합집합 (중복제거)
카티션 프로덕트(cartesian product)
•
두 테이블 곱집합
•
두 개의 테이블은 카티션 프로덕트 후 튜플의 수는 각 테이블의 곱,
•
컬럼은 각 테이블의 컬럼을 더한 것 과 같다.
애트리뷰트 집합
•
X → Y
•
어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합
•
X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속
•
X를 결정자, Y를 종속자
4과목 : 프로그래밍 언어 활용
응집도 (우논시절 교순기) 약한 순 ★★★★★
우연적 < 논리적 < 시간적 < 절차적 < 교환적 < 순차적 < 기능적
•
Temporal Cohension(시간적 응집도)
◦
모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우
•
Logical Cohension(논리적 응집도)
◦
모듈 내 구성 요소들이 같은 범주에 속하는 기능끼리 묶인 경우(ex. 새글, 불러오기, 저장하기, 다른이름으로 저장하기)
•
Coincidental Cohension(우연적 응집도)
◦
모듈 내 구성 요소들이 뚜렷한 관계없이 묶인 경우
•
Sequential Cohension(순차적 응집도)
◦
모듈 내 구성 요소들이 이전의 명령어로부터 나온 출력결과를 그 다음 명령어의 입력자료로 사용하는 경우(ex. 총점과 평균의 관계)
결합도 정도 (내 > 공 > 부 > 제 > 스 > 자) 높은 순 ★★★★★
•
자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도
•
자료 결합도 : 처리 결과를 다시 돌려주는 경우의 결합도
•
스탬프 결합도 : 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도
•
제어 결합도 : 제어 신호를 이용하여 통신하는 경우의 결합도
•
외부 결합도 : 한 모듈에서 외부로 선언한 변수를 다른 모듈에서 참조할 경우의 결합도
•
공통 결합도 : 여러 모듈이 공통 자료 영역 사용하는 경우의 결합도
•
내용 결합도 : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 참조하는 경우 결합도
교착상태 발생 조건
•
상호 배제(mutual exclusion)
•
점유와 대기(hold and wait)
•
비선점(Non-preemption)
•
환형 대기(Circular wait)
교착상태 해결 방법 알고리즘에 해당되는 기법
•
Detection(탐지) : 교착상태 발생을 허용하고 발생 시 원인을 규명하여 해결 (ex 자원할당 그래프)
•
Avoidance (회피) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법 (ex 은행원 알고리즘)
•
Recovery (복구) : 교착상태 발견 후 현황대기를 배제시키거나 자원을 중단하는 메모리 할당 기법 (ex 선점, 프로세스 중지(희생자 선택)
•
Prevention(예방) : 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법 (ex 환형대기, 비선점, 점유와 대기, 상호배제 4가지 부정)
프로세스
•
디스패치 (Dispatch) : 준비 -> 실행
•
할당시간초과 (Time Run Out) : 실행 -> 준비
•
대기 (Block) : 실행 -> 대기
•
깨움 (Wake Up) : 대기 -> 준비
•
PCB : 운영체제가 그 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블
◦
상태, 소유자, 실시간 통계, 스레드, 관련 프로세스 리스트, 자식 프로세스 리스트, 주소공간, 자원, 스택
•
문맥교환 : CPU가 현재 실행하고 있는 프로세스의 상태를 PCB에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업
•
스레드 : 프로세스의 실행단위
프로세스 적재 정책
•
반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.
•
공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
•
스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.
•
스레싱현상 : 일방적으로 페이지수행 시간보다 교환시간이 커질 때 발생
IP 프로토콜에서 사용하는 필드
•
Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시한다.
•
Packet Length (16 bits): IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이를 바이트 단위로 길이를 표시. (최대값은 65,535 = 2^16 - 1)
•
Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것
•
Version Number는 IP 프로토콜의 버전번호를 나타낸다.
IP 주소체계와 관련한 설명
•
IPv6
◦
주소 자동설정(Auto Configuration) 기능을 통해 손쉽게 이용자의 단말을 네트워크에 접속시킬 수 있다.
◦
128비트 주소
◦
40 octet의 고정된 길이를 가진다.
◦
헤더가 40byte(320bit)로 고정되어 있고, 주소크기는 128bit
◦
기존 IPv4의 주소 부족 문제를 해결하기 개발
◦
인증성/기밀성/무결성 지원 (=보안성 강화)
◦
유니캐스트, 애니캐스트, 멀티캐스트 사용
•
IPv4
◦
헤더가 가변적이고, 주소크기는 32bit
◦
호스트 주소를 자동으로 설정하며 유니캐스트(Unicast)를 지원한다.
◦
클래스별로 네트워크와 호스트 주소의 길이가 다르다.
◦
유니캐스트/멀티캐스트/브로드캐스트 사용
TCP/IP 계층
•
TCP = 전송 계층(4)
•
IP = 네트워크 계층(3)
통신계층 캡슐화 시 데이터 단위
•
application layer(응용 계층): messages / data (메시지/데이터)
•
transport layer(전송 계층): segment(세그먼트)
•
network layer(네트워크 계층): datagram / packet (데이터그램/패킷)
•
data link layer(데이터링크 계층): frame(프레임)
•
physical layer(물리계층): bits(비트)
HRN 스케줄링
•
비선점 스케줄링
•
실행시간이 긴 프로세스에 불리한 SJF 을 보완하기 위해 대기시간 및 서비스 시간을 이용
•
긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.
•
우선순위를 계산 숫자가 높은것부터 낮은순으로 순위 부여
•
(대기시간 + 서비스시간) / 서비스시간 = 우선순위값) 값이 클수록 우선순위가 높다.
C언어에서 문자열 처리 함수
strcat - 문자열 연결 함수
strcmp - 문자열 비교
C언어 연산자 우선순위
1.
증감 연산자( ++ -- )
2.
산술 연산자( * / % )
3.
산술 연산자( + - )
4.
시프트 연산자( << >> )
5.
관계 연산자(=< => < > )
6.
관계 연산자( == != ) → 비트 연산자( & ^ | )
7.
논리 연산자( && ||)
8.
조건연산자(?:)
9.
대입연산자(= += *= /= %= <<= >>=)
10.
순서 연산자( , )
RIP(Routing Information Protocol) 라우팅 프로토콜
•
최단 경로 탐색에는 Bellman-Ford 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜
•
라우팅 프로토콜을 IGP와 EGP로 분류했을 때 IGP에 해당한다.
•
최적의 경로를 산출하기 위한 정보로서 홉(거리 값)만을 고려하므로, RIP을 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다.
•
소규모 네트워크 환경에 적합하다.
•
최대 홉 카운트를 15홉 이하로 한정하고 있다.
자율 시스템(AS : Autonomous System)
•
하나의 기관 내부를 나타내는 것으로 라우터들과 통신기기들의 집합. 예를 들면 하나의 학내망
•
IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)
◦
학내망 내부에서 라우팅하는것. 즉 하나의 AS 내에서의 라우팅에 사용되는 프로토콜
•
EGP(Exterior Gateway Protocol, 외부 게이트웨이 프로토콜)
◦
학내망과 다른 학내망의 라우팅에 사용. 즉 AS간의 라우팅에 사용되는 프로토콜
•
RIP는 OSPF와 함께 IGP(내부 게이트웨이 프로토콜)에 해당
페이징 기법
컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리 기법
•
페이지 크기가 작은경우
◦
페이징 사상테이블 증가
◦
내부 단편화 감소
◦
페이지의 집합을 효율적으로 운영가능
◦
기억장치의 효율이 좋음
◦
총 입출력 시간 증가
•
페이지크기가 큼
◦
주기억 장치 공간 절약
◦
참조되는 정보와 무관한 양의 정보가 주기억 장치에 남게 됨
◦
테이블이 복잡하지 않아 관리 용이
페이지 교체 알고리즘의 종류
•
OPT - Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
•
FIFO - First In First Out
•
LRU - Least Recently Used : 가장 오랫동안 사용되지 않은 페이지 교체
•
LFU - Least Frequently Used : 참조 횟수가 가장 적은 페이지 교체
•
MFU - Most Frequently used : 참조 횟수가 가장 많은 페이지 교체
•
NUR - Not Used Recently : 최근에 사용하지 않은 페이지 교체
UDP(User Datagram Protocol)
•
비연결형 및 비신뢰성 전송 서비스를 제공한다.
•
흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
•
수신된 데이터의 순서 재조정 기능을 지원하지 않는다.
•
복구 기능을 제공하지 않는다.
사용자 수준에서 지원되는 스레드(thread)가 커널에서 지원되는 스레드에 비해 가지는 장점
•
한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
•
동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.
•
각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.
는 커널 수준 스레드의 장점이라기 보다는 사용자 수준에서 지원되는 스레드도 가능한 기능일 뿐더러 '커널에서 지원되는 스레도'도 가능한 기능입니다.
때문에 커널에 비해 사용자 수준에서 지원되는 스레드만의 장점이라고 보기에는 힘들기 때문에 오답인 것 입니다.
JAVA의 예외(exception)
문법 오류는 컴파일 시 에러가 발생
•
오동작이나 결과에 악영향을 미칠 수 있는 실행 시간 동안에 발생한 오류
•
배열의 인덱스가 그 범위를 넘어서는 경우 발생하는 오류
•
존재하지 않는 파일을 읽으려고 하는 경우에 발생하는 오류
JAVA 우선순위
•
-- > % > & > =
상호배제 기법
1.
데커의 알고리즘
프로세스가 두개일때 상호 배제를 보장하는 최초의 알고리즘- flag와 turn 변수를 사용하여 조정
2.
램퍼드 알고리즘
프로세스 n개의 상호 배제 문제를 해결한 알고리즘- 프로세스에게 고유한 번호를 부여하고, 번호를 기준으로 우선순위를 정하여 우선순위가 높은 프로세스가 먼저 임계구역에 진입하도록 구현.
3.
피터슨 알고리즘
프로세스가 두개일때 상호 배제를 보장, 데커의 알고리즘과 유사하지만 상대방에게 진입 기회를 양보한다는 차이가 있고 보다 더 간단하게 구현됨
4.
세마포어
공유된 자원의 데이터 혹은 임계영역 등에 따라 여러 Process 혹은 Thread가 접근하는 것을 막아줌(동기화 대상이 하나 이상)
기억장치 배치 전략
•
First Fit: 들어갈 수 있는 첫 번째 공간에 넣음
•
Best Fit: 내부 단편화(자투리)가 가장 적게 남는 공간에 넣음
•
Worst Fit: 가장 큰 공간에 넣음
언어 문제
{14 ,22, 30, 38 }
주소값 10,11,12,13 / 14,15,16,17 / 18,19,20,21 / 22,23,24,25
자리값 a(0) a(1) a(2) a(3)
•
1개의 주소값 : 1Byte
printf("%u, ", &a[2]; a[2]자리의 첫번째 주소값 18
printf("%u", a); a[0]자리의 첫번째 주소값 10
5과목 : 정보시스템 구축관리
침입탐지 시스템(IDS : Intrusion Detection System)
•
이상탐지(Anomaly Detection) - ABS, 2평
◦
Behavior, Statistical Detection
◦
평균적 시스템의 상태 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려줌
•
오용탐지(Misuse Detection) - MSK, 오미(자)
◦
Signature Base나 Knowledge Base
◦
미리 입력해둔 공격 패턴이 감지되면 이를 알려줌
라우팅 프로토콜
•
거리 벡터 라우팅 프로토콜
◦
Bellman-Ford 알고리즘 사용
◦
RIP 프로토콜(최대 홉 수 15)
◦
인접 라우터와 주기적으로 정보 교환
•
링크 상태 라우팅 프로토콜
◦
Dijkstra 알고리즘 사용
◦
OSPF 프로토콜(홉 수 제한 없음)
◦
최단 경로, 최소 지연, 최대 처리량
접근 제어 방식
•
강제접근통제(Mandatory Access Control)
◦
주체와 객체의 등급(수준)을 비교하여 접근 권한을 부여하는 방식
•
임의접근통제(Discretionary Access Control)
◦
접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
•
사용자계정컨트롤(User Access Control)
◦
프로그램에서 관리자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려서 제어할 수 있도록 돕는 기능
•
자료별 접근통제(Data-Label Access Control > Label-Based Access Control)
◦
개별 행, 열에 대해 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식
CBD 방법론의 개발 공정
1.
분석 → 사용자 요구사항 정의서, 유스케이스 명세서, 요구사항 추적표
2.
설계 → 클래스 설계서, UI(사용자 인터페이스) 설계서, 아키텍처 설계서, 인터페이스 설계서, 컴포넌트 설계서, 데이터베이스 설계서
3.
구현 → 프로그램 코드, 단위시험 결과서, 데이터베이스 테이블
4.
테스트(시험) → 통합시험 결과서, 시스템시험 결과서, 사용자 지침서, 운영자 지침서, 시스템 설치 결과서, 인수시험 시나리오, 인수시험 결과서
암호화 방식
•
대칭키 암호화 - 블록 암호화 방식 : DES, SEED, AES, ARIA
•
개인키 암호화 - 스트림 암호화 방식 : LFSR, RC4
•
공개키 암호화(비대칭 암호) : RSA(소수)
•
단방향 - hash : SHA
BcN
음성·데이터·유무선 등 통신·방송·인터넷이 융합된 품질 보장형 광대역 멀티미디어 서비스를 공간에 제한없이 실시간으로 이용할 수 있는 차세대 네트워크 환경이다.
Marine Navi
소형 선박에 설치된 GPS 기반 선박자동 식별장치(AIS: Automatic Identification System)를 기본으로 주변 선박의 이동 속도와 위치를 파악한다.
C-V2X(Cellular Vehicle To Everything)
엘티이(LTE), 5G와 같은 셀룰러 이동통신망을 통해 차량이 다른 차량이나 교통 인프라, 보행자, 네트워크 등과 정보를 서로 주고받는 차량 통신 기술.
tcp wrapper
•
어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 그 반대의 경우에는 거부할 수 있는 접근제어 유틸리티
라이브러리와 프레임워크
•
사용자 코드에서 호출해서 사용하고 그에 대한 제어를 할 수 있는 것은 라이브러리이다.
•
프레임워크는 이미 정해진 코드를 호출해 사용하고 자체적인 흐름을 가지고 있음.
대칭 암호 알고리즘과 비대칭 암호 알고리즘에 대한 설명
•
대칭 암호 알고리즘은 비교적 실행 속도가 빠르기 때문에 다양한 암호의 핵심 함수로 사용 가능
•
대칭 암호 알고리즘은 비밀키 전달을 위한 키 교환이 필요함
•
암호화 및 복호화의 속도가 빠르다.
•
비대칭 암호 알고리즘은 자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용이 가능
•
대표적인 대칭키 암호 알고리즘으로는 AES, IDEA 등이 존재
테일러링(Tailoring)
•
프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동
•
관리 측면에서의 목적 중 하나는 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것
•
기술적 측면에서의 목적 중 하나는 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것
소프트웨어 비용 추정 모형
•
COCOMO : 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식
•
Putnam : 소프트웨어 개발 주기의 간 단계별로 요구할 인력의 분포를 가정하는 모형
•
Function-Point(FP) : 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정하는 방식
COCOMO(Constructive Cost Model) 모형의 특징
•
원시 프로그램 규모(LOC)에 의한 비용 산정 기법
•
보헴(Boehm)이 제안
•
비교적 작은 규모의 프로젝트들을 통계 분석한 결과를 반영한 모델 -> 중소 규모 소프트웨어 프로젝트 비용 추정에 적합
•
비용 산정 결과는 Man-Month로 표현
•
소프트웨어 개발유형에 따른 분류
◦
조직형(Organic)
▪
5만 라인 이하
▪
사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
◦
반분리형(Semi-Detached)
▪
30만 라인 이하
▪
컴파일러, 인터프리터 개발에 적합
◦
내장형(Embedded)
▪
30만 라인 이상
▪
미사일 유도 시스템, 실시간 처리 시스템 개발에 적합
사용자 인증의 유형
1. 지식 - 본인이 알고 있는 것 (ex. 패스워드, PIN 등)
2. 소유 - 본인이 가지고 있는 것 (ex. 토큰, 스마트카드 등)
3. 존재 - 본인을 나타내는 것 (ex. 홍채, 지문 등)
4. 행위 - 본인이 하는 것 (ex. 서명, 움직임, 음성 등)
NFS(Network File System)
네트워크상에서 공유되는 파일시스템. 다른 원격 호스트의 파일 시스템을 로컬 디스크에 접근하듯 간단하게 접근하여 자신의 디렉토리처럼 사용할 수 있다
Network Mapper
네트워크 보안을 위한 유틸리티. 네트워크의 보안을 위해 물리적 연결과 어떤 서버와 운영 체제가 작동 중인지 따위를 조사하는 응용 프로그램
AOE Network(Activity On Edge Network)
어떤 프로젝트를 마치기까지 수행되는 작업의 각 단계(상태)를 그래프의 정점(Vertex)으로 표현하고, 작업 하나가 완료되어 다음 단계로 넘어가는 시간을 그래프의 간선(Edge)으로 나타낸 방향 그래프
공격 방식
•
Parsing
◦
하나의 프로그램을 런타임 환경(예를 들면, 브라우저 내 자바스크립트 엔진)이 실제로 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것을 의미함
•
LAN Tapping
◦
처음 들어보는 용어이고, 찾아도 제대로된 정의가 나오지 않으나 Lan+Tapping으로 해석한다면 LAN신호를 직접 자신에게 끌어오는 방식의 공격정도로 해석 가능함
•
Switch Jamming
◦
스위치의 기능이 방해 받아 정상 동작을 하지 못해 스위치가 더미 허브처럼 작동 하게 되는 것
◦
Switch + Jamming(방해)
•
FTP(SYN) Flooding
◦
TCP의 3 Way Handshake 취약점을 이용한 DoS 공격으로 다량의 SYN패킷을 보내 백로그큐를 가득 채우는 공격
◦
통상적으로 위의 공격법을 TCP SYN Flooding 이라고 칭하는 경우가 많음
◦
FTP프로토콜을 사용한 서버에 다량의 SYN 패킷을 보내 마비시키는것을 FTP Flooding이라고 볼 수 있음.
블루투스(Bluetooth) 공격
•
블루버그: 블루투스 장비사이의 취약한 연결 관리를 악용한 공격
•
블루스나프(블루스나핑): 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람
•
블루재킹: 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
•
블루프린팅(BluePrinting) - 블루투스 공격 장치의 검색 활동을 의미
직접 연결 저장장치(Direct-attached storage,DAS)
간트 차트(Gantt Chart)
•
수평 막대의 길이는 각 작업(Task)에 필요한 기간
•
프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야 하는지를 한 눈에 볼 수 있도록 도와준다.
•
자원 배치 계획에 유용하게 사용된다
•
CPM 네트워크로부터 만드는 것이 가능하다
Scrapy
•
파이썬 기반의 웹크롤러 프레임 워크
•
가볍고 빠르고 확장성이 좋음
리눅스 로그 파일
•
wtmp
◦
성공한 로그인/로그아웃 정보를 담고 있는 로그파일
◦
var/log/wtmp에 위치
◦
last 명령어 사용
•
utmp
◦
현재 로그인 사용자 상태 정보를 담고 있는 로그파일
•
btmp
◦
실패한 로그인 정보를 담고 있는 로그파일
•
last log
◦
마지막으로 성공한 로그인 정보를 담고있는 로그파일
PLCP(Physical Layer Convergence Procedure : 물리계층 수렴 처리)
•
논리적인 802.11 MAC 부계층과 물리적인 특성을 연결하는 역할
•
802.11 MAC 부계층이 물리적 특성에 관계없이 동작하도록 함
Traffic Distributor
•
네트워크 통신 간에 트래픽을 분배해주는 솔루션
DPI (Deep Packet Inspection)
•
네트워크에서 전송되는 패킷의 헤더와 페이로드 내 정보를 분석하는 컨텐츠 내용 분석 기술
•
네트워크 보안, 관리, 컨텐츠 관리 등이 목적
•
OSI 7 Layer 전 계층의 프로토콜과 패킷 내부의 콘텐츠를 파악하여 침입 시도, 해킹 등을 탐지하고 트래픽을 조정하기 위한 패킷 분석 기술
SDS(Software Defined Storage)
•
스토리지에 가상화를 적용, 소프트웨어로 전체 스토리지 자원을 관리하여 하나의 저장장치럼 사용할 수 있도록 하는 기법
MQTT
•
TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜
•
최근 IoT 환경에서 자주 사용되고 있는 프로토콜
MLFQ(=MFQ)(Multi Level Feedback Queue)
•
짧은 작업이나 입출력 위주의 프로세스에 우선순위를 부여하는 선점형 스케줄링 기법
Zigbee
•
홈 네트워크 및 무선 센서망에서 사용되는 기술
•
버튼 하나의 동작으로 집안 어느 곳에서나 전등 제어 및 홈 보안 시스템을 제어관리하는 가정 자동화를 목표로 출발하였음.