본문 바로가기

카테고리 없음

[정보처리기사 필기] 2020이후 개정판 하루만에 합격하기(기출문제 해설집)

정처기 필기 필수 개념 정리

 

정보처리기사 필기 시험은 모든 개념을 다 알고 있어야 통과할 수 있는 시험이 아닙니다. 60점만 맞으면 되기 때문에 책을 펼쳐서 모든 내용을 공부할 필요가 없습니다. 게다가 개정 이후로도 항상 나왔던 문제가 비슷하게 출제되고 있습니다. 개념은 아래글을 외우고 기출 문제를 풀면서 준비하시면 됩니다. 옳지 않은 것을 고르는 문제는 오른 것들을 보면서 개념을 익혀나가면 됩니다. 형광펜과 설명을 달아놓은 기출문제를 PDF파일로 정리해서 아래 링크에 올려드리니 참고하면 됩니다. 제가 정리한 글이 도움이 되길 바랍니다.

 

2020년도 2021년도 기출문제 풀이 링크

 

정보처리기사 필기(교사용).zip

 

drive.google.com


1과목 : 소프트웨어 설계

럼바우(Rumbaugh) 객체지향 분석 기법(절차 : 객동기)

  • 체 모델링 : 객체 다이어그램(객체의 관계)를 표시하는 모델링
  • 적 모델링 : 상태 다이어그램(상태도)를 통해 시간의 흐름에 따라 객체들을 모델링 함
  • 능 모델링 : 자료 흐름도(Data Flow Diagram)을 이용하여 프로세스 간 자료를 중심으로 모델링 함

CASE(Computer Aided Software Engineering)

  • 모듈의 재사용성이 향상되어 유지보수가 간편하며 소프트웨어 품질이 향상 됨
  • 주요기능 : 모델들 사이의 모순검사, 자료흐름도 작성, 모델의 오류 검증
  • 원천기술 : 구조적 기법, 프로토타이핑 기술, 정보 저장소 기술

객체지향 설계 5대 원칙(SOLID)

  • 단일 책임 원칙 : 한 클래스는 하나의 책임만 가져야 함
  • 개방 폐쇄 원칙 : 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 함
  • 리스코프 치환 원칙 : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 함
  • 인터페이스 분리 원칙 : 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 나음
  • 의존관계 역전 원칙 : 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안됨”

객체지향 4대 특징(캡 상추다!)

  • 캡슐화 : 정보의 은닉, 객체의 속성을 보호하기 위해 사용
  • 상속 : 하위로 내려갈 수록 구체화 되는 것을 의미
  • 추상화 : 모델링하는 것을 의미(현실세계의 것을 모델로 추상화함)
  • 다형성 : 하나의 개체가 여러 형태로 변화하는 것을 의미

Gof 디자인 패턴(1~2문제 등장 시간이 부족하면 PASS)

  • 생성(Creational) 패턴(아파바파스)
    • Abstract Factory : 관련있는 서브 클래스를 묶어서 팩토리 클래스로 만들고, 이를 조건에 따라 객체를 생성하는 패턴
    • Factory Method : 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지 서브 클래스가 결정하도록 하는 패턴
    • Builder : 많은 인수를 가진 복잡한 객체를 단계적으로 생성하는 것에 초점을 두는 패턴
    • Prototype : 성능 향상을 위해 기존 객체를 복사하여 중복 객체를 생성하는 패턴
    • Singleton : 클래스가 오직 하나의 인스턴스만 가지도록 하는 패턴
  • 구조(Structural) 패턴
    • Adapter : 서로 다른 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴
    • Bridge : 하나의 계층에 복잡하게 존재하는 클래스들을 기능 클래스와 구현 클래스로 분리하여 두 클래스를 연결하는 패턴
    • Composite : 복합 객체와 단일 객체를 동일하게 취급하거나 다룰 수 있는 패턴
    • Decorator : 소스를 변경하지 않고 독립적인 기능을 확장하도록 하는 패턴
    • Facade : 많은 서브 시스템들이 바람직하지 않은 결합도를 갖거나 서브 시스템들의 구현이 혼잡할 때 사용하는 패턴
    • Flyweight : 대량의 유사한 작은 객체들을 공유하여 메모리를 가볍게 유지하는데 유용한 패턴
    • Proxy : 다른 객체로 접근하는 것을 통제하기 위해서 그 객체의 대리자를 제공하는 패턴
  • 행위(Behavioral) 패턴
    • Chain of Responsibility : 문제의 처리를 담당하는 여러 개의 처리 기능을 두고 순서대로 처리해 나가는 패턴
    • Command : 요청 자체를 객체화(캡슐화)하여 클라이언트에 매개변수(Parameter)로 넘길 수 있게 하기 위한 패턴
    • Interpreter : 간단한 언어의 문법을 정의, 문장을 구성, 문장을 해석하는 방법을 제시하는 패턴
    • Iterator : 내부 데이터 구조를 노출하지 않고 어떤 객체 집합에 속한 원소들을 순차적으로 접근할 수 있도록 하는 패턴
    • Mediator : 여러 객체 간의 통신 복잡성을 줄이기 위해 사용되는 패턴
    • Memento : 객체의 상태를 저장해두었다가 복원해야 할 경우 사용하는 패턴
    • Observer : 1대 다 관계의 오브젝트에 대해 감시하고 있다가 특정 객체의 상태가 변하면 다른 모든 객체에게 그 사항을 알리고, 필요한 경우 자동적으로 수정이 이루어지도록 하는 패턴
    • State : 객체 자신의 내부 상태에 따라 기능을 변경하도록 하는 패턴
    • Strategy : 클래스별로 캡슐화되어 있는 객체들을 상호교환이 가능하도록 하는 패턴

자료사전

  • 자료, 자료의 집합, 자료의 흐름, 자료의 저장소와 그것들의 관계-범위-단위를 구체적으로 명시하는 것을 말함
  • = : 정의
  • + : 구성
  • {} : 반복
  • [] : 선택
  • () : 생략가능
  • ** : 주석

미들웨어

  • 애플리케이션들을 연결해 이들이 서로 데이터를 교환할 수 있게 중계 역할을 하는 소프트웨어 ex) 웹어플리케이션서버(WAS)

UML(Unified Modeling Language)

  • 기능적 모델 : 사용자 측면에서 본 시스템 기능, Use case Diagram
  • 정적 모델 : 객체, 속성, 연고나관계, 오퍼레이션의 시스템의 구조를 나타냄, Class Diagram
  • 동적 모델 : 시스템의 내부동작을 의미, Sequence Diagram, State Diagram, Activity Diagram

하향식 설계 : 위에서 아래로 설계

상향식 설계 : 아래에서 위로 설계


2과목 : 소프트웨어 개발

소프트웨어 패키징 도구(딱봐도 틀린것들)

EAI 구축유형

  • 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션
  • Point-to-Point : 가장 기본적인 통합 방식, 애플리케이션을 1대 1로 연결
  • Hub&Spoke :  단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식
  • Message Bus : 애플리케이션 사이에 미들웨어를 두어 처리하는 방식
  • Hybrid : Hub&Spoke와 Message Bus의 혼합 방식


소스코드 품질분석 도구

  • 정적분석도구
  • 동적분석도구

알파 검사(테스트)

  • 개발자의 장소에서 사용자가 개발자 앞에서 행하는 검사, 통제된 환경에서 사용자와 개발자가 함께 검사를 수행

배타 검사(테스트)

  • 필드 테스팅이라고도 불리며 개발자 없이 고객의 사용 환경에 소프트웨어를 설치하여 검사를 수행

정렬문제

  • 선택정렬 : 가장 작은 숫자를 선택해서 정렬되지 않은 가장 왼쪽 숫자와 위치를 바꿈, 시간복잡도 N^2
  • 삽입정렬 : 두번째 숫자부터 순서대로 선택해서 왼쪽의 숫자와 비교하면서 알맞은 위치에 삽입, 시간복잡도 N^2
  • 버블정렬 : 바로 옆의 수와 비교해서 위치를 바꿈, 시간복잡도 N^2
  • 시험범위내 다른 나머지 정렬은 대부분 시간복잡도 : nlogn

소프트웨어 형상관리

  • 개발과정에서 변경사항을 관리하기 위한 일련의 활동
  • import : 버전관리가 되고 있지 않은 아무것도 없는 저장소(Repository)에 처음으로 파일 복사
  • Check-Out : 저장소에서 파일을 받아옴
  • Check -In : 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)에 새로운 버전의 파일 갱신
  • Commit : 체크인 수행시 이전에 갱신된 내용이 있는 경우 충돌을 알리고 Diff 도구로 수정 후 갱신완료

테스트 오라클

화이트박스

  • 검사과정이 보임(화이트)

블랙박스

  • 검사과정이 보이지 않음(블랙)
  • 경계값 분석 등

클린코드 작성원칙

  • 단순성 : 간단한 작성, 한 번에 한가지 기능 처리
  • 가독성 : 누구나 코드를 쉽게 읽을 수 있도록 작성
  • 의존성 배제 : 다른 모듈에 미치는 영향 최소화
  • 중복성 최소화 : 중복된 코드는 삭제하여 공통된 코드로 사용
  • 추상화 : 상위에서 간략하게 특성을 나타내고 하위에서 상세내용 구현

자료구조

  • 큐 : FIFO
  • 스택 : LIFO

3과목 : 데이터베이스 구축

트랜잭션(데이터베이스 상태를 변화시키기 위하여 논리적인 기능을 수행하는 하나의 작업 단위)의 특징

  • Atomity(원자성) : 트랜잭션의 연산은 데이터베이스에 모두 반영되거나 전혀 반영되지 않음
  • Consistency(일관성) : 트랜재견이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
  • Isolation(고립성) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 트랜잭션 실행 중에 다른 트랜잭션이 끼어들 수 없음
  • Durability(영속성) : 성공적으로 완료돈 트랜잭션의 결과는 영구적으로 반영됨
  • Commit 연산 : 갱신연산이 완료된 것을 알려주는 연산
  • Rolback연산 : 실행을 모두 취소하는 연산

로킹(locking) : 트랜잭션이 접근하고자 하는 데이터를 잠가 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법

로킹 단위 로크의 수 병행 제어 로킹 오버헤드 병행성 수준 데이터베이스 공유도
커짐 작아짐 단순해짐 감소 낮아짐 감소
작아짐 커짐 복잡해짐 증가 높아짐 증가

※ 로킹 단위와 나머지 속성은 반비례 관계임

정규화(최근 4와 5정규화도 나오긴 함)

  • 1정규화 : 원자 값이 아닌 도메인을 분해
  • 2정규화 : 부분 함수 종속 제거
  • 3정규화 : 이행 함수 종속 제거
  • BCNF : 결정자가 후보키가 아닌 함수 종속 제거

SQL 명령어 나누기(대강 영어뜻보면 알수 있음)

  • DML(Manipulation) :  데이터 조작어, 데이터를 조회하거나 변형을 가하는 명령어, SELECT, INSERT, UPDATE, DELETE 등
  • DDL(Definition) : 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 삭제할때 사용, CREATE, ALTER, DROP, RENAME 등
  • DCL(Control) : 데이터베이스에 접근해서 권한을 주고 회수하는 명령어, GRANT, REVOKE
  • TCL(Transaction Control) : 트랜잭션 제어어

E-R 다이어그램

  • 사각형 : 개체타입
  • 선 : 개체타입과 속성을 연결
  • 마름모 : 관계타입
  • 타원 : 속성
  • (보통 삼각형 오답)

시스템 카탈로그(메타데이터)

  • DBMS가 자동으로 생성하고 유지하며, 시스템이 필요로하는 스키마 및 여러가지 객체에 대한 정보를 포함 함

뷰(사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 만들어진 가상 테이블) 특징

  • 가상테이블이기 때문에 물리적으로 구현되있지 않음
  • 데이터의 논리적 독립성을 제공함
  • 기본테이블과 같은 형태의 구조이고 조작도 거의 같음
  • 오리지널 데이터를 안전하게 보호 할 수 있음
  • 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있음
  • 뷰가 정의 된 기존 테이블을 삭제하면 뷰도 삭제 됨

  • 기본키 : 한 릴레이션에서 튜플들을 유일하게 구별할 수 있는 속성으로 후보키 중에 선택된 주키
  • 후보키 : 릴레이션을 구성하는 속성들 중에서 기본키가 될 수 있는 키들의 집합
  • 외래키 : 관계를 맺고 있는 릴레이션에서 참조하는키
  • 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 유일성 만족 최소성 불만족
  • 대체키(보조키) : 후보키가 둘 이상일 때, 기본키를 제외한 나머지 후보키들을 가리킴

관계대수

  • Selection(σ)
  • Projection(π)
  • Product(X)
  • Join()
  • Division(÷)

스키마

  • 개념 스키마 : 전체적인 뷰,데이터베이스의 전체적인 논리적 구조
  • 외부 스키마 : 사용자 뷰, 데이터베이스의 논리적 구조
  • 내부 스키마 : 물리적 저장장치 입장에서본 데이터베이스 구조

인덱스 : 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위해 만듦

속성/차수(Attribute, Degree)

  • 테이블 가장 위 가로줄

카디널리티/튜플/레코드(Cardinality, Tuple, Record)

  • 세로로 들어가는 데이터 하나하나 행(Row)

도메인(Domain)

  • 필드에 채워질 수 있는 값의 집합

데이터베이스 설계(요구분석 - 개념적설계 - 논리적설계 - 물리적설계 - 구현)

  • 개념적설계(E-R모델) : 정보를 구조화 하기 위해 추상적 개념으로 표현하는 과정(E-R Diagram 작성)
  • 논리적 설계(데이터 모델링) : 자료를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 자료 구조로 변환하는 과정(테이블 설게, 정규화)
  • 물리적 설계(데이터 구조화) : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정(저장구조 및 액세스 경로, 인덱스 구조, 레코드의 크기, 순서 등을 결정하며 반응시간, 공간활용도, 트랜잭션 처리량 등을 고려하여 설계함)

개체 무결성

  • 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 함

참조 무결성

  • 다른 릴레이션을 참조하는 관계가 일관되어야 함(신뢰성을 위해 A가 바뀌면, A를 참조하고 있던 다른 테이블의 A도 같이 변경되야 함)

4과목 : 프로그래밍 언어 활용

커널

  • 운영체제의 핵심적인 부분으로 프로그램과 하드웨어 간의 인터페이스 역할을 하며 주기억장치에 적재된다.

OSI 7계층(상위만 나옴)

  • 7계층 응용(Application)
  • 6계층 표현(Presentation)
  • 5계층 세션(Session)
  • 4계층 전송(Transport) : TCP/UDP
  • 3계층 네트워크(Network) : IP

TCP

  • OSI 7계층 중 전송 계층(Transport Layer)
  • 신뢰성을 보장함
  • 어플리케이션 통로제공
  • 포트로 주소 결정

UDP

  • OSI 7계층 중 전송 계층(Transport Layer)
  • 신뢰성을 보장하지 않음
  • 어플리케이션 통로제공
  • 포트로 주소 결정
  • TCP에 비해 전송속도가 빠름

IP

  • OSI 7계층 중 네트워크 계층(Network Layer)
  • 호스트 간의 통로 제공
  • 신뢰성을 보장하지 않음

페이지 교체 알고리즘 계산(풀네임을 보고 융통성있게 풀기)

프로세스 계산(풀네임을 보고 융통성있게 풀기)

IPv6

  • 128비트 사용
  • 확장 헤더 사용으로 보안기능 강화
  • 애니캐스트(anycast) : 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 전달

결합도(Coupling)

두 모듈간의 상호작용, 또는 의존정도를 나타내는 것

  • 내용 결합도(Content) : 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때
  • 공통 결합도(Common) : 두 모듈이 동일한 전역 데이터를 접근
  • 결합도 낮은 순 정렬(자료 < 스템프 < 제어 < 외부 < 공통 < 내용)

응집도(Cohesion)

  • 순차적 응집도(Sequential) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용
  • 절차적 응집도(Procedural) : 모듈이 다수의 기능을 가질때 구성 요소들이 그 기능을 순차적으로 수행
  • 논리적 응집도(Logical) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리
  • 응집도 높은 순 정렬(기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적)

결합도는 낮을수록 응집도는 높을 수록 좋음.(응 높아~ / 결합도는 반대)

자바의 접근 제어자

  • public(default), private, protected

5과목 : 정보시스템 구축관리

VPN

  • 이용자가 인터넷과 같은 공중망에 사설망을 구축하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

CMM(Capability Maturity Model)의 레벨

  • 최적단계
  • 관리단계
  • 정의단계

생명주기 모형

  • 폭포수 모형 : 가장 오래된 모형으로 요구사항의 변경이 어려우며 각 단계의 결과가 확인 되어야지만 다음단계로 넘어감(선형 순차적 모형)
  • 나선형 모형 : (계획수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가) 순서를 반복하면서 프로젝트를 진행하는 것

소프트웨어 개발시 프레임 워크의 적용효과(융통성있게 좋아보이는 것들은 맞는말)

에자일 방법론

  • 익스트림 프로그래밍의 5가지 가치 : 의사소통, 단순성, 용기, 피드백, 존중(의단용 피존)
  • 스크럼

소프트웨어 비용 추정모형

  • COCOMO(비중 높게 등장) : organic, semi-detach, embedded
  • Putnam(그 다음으로 자주등장)
  • Function-Point

RSA

  • 공개키 암호화 기법으로 큰 소인수 분해를 이용해 키를 만듬

정보 보안 3요소

  • 기밀성
  • 무결성
  • 가용성