자격증 공부/정보처리기사
[정보처리기사] 필기 준비 - 21년 8월 기출 문제
- -
D-8(22.4.16): 요약 정리 5과 + 22년 3월 기출
D-7(22.4.17) : 요약 정리 마무리
D-6(22.4.18): 이기적 1권 (1,2,3과 문풀, 훑어보기) + 21년 8월 기출 문제
확실히 점수가 전보다 더 나아진 것이 보인다. 무난히 40점은 통과했으나 3과목 데이터 베이스 구축에서 조금 아쉬운 성적을 보였다.
4과목은 코딩 문제들이라 난이도가 높지 않아 많이 맞힐 수 있던 것 같다.
내일은 이기적 1-3과 한 번 더 훑어보고, 책 2권을 다 끝내고 기출 문제를 풀어봐야지..!!!
내일은 기필코 통과하고 마리라 !!!!
오답노트
본 오답노트에 대한 해설은 해당 사이트의 해설을 참조하였음. (밑에 링크 첨부)
1과목: 소프트웨어 설계
[익스트림 프로그래밍(XP)]
- 사용자 스토리; 고객의 요구사항을 간단하게 시나리오로 작성
- 간단한 테스트 포함
- 빠른 소프트웨어 개발이 목적
- 사용자의 요구사항은 언제든지 변할 수 있음.
- 기존의 방법론에 비해 실용성을 강조
소프트웨어의 추상화 기법: 제기자 (제어 추상화, 기능 추상화, 자료 추상화)
cf. 과정 추상화, 데이터 추상화
[정보 은닉(Information Hiding)]
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용
- 클래스 외부에서 특정 정보에 접근을 막음
- 모듈이 독립성을 갖게 해줌으로 요구 사항 등 변화에 따른 수정 가능
ex. ip, port 와 같은 물리적 코드, 상세 데이터 구조
* 장점
1) 기능의 교체나 변경에 대한 유연성을 제공 (객체 간의 구체적인 결합도 약화)
2) 동일한 타입의 다른 구현 객체들을 교체로 동적 기능 변경 가능
3) 구체적인 구현이 없는 상태(인터페이스)로도 정확한 연동 코드의 생성 가능
4) 모듈화하여 코드의 가독성 증가
5) 개발기간 단축
[요구 분석(Requirement Analysis)]
- 소프트웨어 개발의 실질적인 첫 단계, 사용자의 요구에 대해 이해하는 단계
- 요구 추출(Requirement Elication); 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계
- 도메인 분석 (Domain Analysis); 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링
* 기능적 요구사항
- 시스템이 수행해야 하는 행위들을 구체화
- 시스템에서 제공해야 할 기능들을 정의
- 입력 기능, 출력 기능, 데이터 베이스 기능, 통신 기능 등
* 비기능적 요구사항
- 시스템이 가져야 하는 기능 이외의 요구사항
- 시스템의 전체적인 품질이나 고려해야 하는 제약 사항 등
- 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
- 성능적인 면: 응답속도, 자원 사용량 등
- 보안 측면: 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 증
요구 사항 정의 및 분석, 설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어 그램;
-> Data Flow Diagram, UML Diagram, E-R Diagram
cf. AVL Tree; 이진 트리의 높낮이가 불규칙해지는 것을 보완, 일정하게 처리하기 위한 이진트리 모형
[GoF(Gang of Four) 디자인 패턴]
- 에리히 감마, 리처드 헬름, 랄프 존슨, 존 블리시데스가 고안한 디자인 패던
- 23가지 디자인 패턴을 3가지 분류로 정리한 디자인 패턴; 생성 패턴, 구조 패턴, 행위 패턴
생 - 추빌팩프싱(Abstract, Builder, Factory, Prototype, Singleton)
구 - 어브컴데퍼플프(Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy)
행 - 그 외
[럼바우 분석기법]
*객동기
객체 모델링 = 객체 다이어그램
동적 모델링 = 상태 다이어그램
기능 모델링 = 자료 흐름도
*객2, 동상, 기자
파이프 필터 아키텍처; 파이프를 통해 단방향, 양방향으로 흐름. 필터 이동시 오버헤드 발생.
cf. 데이터 중심 아키텍처; 공유 데이터 저장소를 통해 접근자 간의 통신이 이루어짐. 각 접근자의 수정과 확장이 용이함.
2과목. 소프트웨어 개발
[버블 정렬(Bubble Sort)]
인접한 데이터를 비교하면서 데이터의 위치를 바꾸어 정렬하는 방법
-> 한 번의 Pass 내에서 다수의 교체 발생
Ex. 9, 6, 7, 3, 5
pass1; 6 7 3 5 9
pass2; 6 3 5 7 9
pass3; 3 5 6 7 9
깊이 우선 탐색(DFS); 최대한 깊이 탐색한 후 더 이상 탐색할 것이 없다면 그 이전으로 돌아가 탐색을 이어가는 것.
[테스트 드라이버]
- 테스트 대상의 하위 모듈 호출, 파라미터 전달, 모듈 테스트 수행 후의 결과 도출
- 상향식 테스트
[테스트 스텁]
- 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
- 하향식 테스트
통합 테스트 (Integration Test) ;
모듈을 통합하는 과정에서 모듈간의 호환성을 확인
- 스터브, 드라이버
단위 테스트 (Unit Test) ;
하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트.
내부에 존재하는 논리적인 오류를 검출, 기능이 제대로 수행되는지 점검
시스템 테스트 (System Test) ;
완전한 시스템에 대해 수행하는 테스트.
기능적, 비기능적 요구사항을 만족하는지 확인
인수 테스트 (Acceptance Test) ;
실제 환경에서 사용자가 참여하는 테스트.
요구 분석 명세서에 나타난 사항을 모두 충족하는지, 시스템이 예상대로 동작하는지 사용자의 관점에서 확인
이식성(Portability);
다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 능력
효율성(Efficiency);
최소의 작업으로 요구되는 기능을 수행할 수 있는 정도
사용 용이성(Usability);
소프트웨어를 쉽게 사용할 수 있는 정도
정확성(Correctess);
사용자의 요구사항을 충족시키는 정도
전위; 중앙 노드 먼저 방문
중위; 왼쪽 노드 방문 후 중앙 노드 방문
후위; 하위 트리 노드 모드 방문 중앙 노드 방문
테스트 케이스 자동 생성 도구를 이용하여 테스트를 찾아내는 방법;
-> 입력 도메인 분석, 랜덤 테스트, 자료 흐름도
3과목. 데이터베이스 구축
[무결성 규정(Integrity Rule)]
개체 무결성; 모든 테이블이 기본키로 선택된 컬럼을 가져야 함
-> 기본키는 null이 될 수 없음. 오직 하나의 값.
참조 무결성; 참조 관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지
-> 외래키는 참조할 수 없는 값을 가질 수 없음.
도메인 무결성; 테이블에 존재하는 필드의 무결성을 보장 ex. 올바른 데이터 입력
-> 특성 속성값은 그 속성이 정의된 도메인에 속한 값.
무결성 규칙; DB에서 무결성 규칙은 데이터 무결성을 지키기 위한 모든 제약 사항
*비즈니스 규칙은 데이터 베이스 유저들마다 각각 다르게 적용됨.
[물리적 데이터베이스 설계]
- 효율적인 방법으로 데이터를 저장하는 목적
- 트랜잭션 처리량, 응답시간, 디스크 용량 고려
- 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계
cf. 논리적 설계; 트랜잭션의 인터페이스 설계
[관계 대수 연산]
1) 일반 집합 연산자
합집합, 교집합, 차집합, 카디션 프로젝트
2) 순수 관계 연산자
Select, Project, Join, Division
* 절차적인 언어
* 릴레이션 조작을 위한 연산 ; 피연산자와 결과가 모두 릴레이션
[키(Key)]
1) 기본키(Primary Key)
- 특정 튜플을 유일하게 구별할 수 있는 속성. 중복 널 안됨
2) 슈퍼키(Super Key)
- 유일성을 만족하는 속성 또는 속성들의 집합
- 최소성은 만족하지 못함.
3) 후보키
- 유일성과 최소성을 만족하는 속성 또는 속성 들의 집합
4) 대체키(A은 lternate Key)
- 기본키로 선택되지 못한 후보키
- 보조키.
5) 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 참조 릴레이션의 기본키에 없는 값 입력 불가
[로킹(Locking)]
로킹 단위가 큼 -> 로크의 수가 적어짐 -> 병행성 수준 낮아짐. 병행 제어 기법 간단
로킹 단위가 작음 -> 로크의 수가 많아짐 -> 데이터 베이스 공유 증가, 로킹 오버헤드 증가 -> 병헹성 수준 높아짐
* 로킹 (병행제어 기법 중 하나)
- 직렬화 기법
- 데이터 베이스, 파일, 레코드 등은 로킹 단위
[SQL]
1) DDL ; CREATE, ALTER, DROP
2) DML ; SELECT, INSERT, DELETE, UPDATE
3) DCL ; COMMIT, ROLLBACK, GRANT, REVOKE
타임스탬프 기법(Time Stamp);
트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임 스탬프를 부여하여
부여된 시간에 따라 트랜잭션 작업을 수행하여 트랜잭션 간의 처리 순서를 미리 정하는 기법.
4과목. 프로그래밍 언어 활용
[응집도 (Cohensive)]
시간적 응집도 (Temporal Cohensive) ;
모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우
논리적 응집도 (Logical Cohensive) ;
모듈 내 구성 요소들이 같은 범주에 속하는 기능끼리 묶인 경우 ex. 새글, 불러오기, 저장하기, 다른 이름으로 저장
우연적 응집도 (Coincedental Cohensive) ;
모듈 내 구성 요소들이 뚜렷한 관계 없이 묶인 경우
순차적 응집도 (Sequential Cohensive) ;
모듈 내 구성 요소들이 이전의 명령어로부터 나온 출력결과를 그 다음 명령어의 입력 자료로 사용하는 경우 ex. 총점과 평균의 관계
JAVA의 우선순위; -- > % > & > =
A class에 속하는 ip 주소 범위: 0.0.0.0 ~ 127.255.255.255(0000 0000 ~ 0111 1111)
B class에 속하는 ip 주소 범위: 128.0.0.0 ~ 191.255.255.255(1000 0000 ~ 1011 1111)
C class에 속하는 ip 주소 범위: 192.0.0.0 ~ 223.255.255.255
D class와 E class는 각각 멀티캐스트용, 연구용
D class ip 주소 범위: 224.0.0.0 ~ 239.255.255.255
E class ip 주소 범위: 240.0.0.0 ~ 255.255.255.255
모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 하면 모듈 간의 결합도가 높아집니다.
TCP 헤더에 있는 Window size는 16비트로 2^16 = 65535byte = 64KB
[파일 디스크립터(File Descriptor)]
- 파일마다 따로 있으며 시스템에 따라 다른 구조를 가질 수 있다.
- 파일 시스템에서 관리하므로 사용자는 직접 참조할 수 없다.
- 파일 이름, 위치, 파일 구조, 보조기억장치의 유형, (텍스트/이진/기계어/실행 파일 등)파일 유형, 시간, 액세스 등의 정보를 담고 있다.
- 보조기억장치에 저장되어 있다가 파일이 개방되면 주기억장치로 이동한다.
- 파일 제어 블록(File Control Block)
5과목. 정보시스템 구축관리
[침입탐지 시스템 (IDS: Intrusion Detection System)]
이상탐지 (Anomaly Detection) ;
- Behavior, Statistical Detection로 불리며 평균적 시스템의 상태 기준으로 비정상적인 행위나 자원의 사용이 감지되면 알려줌
- 잘 알려지지 않은 공격 탐지.
오용탐지 (Misuse Detection) ;
- Signature Base 나 Knowledge Base라고 불리며 미리 입력해둔 공격 패턴이 감지되면 이를 알려줌
- 새로운 공격 패턴을 막기 어려움
HIDS(Host-Based Intrusion Detection) ;
- 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적
NIDS(Network-Base Intrusion Detection System) ;
- 대표적으로 Snort
DMZ (Demilitarized Zone) ;
- 외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크
- IDS 설치 가능
[접근 제어 방법]
강제 접근 통제 (Mandotory Access Control) ;
주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
임의 접근 통제 (Discretionary Access Control) ;
접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
사용자 계정 컨트롤 (User Access Control) ;
프로그램에서 관리자 수준의 권한이 필요한 작업을 수행할 때 사용자에게 알려서 제어할 수 있도록 돕는 기능
자료별 접근 통제 (Data-Label Access Control > Label-Based Access Control) ;
개별 행, 열에 대해 쓰기 권한, 읽기 권한을 가졌는지를 명확하게 결정하는 제어 방식
Paas-Ta
- 한국지능정보사회지능원 (NIA)
- 개방형 클라우드 플랫폼
- 오픈소스 기반의 Platform as a Service ; Paas에 올라 Ta
- 2014년 4월 버전 1.0 스파게티
- 2021년 2월 버전 5.5 세미나 ; 차세대 전자정부 클라우드
- 전자정부 서비스의 표준 개발, 운영 환경을 제공
VLAN (Virtual Local Area Network)
- 물리적 배치와 상관없이 논리적으로 LAN을 구성
- Broadcast Domain 을 구분할 수 있게 해주는 기술. 접속된 장비들의 성능향상 및 보안성 증대 효과
STP (Spanning Tree Protocal)
- 2개 이상의 스위치가 여러 경로로 연결될 때,
무한 루프 현상을 막기 위해서 우선 순위에 따라 1개의 경로로만 통신하도록 하는 프로토콜
ARP (Adress Resolution Protocol)
- 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind) 시키기 위해 사용되는 프로토콜
(IP를 MAC 주소로 바인딩)
[암호화 알고리즘]
개인키 암호화
- 블록 암호화 방식 : DES, SEED, AES, ARIA
- 스트림 암호화 방식 : LFSR, RC4
공개키 암호화 (비대칭 암호) : RSA
Software Defined Storage (SDS)
- 컴퓨팅 소프트웨어로 규정하는 데이터 스토리지 체계
- 가상화를 적용
- 소프트웨어로 전체 스토리지 자원을 관리하여 하나의 저장장치처럼 사용할 수 있도록 하는 기법
[생명주기 모형]
폭포수 모형 (Waterfall Model)
- Boehm이 제시한 고전적 생명 주기 모형
- 선형 순차적 모델 또는 고전적 생명주기 모형
- 분설구테유
- 가장 오래된 모형, 많은 적용 사례, 요구사항의 변경 어려움
- 각 단계의 결과가 확인 되어야 다음 단계로 넘어감
프로토타입 모형 (Prototype Model)
- 발주자나 개발자 모두에게 공동의 참조 모델을 제공
- 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 일부분 또는 시제품을 일시적으로 간결히 구현하여 요구사항을 반영하는 개발 모델
- 유지 보수가 없어지고 개발 단계 안에서 유지 보수가 이루어짐
*폭포수, 프로토타입, 나선형의 문제를 보완한 모형 ; 애자일
COCOMO 모델 (COCOMO Model)
- SW 비용 추정 모형
- 나선형 모델; 폭포수 프로토타입의 장점에 위험 분석 기능 추가
- 여러 번의 개발 과정을 거쳐 점진적으로 완벽한 SW를 개발하는 것
└ Embeded : 초대형 규모의 시스템 소프트웨어를 대상, 30만 라인 이상의 sw개발에 적합
└ Organic : 기관 내부의 중소 규모 sw대상, 5만 라인 이하 소프트웨어 개발에 적합
└ Semi-Detached : Organic과 Embeded의 중간 단계, 30만 라인 이하
- Putnam 모델 : Rayleigh-Norden 곡선의 노력 분포도를 이용한 비용 산정 기법
- 기능 점수 모델 : 기능 점수를 산출하여 비용 산정
SSO (single sign on) ; 여러 시스템 중 하나의 시스템에 인증을 성공하면 다른 시스템의 접근 권한도 모두 얻는 방식
토큰 기반 인증 ; 하드웨어와 소프트웨어의 토큰 장치를 사용하는 인증 기법, 스마트카드. 개인 식별번호, 강력
[Hash vs. Encryption]
- Hash ; 단방향, 복호화 불가능
- Encryption; 양방향, 역으로 복호화 가능
* 패스워드는 보통 단방향 Hash를 기본으로 저장
* 다른 암호값으로 저장되도록 추가되는 값 -> Salt
[비용 산정 기법]
Effort Per Task 기법
- LOC 기법을 보완
- 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정
전문가 감정 기법
- 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
- 개인적이로 주관적
델파이 기법
- 전문가 감정의 주관적인 편견을 보완
- 한 명의 조정자와 여러 전문가의 의견을 종합하여 산정
LOC 기법
- 원시 코드라인수 (source line of code) 의 비관치, 낙관치, 기대치를 측정 예측치 구함
- 본문 문제 내용 동일
* 2&3 - 하향식 비용 산정 기법
* 1&4 - 상향식 비용 산정 기법
'자격증 공부 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 필기준비 - 20년 9월 기출문제 (0) | 2022.04.22 |
---|---|
[정보처리기사] 필기 준비 - 21년 3월 기출문제 (0) | 2022.04.21 |
[정보처리기사] 필기준비 - 21년 5월 기출문제 (2차) (0) | 2022.04.20 |
[정보처리기사] 필기 준비 - 눈물의 21년 5월 기출문제 (1차) (2) | 2022.04.20 |
[정보처리기사] 필기 준비 - 22년 3월 기출문제 (2) | 2022.04.16 |
Contents
소중한 공감 감사합니다