[정보처리기사] 정보처리기사 필기 오답노트 4
정보처리기사 필기 대비 암기를 위한 오답노트 (정보처리기사 필기 06회 with 시나공)
1과목 - 소프트웨어 설계
디자인 패턴
- 생성 패턴
- 추상 팩토리
- 팩토리 메서드
- 빌더
- 프로토타입
- 싱글턴
- 구조 패턴
- 어댑터
- 브릿지
- 컴포지트
- 데코레이터
- 파사드
- 플라이웨이트
- 프록시
- 행위 패턴
- 책임 체인
- 커맨드
- 인터프리터
- 반복자
- 중재자
- 메멘토
- 옵저버
- 상태
- 전략
- 템플릿 메소드
- 방문자
객체지향 분석 방법론
- Rumbaugh(럼바우) 방법
- 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법 (객체 모델링 기법이라고도 함)
- 분석 활동은 객체 모델링 → 동적 모델링 → 기능 모델링 순으로 이루어짐 (객동기)
- Booch(부치) 방법
- 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법
- 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
- Jacobson 방법
- Use-Case를 강조하여 사용하는 분석 방법
- Coad와 Yourdon 방법
- E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정을 구성하는 기법
- Wirfs-Brock 방법
- 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법
2과목 - 소프트웨어 개발
후위식 표현
- / * A + B C D E |
- 계산법
- (- (/ (* A (+ B C) D) E)) → 인접한 피연산자 두 개와 왼쪽의 연산자를 묶음
- 묶인 괄호에서 연산자를 해당 괄호 뒤로 이동시킴
- A B C + * D / E -
- B C 뒤에 +
- A (+ B C) 뒤에 *
- (* A (+ B C) D) 뒤에 /
- (/ (* A (+ B C) D) E) 뒤에 -
- 괄호 삭제
소프트웨어 품질 목표
- Correctness (정확성)
- 사용자의 요구기능을 충족시키는 정도
- Reliability (신뢰성)
- 요구된 기능을 오류없이 수행하는 정도
- Efficiency (효율성)
- 요구된 기능을 수행하기 위한 시스템 능력과 필요한 자원의 소요 정도
- Portability (이식성)
- 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정할 수 있는 정도
- Integrity (무결성)
- 허용되지 않는 사용이나 자료의 변경을 제어하는 정도
- Usability (유용성)
- 쉽게 사용할 수 있는 정도
- Flexibility (유연성)
- 새로운 요구사항에 맞게 얼마만큼 쉽게 수정할 수 있는지의 정도
- Reusability (재사용성)
- 이미 만들어진 프로그램을 다른 목적으로 사용할 수 있는지의 정도
- Interoperability (상호운용성)
- 다른 소프트웨어와 정보를 교환할 수 있는 정도
3과목 - 데이터베이스 구축
4과목 - 프로그래밍 언어 활용
교착 상태 (Dead Lock)
교착 상태 발생의 필수 조건
- 상호 배제 (Mutual exclusion)
- 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 함
- 배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없어 배타적인 자원 사용 시, 교착 상태 발생
- 비선점 (Non-preemption)
- 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 함
- 자원을 빼앗을 수 없으면 공유할 수 없으므로 교착 상태 발생
- 점유와 대기 (Hold and wait)
- 다른 프로세스가 필요로 하는 자원을 점유하고 있으면서 또 다른 자원을 기다리는 상태가 되면 교착 상태 발생
- 원형 대기 (Circular wait, Linear wait X)
- 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어지면 프로세스들이 서로 양보하지 않기 때문에 교착 상태 발생
교착 상태 해결을 위한 주요 기법
- 예방 (Prevention)
- 상호 배제 예방: 시스템 내 상호 배타적인 모든 자원, 즉 독점적으로 사용할 수 있는 자원을 없애는 방법
- 비선점 예방: 모든 자원을 빼앗을 수 있도록 만드는 방법으로 우선순위가 낮은 프로세스는 아사 현상 발생 가능
- 점유와 대기 예방: 프로세스가 자원을 점유한 상태에서 다른 자원을 기다리지 못하게 하는 방법
- 원형 대기 예방: 점유와 대기를 하는 프로세스들이 원형을 이루지 못하도록 막는 방법
- 회피 (Avoidance)
- Banker’s 알고리즘: 자원의 총 수와 현재 할당된 자원의 수를 기준으로 시스템을 안정 상태와 불안정 상태로 나누고, 시스템이 안정 상태를 유지하도록 자원을 할당하는 알고리즘
- Safety 알고리즘: 안정 순열이 존재하는지 판별하는 알고리즘
- 탐지 (Detection)
- 타임아웃: 일정 시간 동안 작업이 진행되지 않은 프로세스를 교착 상태가 발생한 것으로 간주하여 처리하는 방법
- 자원 할당 그래프: 자원 할당 그래프를 통해 시스템 내 프로세스가 어떤 자원을 사용하고 있는지, 기다리고 있는지를 확인하여 탐지
- 회복 (Recovery)
- 프로세스 종료: 한 개 이상의 프로세스를 중지시켜 교착 상태를 회복
- 자원 선점: 프로세스들로부터 자원을 빼앗아서 교착 상태가 해결될 때까지 다른 프로세스들에게 할당
5과목 - 정보시스템 구축관리
접근통제 정책
- MAC (Mandatory Access Control): 강제적 접근 통제
- 주체, 객체 등급 기반 접근 권한 부여
- DAC (Discretionary Access Control): 임의적 접근 통제
- 접근 주체 신분 기반 접근 권한 부여
- RBAC (Role-Based Access Control): 역할 기반 접근 통제
- 주체, 객체 역할 기반 권한 부여
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.