14/14/11/8/9 56
1과목 소프트웨어 설계
4 추상화 기법 - 소프트웨어 설계
추상화(Abstraction)
문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것
- 제어 추상화: 제어의 정확한 매커니즘을 정의하지 않고 원하는 효과를 정하는 데 이용하는 방법
- 기능 추상화: 입력 자료를 출력 자료로 변환하는 과정을 추상화하는 방법
- 자료 추상화: 자료와 자료에 적용될 수 있는 기능을 함께 정의함으로써 자료 객체를 구성하는 방법
- 과정 추상화: 자세한 수행 과정을 정의하지 않고 전반적인 흐름만 파악할 수 있게 설계하는 방법
- 데이터 추상화: 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
7 요구 분석(Requirement Analysis)
기능적 요구사항
- 시스템이 수행해야 하는 행위들을 구체화한 것
- 시스템에서 제공해야 할 기능을 정의한 것
- 입력기능, 출력기능, 데이터베이스 기능, 통신기능 등
비기능적 요구사항
- 시스템이 가져야 하는 기능 이외의 요구사항
- 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
- 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
- 성능적인 면: 응답 속도, 자원 사용량 등
- 보안 측면: 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 등
9 마스터-슬레이브 (Master-Slave) 아키텍처
마스터: 작업을 분리, 배포
슬레이브: 요청 작업 처리
- 일반적으로 실시간 시스템에서 사용된다.
- 마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
- 마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
- 슬레이브는 마스터의 작업 요청을 처리하고, 처리된 결과를 되돌려준다.
- 마스터는 슬레이브가 변환한 결과값으로부터 최종 결과값을 계산한다.
- 네임노드(마스터)는 데이터노드(슬레이브)에 대한 메타데이터를 가지고 있다.
13 GoF (Gang of Four) 디자인 패턴
에리히 감마, 리처드 헬름, 랄프 존슨, 존 블리시데스가 같이 고안한 디자인 패턴
23가지 디자인 패턴을 3가지 분류로 정리한 디자인 패턴
생성 패턴
Abstract Factory, Builder, Factory Method, Prototype, Singleton
구조 패턴
Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
행위 패턴
Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
- Strategy 패턴: 행위패턴, 클라이언트에 영향을 받지 않는 독립적인 알고리즘을 선택하는 패턴
- Prototype 패턴: 생성 패턴, 원본 객체를 복제하는 방법
- Singleton 패턴: 특정 클래스의 이늣턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 보장
15 럼바우 (Rumbaugh) 의 객체지향 분석기법
- 객체 모델링: 객체 다이어그램 (정보 모델링, 시스템에서 요구)
- 동적 모델링: 상태 다이어그램 (제어, 흐름, 동작)
- 기능 모델링: 자료 흐름도
16 순차 다이어그램 (Sequence Diagram)
- 교류 다이어그램의 한 종류
- 객체들의 상호 작용을 나타내기 위해 사용한다
- 시간의 흐름에 따라 객체들이 주고받는 메시지의 전달 과정을 강조
- 동적 다이어그램
2과목 소프트웨어 개발
21 시스템 테스트의 종류 - 강도
시스템 테스트의 종류: 요구사항, 무결성, 부피, 메모리, 성능, 신뢰성, 부하, 수락, 회복, 안전, 구조, 회귀, 병행 등 (50가지 이상)
강도 테스트: 과다 정보량을 부과하여 시스템을 정상적으로 작동되는지 검증하는 테스트
회복 테스트: 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트
성능 테스트: 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트
안전 테스트: 부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트
25 테스트 드라이버 (Test Driver)
- 시험 대상 모듈을 호출하는 간이 소프트웨어
- 필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여 줄 수 있음
- 상향식 통합 테스트에서 사용
테스트 스텁 (Test Stub)
- 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
- 하향식 테스트에 사용
30 소프트웨어 검증 (Verification) vs 확인 (Validation)
- 검증: 소프트웨어가 요구사항에 부합하게 구현되었음을 보장하는 활동 (개발자)
- 확인: 소프트웨어가 고객의 의도에 따라 구현되었음을 보장하는 활동 (사용자)
37 최악의 경우 검색 시간복잡도
- 이진 탐색트리: O(N)
- AVL 트리: O(logN)
- 2-3 트리: O(log3N)
- 레드 블랙 트리: O(logN)
38 순회 운행
- 전위: 중앙 노드 먼저 방문
- 중위: 왼쪽 노드 방문 후 중앙 노드 방문
- 후위: 하위 트리 노드 모드 방문, 중앙 노드 방
39 테스트 수행 도구
자료 흐름도, 기능 테스트, 입력 도메인 분석, 랜덤 테스트
3과목 데이터베이스 구축
42 데이터베이스 용어
- 트랜잭션: 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산
- 뷰: 하나 이상의 기본 테이블로부터 유도되어 만들어지는 가상 테이블
- 튜플: 관계데이터 구조 테이블에서 행을 의미
45 데이터 무결성
- 개체 무결성: 기본키는 NULL값이 될 수 없음
- 참조 무결성: 외래키는 참조할 수 없는 값을 가질 수 없음
- 도메인 무결성: 특정 속성값은 그 속성이 정의된 도메인에 속한 값이어야 함
47 관계 대수 연산
관계 대수 연산: select, project, join, division
일반 집합 연산: 합집합, 교집합, 차집합, 카티션 프로덕트
51 로킹 단위 (Locking Granularity)
로킹: 병행제어 기법 중 하나
로킹 단위: 한꺼번에 로킹할 수 있는 객체의 크기
- 직렬화 기법
- 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음
- 로킹 단위가 작아지면, 데이터베이스 공유도 증가
- 로킹 단위가 작아지면, 로킹 오버헤드 증가
- 로킹 단위가 작아지면 로크의 수 증가
- 로킹 단위가 작아지면 병행성 수준이 높아짐
52 관계 대수
관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션
- 일반 집합 연산과 순수 관계연산으로 구분된다
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서 명시
→ 비절차적 특성은 관계해석이 지니고 있음
54 SQL 언어
DDL (데이터 정의어)
- CREATE
- ALTER
- DROP
DML (데이터 조작어)
- SELECT
- INSERT
- DELETE
- UPDATE
DCL (데이터 제어어)
- COMMIT (완료)
- ROLLBACK
- GRANT
- REVOKE (권한 취소)
4과목 프로그래밍 언어 활용
61 응집도
- Logical Cohesion (논리적 응집도)
- 모듈 내 구성 요소들이 같은 범주에 속하는 기능끼리 묶인 경우 (새 글, 불러오기, 저장하기, 다른 이름으로 저장하기 등)
- Coincidental Cohesion (우연적 응집도)
- 모듈 내 구성 요소들이 뚜렷한 관계없이 묶인 경우
- Sequential Cohesion (순차적 응집도)
- 모듈 내 구성 요소들이 이전의 명령어로부터 나온 출력 결과를 그 다음 명령어의 입력 자료로 사용하는 경우
- Temporal Cohesion (시간적 응집도)
- 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우
67 JAVA 연산자 우선순위
-- > % > & > =
68 스케쥴링: SSTF (Shortest Seek Time First)
현재 헤드 위치에서 가장 가까운 것부터 = 가장 이동 거리가 짧은 것 = 현재 트랙과 남아 있는 트랙 중 차이가 적은 것
70 IP 주소 클래스 - 이진법으로 한 칸씩!
- A class에 속하는 ip 주소 범위: 0.0.0.0 ~ 127.255.255.255 (0)
- B class에 속하는 ip 주소 범위: 128.0.0.0 ~ 191.255.255.255 (128)
- C class에 속하는 ip 주소 범위: 192.0.0.0 ~ 223.255.255.25 (192)
- D class와 E class는 각각 멀티캐스트용, 연구용으로 사용됩니다
- D class ip 주소 범위: 224.0.0.0 ~ 239.255.255.25 (224)
- E class ip 주소 범위: 240.0.0.0 ~ 255.255.255.255 (240)
72 Python
- 귀도 반 로섬
- 플랫폼에 독립적
- 인터프리터 방식
- 객체지향적
- 동적 타이핑 (dynamically typed)
- 대화형 언어
75 모듈의 결합도 (Coupling)
- 오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 함
- 인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가함
- 모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 하면 모듈 간의 결합도가 높아짐
- 다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 됨
76 TCP 헤더
- 순서 번호 (Sequence Number) 는 전달하는 바이트마다 번호가 부여됨
- 수신번호확인 (Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호 정의
- 체크섬은 데이터를 포함한 세그먼트의 오류를 검사함
- 윈도우 크기는 송수신 측의 버퍼 크기로 최대 크기는 2^16 = 65535byte = 64KB
78 페이지 교체 알고리즘 (Page Replacement)
- OPT (Optimal) 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
- FIFO (First In First Out)
- LRU (Least Recently Used) 가장 오랫동안 사용되지 않은 페이지 교체
- LFU (Least Frequently Used) 참조 횟수가 가장 작은 페이지 교체
- MFU (Most Frequently Used) 참조 횟수가 가장 많은 페이지 교체
- NUR (Not Used Recently) 최근에 사용하지 않은 페이지 교체
80 파일 디스크립터 (File Descriptor)
- 파일마다 따로 있으며 시스템에 따라 다른 구조를 가질 수 있다
- 파일 시스템에서 관리하므로 사용자는 직접 참조할 수 없다
- 파일 이름, 위치, 파일 구조, 보조기억장치의 유형, 파일 유형 (텍스트, 이진, 기계어, 실행 파일 등), 시간, 액세스 등의 정보를 담고 있다
- 보조기억장치에 저장되어 있다가 파일이 개방되면 주기억장치로 이동된다
- 파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다
- 파일 제어 블록 (File Control Block) 이라고도 한다
5과목 정보시스템 구축관리
81 침입탐지 시스템 (IDS: Intrusion Detection System)
- HIDS (Host-Based Intrusion Detection)
- 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적
- NIDS (Network-Based Intrusion Detection System): 대표적인 예시로 Sort
- 외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다.
침입탐지 시스템의 모델: 이상 탐지 vs 오용 탐지
- 이상 탐지 (Anomaly Detection)
- Behavior, Statistical Detection으로 불리며 평균적 시스템의 상태 기준으로 비정상적인 행위나 자원의 사용이 감지되면 알려줌, 잘 알려지지 않은 공격 탐지에 적합
- 오용 탐지 (Misuse Detection)
- Signature Base나 Knowledge Base로 불리며 미리 입력해둔 공격 패턴이 감지되면 이를 알려줌, 새로운 공격 패턴을 막기 어려움
82 접근 제어 방법
- 강제접근통제 (Mandatory Access Control)
- 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
- 임의접근통제 (Discretionary Access Control)
- 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
- 사용자계정컨트롤 (User Access Control)
- 프로그램에서 관리자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려서 제어할 수 있도록 돕는 기능
- 자료별 접근통제 (Data-Label Access Control > Label-Based Access Control)
- 개별 행, 열에 대한 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식
84 PaaS-TA
- 국내 IT 서비스 경쟁력 강화를 목표로 한국지능정보사회진흥원(NIA)가 지원하는 개방형 클라우드 플랫폼
- 오픈 소스 기반의 Platform as a Service
- 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영 환경으로 구성됨
85 정보 보안을 위한 접근 제어 (Access Control)
- 정보 보안에 대한 접근 제어의 기본 개념
- 시스템 및 네트워크에 대한 제어 방법에 대해선 IP와 서비스 포트이며 예로는 Telnet port: 23 ssh port: 22
- 네트워크 장비 라우터, L3 장비에서 ACL config 설정으로 permit, deny로 허용과 거부를 사용할 수 있음
87 VLAN (Virtual Local Area Network)
- 물리적 배치와 상관없이 논리적으로 LAN을 구성
- Broadcast Domain을 구분할 수 있게 해주는 기술
- 접속된 장비들의 성능 향상 및 보안성 증대 효과
STP (Spanning Tree Protocol)
2개 이상의 스위치가 여러 경로로 연결될 때, 무한 루프 현상을 막기 위해서 우선순위에 따라 1개의 경로로만 통신하도록 하는 프로토콜
ARP (Address Resolution Protocol)
네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜
89 암호화 방식
암호화 알고리즘은 크게 양방향, 단방향 두 가지 방식
- 양방향 방식
- 대칭키
- 암호화와 복호화 때 사용하는 키가 다름
- 속도가 빠르지만 관리해야 할 키의 수가 많음
- 블록 방식: DES, AES, SEED, ARIA
- 스트림 방식: LFSR, RC4
- 비대칭키
- 공개키와 개인키
- 관리하는 키의 수가 적고 계산 속도가 느리다
- RSA (소수), 디피-헬만, ECC, Elgamal
- 대칭키
- 단방향: hash 함수 방식
- MDC, MAC
90 Software Defined Storage
- 가상화를 적용하여 시스템을 필요한 공간만큼 나눠 사용할 수 있도록 하며 서버 가상화와 유사함
- 컴퓨팅 소프트웨어로 규정하는 데이터 스토리지 체계이며, 일정 조직 내 여러 스토리지를 하나처럼 관리하고 운용하는 컴퓨터 이용 환경
- 스토리지 자원을 효율적으로 나누어 쓰는 방법으로 이해할 수 있음
91 Cocomo model: LOC(Line of Code) 기반 비용 산정 방식
- Embeded: 초대형 규모의 시스템 소프트웨어 대상, 30만 라인 이상의 sw 개발에 적합
- Semi-Detached: Organic과 Embeded의 중간 단계, 30만 라인 이하
- Organic: 기관 내부의 중소 규모 소프트웨어 대상, 5만 라인 이하 소프트웨어 개발에 적합
95 시스템 공격 방법
ICMP(Internet Control Message Protocol)
- IP 동작에서 네트워크 진단이나 제어 목적으로 사용
ICMP Flooding
- 서비스 거부 DoS 공격의 한 방법으로 사용
- 보통 스머프 공격(Smurf Attack)이라고 부름
- 공격 방법에는 “Ping Flooding”과 “SYN Flooding”이 있음
Ping Flooding
- 공격대상에 막대한 양의 ICMP 에코 요청 패킷(ping)을 보내는 방법
- 보내는 쪽의 네트워크 대역폭이 대상 시스템이 확보한 네트워크 대역폭보다 더 크면 됨
SYN Flooding
- 막대한 양의 TCP SYN 패킷을 대상 시스템으로 보내서 시스템을 마비시키는 공격 방법
96 MQTT 프로토콜
- IBM 개발
- 발행/구독 프로토콜
- TCP/IP를 통해 실행되어 기본 네트워크 연결을 제공
MQTT (Message Queuing Telemetry Transport)
MLFQ (=MFQ, Multi Level Feedback Queue): 짧은 작업이나 입출력 위주의 프로세스에 우선순위를 부여하는 선점형 스케줄링 기법
Zigbee: 홈 네트워크 및 무선 센서망에서 사용되는 기술로, 버튼 하나의 동작으로 집안 어느 곳에서나 전등 제어 및 홈 보안 시스템을 제어관리하는 가정 자동화를 목표로 출발함…
98 Hash, Encryption
- Hash: 단방향, 복호화 불가능
- Encryption: 양방향, 역으로 복호화 가능
패스워드는 보통 단방향 Hash를 기본으로 저장
→ 같은 패스워드를 Hashing하면 같은 결과값이 나타나 문제 발생
다른 암호 값으로 저장되도록 추가되는 값: Salt
'Computer Science > 정보처리기사 & 전산 필기' 카테고리의 다른 글
2019-2 정보처리기사 필기 기출 개념 정리 전자계산기구조, 운영체제 (오답 위주) (0) | 2023.10.31 |
---|---|
2019-3 정보처리기사 필기 기출 개념 정리 (오답 위주) (0) | 2023.10.30 |
2019-1 정보처리기사 필기 기출 개념 정리 (오답 위주) (0) | 2023.10.28 |
정보처리기사 2022 1회 오답 (0) | 2023.06.28 |
정보처리기사 2022 2회 오답 (1) | 2023.06.23 |