티스토리 뷰
MOM(Messgae Oriented Middleware)
메시지 기반 비동기형 메시지를 전달하는 미들웨어
- 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할
- 이기종 분산 데이터 시스템의 데이터 동기를 위해 사용(온라인 업무X)
- 느리고 안정적인 응답을 필요로 하는 경우에 사용(즉각 응답X)
기능적 요구사항
시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항
비기능적 요구사항
시스템 구축에 대한 성능, 보안, 품질, 안정성 등으로 수행에 보조적인 요구사항
데이터 흐름도(DFD) 구성요소
프로세스(Process) - 원
자료 흐름(Flow) - 화살표
자료 저장소(Data Store) - 평행선
단말(Terminal) - 사각형
UML 관계
연관 관계 (Association) 양방향 관계는 화살표 생략 |
||
집합 관계 (Aggregation) - is part of |
||
포함 관계 (Composition) - has a 사물에 영향을 미치는 관계를 표현 |
||
일반화 관계 (Generalization) - is a 상속 : 부모(일반)-자식(구체적) |
||
의존 관계 (Dependency) 짧은 시간 동안만 연관을 유지하는 관계 표현 |
||
실체화 관계 (Realization) - can 서로를 그룹화할 수 있는 관계 |
출처: https://simuing.tistory.com/entry/2021-정보처리기사-필기요약-UML
UML 확장 모델 << 스테레오 타입 객체 표현>>
Usecase 구성요소와의 관계
- 연관 : use case 와 actor의 관계
- 확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행할 usecase
- 포함 : 시스템의 기능이 별도의 기능을 포함 <<include>>
- 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
- 그룹화 : 여러 개의 usecase를 단순화하는 방법
프로젝트 관리
기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
- 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명 주기의 전 과정에 걸쳐 진행
- 작업 범위, 필요 자원, 수행 업무, 이정표, 비용 추진 일정들을 알아야 함
소프트웨어 재공학
Analysis: 기존 소프트웨어를 분석하여 재공학 대상을 선정하는 것
Migration: 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업
Restructuring: 기존 소프트웨어를 향상시키기 위하여 코드를 재구성하는 작업
Reverse Engineering: 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업(소스코드로 소프트웨어를 만드는 작업의 역작업)
요구사항 명세 기법
정형 명세기법
- 수학적 기반/모델링 기반
- Z, VDM, Petri-Net(모형기반) / CSP, CCS, LOTOS(대수적방법)
- 수학적 기호, 정형화된 표기법
- 정확하고 간결하게 표현, 표기법이 어려워 사용자가 이해하기 어렵다.
- 일관성이 있다.
비정형 명세기법
- 상태, 기능, 객체 중심 명세법
- FSM(Finite state machine), Decision Table, ER모델링, SADT(State chart), UseCase 사용자기반모델링
- 일반 명사, 동사 등 자연어 기반
- 이해가 쉽다.
- 일관성이 떨어진다.
n 개의 노드로 구성된 무방향 그래프의 최대 간선 수
정점이 n 개 무방향 그래프에서 최대의 간선 수는 n(n-1)/2개
정점이 n 개 그래프에서 최대 간선수는 n(n-1)개
소프트웨어 품질 목표
정확성, 신뢰성, 효율성, 무결성, 유지보수 용이성, 사용 용이성, 검사 용이성, 이식성, 상호 운용성, 유연성, 재사용성
이식성(Portability) : 다양한 하드웨어 환경에서 운용 가능하도록 쉽게 수정될 수 있는 능력
효율성(Efficiency) : 최소의 작업으로 요구되는 기능을 수행하는 정도
사용 용이성(Usability) : 소프트웨어를 쉽게 사용할 수 있는 정도
정확성(Correctness) : 사용자의 요구사항을 충족시키는 정도
- ISO/IEC 9126 : 소프트웨어 품질 특성 및 척도에 대한 표준화
- ISO/IEC 14598 : 소프트웨어 제품 평가. ISO/IEC 9126 사용을 위한 절차와 기본 상황 및 소프트웨어 평가 프로세스에 대한 표준 규정
- ISO/IEC 12119 : 패키지 소프트웨어 평가
- ISO/ISE 25010 : 패키지 소프트웨어의 일반적 제품 품질 요구사항 및 테스트를 위한 국제 표준
알고리즘 설계 기법
- Divide and Conquer(분할 정복 알고리즘) : 작은 문제로 분할하여 문제를 해결(하향식 접근방법)
- Greedy(탐욕 알고리즘) : 상황마다 가장 최적의 방법을 선택
- Backtracking : 모든 조합을 시도하여 문제의 답을 찾는 알고리즘, 가능성 없으면 탐색하지 않는다.
단위 테스트
- 구조 기반 테스트 : 화이트 박스 테스트 (문장 검증, 분기 검증, 조건 검증, 분기/조건 검증)
- 명세 기반 테스트 : 블랙 박스 테스트
통합 테스트
- 비점진적 통합 방식 : 빅뱅 통합 테스트
- 점진적 통합 방식 : 하향식 통합 테스트(스텁), 상향식 통합 테스트(드라이버, 클러스터), 혼합식 통합 테스트(샌드위치)
폴딩법 : 해싱함수 중 레코드 키를 여러 부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용
제산법 : 레코드 키를 해시표로 나눈 나머지를 홈 주소로 사용
기수변환법 : 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수 절단, 다시 주소 범위에 맞게 조정
숫자분석법 : 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택
- 비선형 구조 : 트리, 그래프
- 선형 구조 : 데크, 스택, 큐, 리스트
- 파일 구조 : 순차파일, 색인파일, 직접파일
최악의 경우에서 검색 시간복잡도
이진 탐색트리 : O(n) - 검색효율 나쁨
AVL트리 : O(log n)
2-3트리 : O(log 3n)
레드 블랙 트리 : O(log n)
관계해석
∃: 존재한다(There exist)
∈: t가 r에 속함( t ∈ r )
∀: 모든 것에 대하여(for all)
∪: 합집합
스택을 이용한 연산
재귀호출, 후위표현(Post-fix expression)의 연산, 깊이우선탐색
인터럽트 처리, 서브루틴 호출작업
선택정렬은 큐를 이용해 정렬
분산 데이터베이스 주요 구성 요소
전역, 분할, 할당, 지역 스키마
분산데이터베이스 투명성 조건
- 위치 투명성 Location Transparency : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함
- 복제 투명성 Replication Transparency : 동일 데이터가 중복되더라도 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
- 병행 투명성 Concurrency Transparency : 다수의 트랜잭션들이 동시 수행 시 트랜잭션의 결과는 영향을 받지 않음
- 분할 투명성 Division Transparency : 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장
- 장애 투명성 Failure Transparency : 장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장
데이터 모델 : 현실 세계의 정보를 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
데이터 모델 구성 요소 : 개체(Entity), 속성(Attribute), 관계(Relation)
데이터 모델에 표시할 요소 : 논리적 구조 Structure, 연산 Operation, 제약 조건 Constraint
데이터 모델 절차 : 개념적 데이터 모델 - 논리적 데이터 모델 - 물리적 데이터 모델
논리적 데이터베이스 설계
- 트랜잭션 인터페이스 설계
- 데이터 타입 및 데이터 타입 간의 관계 표현
- 논리적 데이터베이스 구조로 매핑
- 스키마 설계, 평가 및 정제
물리적 데이터베이스 설계
- 물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것
- 트랜잭션 처리량과 응답시간, 디스크 용량 고려
- 기본적 데이터 단위는 저장레코드
- 저장 레코드의 형식, 레코드 집중의 분석 및 설계 순서, 접근 경로와 같은 정보를 사용하여 설계
데이터 사전(Data Dictionary)
- 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등)에 관한 정보를포함하고 있는 시스템 데이터베이스이다.
- 시스템 카탈로그(System Catalog), 메타 데이터(Meta Data)라고도 한다.
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL 문을 이용하여 내용 검색이 가능하다.
- 사용자가 시스템 카탈로그를 직접 갱신할 수 없다.
- SQL 문으로 여러 가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.
로킹기법 : 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
타임스탬프 기법 : 동시성 제어를 위한 직렬화 기법, 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 처리 순서를 미리 정하는 기법
CSMA/CA(Carrier-sense multiple access with collision avoidance) "충돌 방지" 무선 랜에서 데이터 전공 시, 매체가 비어있음을 확인한 후 충돌을 회피하기 위해 임의 시간을 기다린 후 데이터를 전송하는 방식. 네트워크에 데이터의 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비해 확인 신호를 전송한다.
CSMA/CD( Carrier-sense multiple access with collision detection) "충돌 감지" 이더넷에서 각 단말이 전송 공유 매체에 규칙있게 접근하기 위한 매체 액세스 제어 방식
Collision Domain "충돌 도메인" 충돌 발생을 검출할 수 있는 브리지 간 혹은 다른 계층 장치 간의 이더넷 세그먼트 범위
운영체제 기능 분류
제어 프로그램
- 감시 프로그램 (Supervisor) : 프로그램과 시스템 작동상태를 감시 감독
- 작업 제어 프로그램 (Job Control) : 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 등을 담당
- 데이터 관리 프로그램 (Data Management) : 주기억장치와 보조기억장치 사이의 데이터 전송, 파일과 데이터를 처리 유지 보수 기능 수행
처리 프로그램
- 언어번역 프로그램, 서비스 프로그램, 문제 프로그램
strcat - 문자열 연결 함수
strcmp - 문자열 비교
교착상태 Deadlock 발생조건
두 개 이상의 작업이 서로 작업이 끝나기만을 기다리는 것
상호배제 Mutual exclusion
점유와 대기 Hold and wait
비선점 Non-preemption
환형대기 Circular wait
스레싱
일방적으로 페이지수행 시간보다 교환시간이 커질 때
페이지 부재가 지나치게 발생해 전체 시스템의 성능이 저하되는 현상
- 시간 지역성(Temporal Locality) : 반복, 스택, 부프로그램
- 공간 지역성(Spatial Locality) : 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미
Working Set : 운영체제의 가상기억장치 관리에서 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합
스레싱(Thrashing) 현상 방지 => 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.
&& : 좌항과 우항이 모두 True(1)이면 True(1)이다, false 는 0
<<n 는 n비트 만큼 왼쪽으로 이동하라는 뜻으로
1(000000001)을 <<1 해주면 01(00000010)이 된다. 10을 10진수로 변환하면 2가 된다.
리눅스 변수 출력 : echo $변수명
리눅스 Bash 쉘(Shell) - export
- export가 매개변수 없이 쓰일 경우, 현재 설정된 환경변수들이 출력
- 사용자가 생성하는 변수는 export 명령어 표시하지 않는 한 현재 쉘에 국한된다.
- 변수를 export 시키면 전역(Global)변수처럼 되어 끝까지 기억된다.
데커의 알고리즘
- 프로세스가 두 개일 때 상호 배제를 보장하는 최초의 알고리즘, flag와 turn 변수를 사용하여 조정
램퍼드 알고리즘
- 프로세스 n개의 상호 배제 문제를 해결한 알고리즘
- 프로세스에 고유한 번호를 부여해, 우선순위가 높은 프로세스가 먼저 임계구역에 진입하도록 구현.
피터슨 알고리즘
- 프로세스가 두 개일 때 상호 배제를 보장, 상대방에게 진입 기회를 양보. 간단한 구현
세마포어
- 공유된 자원의 데이터 혹은 임계구역에 따라 접근 제어, 여러 Process 혹은 Thread가 접근하는 것을 막아줌
TCP 프로토콜
양방향 가상회선을 제공. 패킷 전송 및 오류 제어, 전송 데이터와 응답 데이터를 함께 전송할 수 있다.
접근통제
임의접근통제 DAC (Discretionary Access Control)
- 접근하는 사용자 신원에 따라 접근 권한을 부여 (GRANT, REVOKE)
- 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한하는 방법
강제접근통제 MAC (Mandatory Access Control)
- 주체/객체의 등급을 비교해 접근 권한을 부여하는 방식
- 관리자만이 시스템 자원에 대한 권한을 할당할 수 있다.
- 높은 보안 수준을 요구하는 객체가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법
역할기반 접근통제정책 RBAC (Role-based Access Control)
- 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한
stdlib.h → C 언어의 표준 라이브러리로, 문자열 변환, 사 난수 생성, 동적 메모리 관리 등의 함수들을 포함
strlen() 함수 → string.h
표준 입출력 라이브러리 → stdio.h (Standard Input/Output library)
삼각 함수, 제곱근, 지수 등 수학적인 함수 → math.h
기능점수(Functional Point)모형에서 비용산정에 이용되는 요소
- 자료 입력(입력 양식), 정보 출력(출력 보고서), 명령어(사용자 질의수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스
라우팅 프로토콜 (ROB)
RIP (Routing Information Protocol) |
최대 홉 수 15개 제한 거리 벡터 라우팅 프로토콜 소규모 네트워크 환경에 적합 최단 경로 탐색에 Bellman-Ford 알고리즘 사용 |
OSPF (Open Shortest Path First) |
최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정 멀티캐스팅 지원 |
홉 카운트 제한 없음, 다익스트라 Dijkstra 알고리즘 기반 | |
BGP (Border Gateway Protocol) |
ISP 사업자들 상호 간에 주로 사용되는 라우팅 프로토콜 |
출처: https://simuing.tistory.com/entry/2021-정보처리기사-필기요약-5-IT-프로젝트-정보시스템-구축관리
SREM(Software Requirements Enginering Methdology) : TRW사 - 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발
PSL/PSA : 미시간 대학 - PSL과 PSA를 사용하는 자동화 도구
HIPO(Hieracgy Input Process Output) : 하향식 소프트웨어 개발을 위한 문서화 도구
SADT(Structure Analysis and Design Technique) : SoftTech사 - 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구
OTT(오버더탑) - 개방된 인터넷을 통해 방송프로그램, 영화 등 미디어 콘텐츠를 제공하는 서비스
SDDC(Software Defined Data Center)
- 소프트웨어 정의 데이터 센터
- 데이터 센터의 모든 자원이 가상화되어 서비스되고, 소프트웨어 조작만으로 자동 제어 관리되는 데이터 센터
Wi-SUN(와이선)
- 스마트 그리드 같은 장거리 무선 통신을 필요로 하는 사물 인터넷(IoT) 서비스를 위한 저전력 장거리 LPWA 통신 기술
BaaS(Backend as a Service) 서비스형 블록체인
DoS(서비스 거부) : 서버의 자원을 고갈시킬 목적으로 대량의 데이터를 한 곳에 집중적으로 전송
DDoS(분산 서비스 거부) : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행
Ping of Death : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격
Smurfing : IP나 ICMP의 특성 악용, 대량의 데이터를 한 사이트에 집중적으로 보내 네트워크를 불능 상태로 만드는 공격
TearDrop : Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생 시킴
Land : 패킷 전송할 때 송수신 IP주소를 모두 공격대상 IP주소로 하여 전송하는 것, 공격대상은 송신 IP주소가 자신이기 때문에 자신에게 무한히 응답하게 되는 공격
SYN Flooding : SYN은 공격자가 가상의 클라이언트로 위장해 TCP의 3WH을 의도적으로 중단, 서버가 대기상태에 놓여 정상 서비스를 못하게 하는 공격 방법
Qshing : QR코드 피싱
블루투스 공격
- 블루프린팅 : 블루투스 공격 장치의 검색 활동을 의미
- 블루버그 : 장비 사이의 취약한 연결 관리를 악용한 공격
블루스나프(블루스나핑) : 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP로 정보를 열람
- 블루재킹 : 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
* OPP(Obex Push Protocol) - 블루투스 장치끼리 인증 없이 정보를 간편 교환
Mesh Network : 기존 무선 랜의 한계 극복을 위해, 대규모 디바이스의 네트워크 생성에 최적화되어 차세대 이동통신, 홈네트워킹, 공공 안전 등의 특수목적을 위한 새로운 방식의 네트워크 기술
Software Defined Perimeter : 소프트웨어 정의 경계
Virtual Private Network(VPN) : 가상 사설망
Local Area Network(LAN) : 근거리 통신망
소프트웨어 개발 프레임워크는 뼈대 골조를 의미, 특정 기능 수행하기 위한 클래스나 인터페이스를 모아둔 집합체
스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크
PLCP(Physical Layer Convergence Procedure 물리계층 수렴 처리)
- 논리적인 802.11 MAC 부계층과 물리적인 특성을 연결하는 역할
- 802.11 MAC 부계층이 물리적 특성에 관계없이 동작하도록 함
Traffic Distributor
- 네트워크 통신 간에 트래픽을 분배해주는 솔루션
DPI(Deep Packet Inspection)
- 네트워크에서 전송되는 패킷의 헤더와 페이로드 내 정보를 분석하는 컨텐츠 내용 분석 기술
- 네트워크 보안, 관리, 컨텐츠 관리 등이 목적
프로젝트 일정 계획
PERT 차트
네트워크 도표를 작성 작업 간의 상호 관련성, 결정경로, 경계시간, 자원할당을 제시
GANTT 차트
작업 일정을 막대 도표 표시, 시간선(Time-line) 차트, 수평 막대의 길이는 각 작업의 기간을 의미
CPM 임계경로기법
작업을 나열(화살표)하고 소요시간을 예측, 노드는 작업을 간선은 작업 사이의 전후 의존 관계를 표현
NS (Nassi-Schneiderman) 차트
- 상자 도표, 도형을 이용한 표현 방법으로 이해하기 쉬움
- 연속, 선택, 반복으로 표현
- 그리기가 어렵다.
정형기술검토(FTR) 지침
- 오류 검출에 초점을 두고 해결책을 미룸(제품 검토의 집중성)
- 검토를 위한 자료를 사전에 배포하여 검토하도록 한다(사전 준비성)
- 의견을 제한하되 충분히 받아들인다(의제의 제한성)
- 안건을 세우면 고수한다(안건 고수성)
- 논쟁과 반박을 제한한다(논쟁 반박의 제한성)
- 문제 영역을 공개한다(문제 공개성)
- 참가자의 수를 제한한다(참가 인원의 제한성)
- 발견된 오류는 문서화한다(문서성)
'시험 > 정보처리기사' 카테고리의 다른 글
[정처기 실기] 11. 응용 SW 기초 기술 활용 - 네트워크 기초 활용 (0) | 2022.07.21 |
---|---|
[정처기 실기] 11. 응용 SW 기초 기술 활용 - 운영체제 특징 (0) | 2022.07.12 |
정보처리기사 필기 정리 - 2 (0) | 2022.07.03 |
소프트웨어 개발 표준 (0) | 2022.06.29 |
암호 알고리즘 (0) | 2022.06.06 |