정보처리기사/내용

2023년 3회차 대비 정보처리기사 실기 기출빈도 분석 요약 정리

내가 그린 코딩 그림 2023. 9. 15. 09:43
반응형

2023년 3회차 대비 정보처리기사 실기 기출빈도 분석과 요약 정리입니다. 23년도부터 필기 출제기준이 바뀌었습니다. 실기에도 영향이 있을까? 싶어서 기출문제 분석을 해봤는데 이 영향인지는 불확실하지만 코딩문제가 더 쉬워진 대신 많아졌습니다.

 

개정 후인 2020년부터 2022년까지는 프로그래밍이 5~6문제 였다면 2023년 1, 2회차 기준으로 C언어 5문제, 자바 2문제, 파이썬 1문제 총 8문제 정도로 나오고 있습니다. sql문까지 2문제 정도 출제되기 때문에 50점은 프로그래밍언어+SQL문에서 나오기 때문에 개념을 외우면서 프로그래밍 + SQL공부까지 같이 하시는걸 추천드립니다.

 

아래 요약들은 외우기 좋은 개념들을 빈도분석해 정리한것으로 프로그래밍, SQL등은 포함되어있지 않습니다.


1. UI, UX ★★★

UI 유형

CLI(Command Line Interface) : 키보드를 이용해 명령을 입력해 컴퓨터를 조작하는 시스템

GUI(Graphical User Interface) : 마우스 등을 통해 입력, 출력 이루어짐, 아이콘 등의 그래픽 존재

NUI(Natural User Interface) : 특별한 하드웨어 없이 인간의 자연스러운 움직임을 인식해 정보 제공

OUI(Oranic User Interface) : 현실의 모든게 입출력 장치가 되는 것

 

UI, UX 개념

UI(User Interface) : 정보기기와 사용자가 서로 상호작용 할 수 있도록 연결해주는 매개체(화면 요소 등)

UX(User eXperience) : UI를 직/간접적으로 이용하여 경험한 모든 것

 

UI 설계 원칙

직관성 : 누구나 쉽게 이해하고 사용가능해야 한다.

유효성 : 사용자 목적을 정확하게 달성해야 한다.

학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.

유연성 : 사용자 요구사항을 최대한 수용하고 오류를 최소화 해야한다.


프로토콜 3요소

구문, 의미, 타이밍

 

프로토콜은 구의역에서 !

 

IPv6, IPv4

IPv4: 32비트 주소길이, 8비트씩 4부분 10진수로 표시, 유니캐스트 멀티캐스트 브로드캐스트, IPsec 별도 설치 필요, 품질 미보장

IPv6: 128비트 주소길이, 16비트씩 8부분 16진수로 표시, 유니캐스트 멀티캐스트 애니캐스트, 확장 기능에서 보안 제공, 품질 보장

 


2. 테스트 기법 & 화이트, 블랙 박스 테스트 ★★★★

프로그램 테스트 기법

정적 테스트: 소프트웨어 실행 없이 구조 분석하는 테스트, 경로 분석, 제어 흐름 등 분석

동적 테스트: 소프트웨어를 실행해 오류를 발견하는 분석 기법

 

화이트박스, 블랙박스 테스트

화이트박스 테스트

- 내부 구조와 동작은 검사하는 테스트 방식, 내부 소스코드를 테스트하는 개발자 관점의 기법

- 기초 경로 검사

블랙박스 테스트

- 주로 구현된 기능을 테스트 하는 사용자 관점의 테스트

 

블랙박스 테스트의 기법

동등 분할 기법(Equivalence Partitioning Testing): 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법

경계값 분석(Boundary Value Analysis): 조건의 경계값을 테스트

원인-효과 그래프 검사(Cause-Effect Graphing Testing): 입출력 영향도 분석, 다음 효용성이 높은 케이스를 테스트하는 기법

오류 예측 검사(Error Geussing): 과거 경험이나 테스터의 감각으로 테스트

비교 검사(Comparison Testing): 여러 버전으로 동일 결과 출력되는지 테스트 


3. 테스트 목적&커버리지 ★★★

테스트 목적

회복(Recoery) : 고의로 실패를 유도해 시스템이 정상적으로 복귀하는지 테스트

안전(Security) : 보안적인 결함을 점검하는 테스트

강도(Stress) : 일부러 과부하를 일으켜 과부하 상황에서도 정상작동 하는지 확인하는 테스트

성능(Performance) : 응답시간, 처리량, 반응속도 등 성능적인 면을 테스트

구조(Structure) : 시스템 논리 경로, 복잡도 등을 평가하는 테스트

회귀(Regression) : 변경 또는 수정된 코드에 대한 새로운 결함을 확인하는 테스트

병행(Parallel) : 변경된 시스템과 기존 시스템에 동일 데이터를 입력해 결과를 비교하는 테스트

A/B테스트 : 새로운 서비스가 기존 서비스에 비해 정말 효과가 있는지 비교하는 테스트

 

테스트 커버리지

구문 커버리지 : 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지

조건 커버리지 : 모든 개별 조건식에 대해 수행하는 테스트 커버리지

결정 커버리지 : 모든 분기문에 대해 수행하는 테스트 커버리지

다중 조건 커버리지 : 결정포인트 내 모든 개별 조건식의 가능한 조합을 100% 보장해야 한다.


4. 테스트 오라클 & 테스트 레벨 ★★

테스트 오라클

참(True) 오라클: 모든 테스트 케이스 입력값의 기대 결과를 확인

샘플링(Sampling) 오라클: 특정한 몇 개 입력 값에 대해서만 기대하는 결과 제공

휴리스틱(Heuristic) 오라클: 샘플링 오라클을 개선한 오라클로, 특정 입력 값에 대해 올바른 결과 제공, 나머지 값들은 추정으로 처리하는 오라클

일관성 검사(Consistency Check) 오라클: 변경이 있을 때, 수행 전과 후의 결과값을 비교하는 오라클

 

테스트 레벨

단위 테스트: 테스트 프로세스 첫 단계, 코드 효율과 코딩 표준 검증(정적 테스트, 동적 테스트)

통합 테스트: 각 모듈을 통합해 상호작용 과정의 오류 검증(상향식, 하향식, 빅뱅, 백본 테스트)

시스템 테스트: 구현된 시스템과 계획된 사양을 서로 비교(기능적, 비기능적 테스트)

인수 테스트: 시스템을 배포하거나 실제 사용할 만한 준비가 되었는지 평가(알파, 베타 테스트)

출처 : 정보처리기사 흥달쌤

인수 테스트 유형

알파 테스트: 개발자 통제하에 사용자가 개발 환경에서 하는 테스트(내부 자체검사)

베타 테스트: 개발된 소프트웨어를 사용자가 실제 운영환경에서 수행하는 테스트

사용자 인수 테스트: 사용자가 시스템 적절성 확인

운영상 인수 테스트: 백업, 복원테스트, 보안 취약점 점검

계약 인수 테스트: 계약상 인수조건을 준수하는지 확인

규정 인수 테스트: 정부의 지침, 법률 등을 준수하는지 확인 


5. 테스트 장치 & 통합 테스트 분류 ★★

테스트 장치 구성 요소

테스트 드라이버: 테스트 대상 하위모듈 호출, 상향식 테스트에 필요

테스트 스텁: 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 하향식 테스트에 필요

 

통합 테스트 수행 방법의 분류

하향식 통합 테스트: 메인 제어 모듈로부터 아래 방향으로 진행하는 테스트, 아직 개발되지 않은 하위 모듈은 더미 모듈인 테스트 스텁(Stub)을 사용해 테스트

상향식 통합 테스트: 최하위 레벨 모듈부터 위쪽 방향으로 진행하는 테스트, 반환 값을 전달하는 테스트 드라이버를 개발하여 테스트 진행

빅뱅 테스트: 모든 구성 요소들을 한꺼번에 테스트, 소규모 테스트에 적합

백본 테스트: 상향, 하향식을 결합한 샌드위치 테스트


6. 데이터베이스 ★★★★★

데이터베이스 설계 순서

요구조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현

 

개념, 논리, 물리 단계

개념적 설계: 데이터베이스 관점 추상화 돤계, 개념적 스키마 구성(E-R 다이어그램)

논리적 설계: 논리적 스키마 생성, 정규화 과정 수행, 트랜잭션 인터페이스 설계

물리적 설계: 물리적 구조, 내부 저장구조 구체화, 물리적 스키마 생성, 레코드 집중 분석 및 설계

 

정규화 개념

데이터베이스 설계에서 중복을 최소화할 수 있게 데이터를 구조화 하는 것, 중복 최소화, 이상 현상 최소화 등에 기여

 

정규화 과정

14분 경 참고 : https://youtu.be/WAvkCIawpTM?si=0jUI4qUGoqTyF6Oa

도부이결다조 -> 두부 이걸 다줘?

요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 단계로 데이터베이스 설계가 진행되며 논리적 단계에서 정규화라는 것을 하게되는데 각각 위 키워드로 몇단계 정규화를 진행하는지 알 수 있다.

 

반정규화 개념

시스템의 성능향상과 개발 편의성 등을 위해 정규화에 위배되는 중복을 허용하는 기법

 

데이터베이스 이상현상

삽입 이상: 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상

삭제 이상: 데이터 삭제 시 원치 않는 데이터까지 삭제되는 현상

갱신 이상: 데이터 갱신 시 일부 데이터만 갱신되어 정보에 모순이 생기는 현상

 

트랜잭션 특징

Automicity(원자성): 트랜잭션 연산은 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.

Consistency(일관성): 트랜잭션이 그 실행을 성공하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

Isolation(격리성): 둘 이상의 트랜잭션이 동시 실행되는 경우 어느 하나의 트랜잭션 실행 중에는 다른 트랜잭션이 끼어들 수 없다.

Durability(영속성): 성공적으로 완료된 트랜잭션 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

ACID

 

슈퍼키와 후보키

슈퍼키는 유일성을 갖는다.

후보키는 유일성과 최소성을 갖는다.


7. 응집도&결합도 ★★★

결합도(Coupling)

결합도 설명
자료 결합도(Data Coupling) 모듈 간의 인터페이스로 값이 전달되는 경우
스탬프 결합도(Stamp Coupling) 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
제어 결합도(Control Coupling) 단순 처리 대상의 값만 전달되는게 아닌 어떻게 처리해야 한다는 제어요소가 함께 전달되는 경우
외부 결합도(External Coupling) 어떤 모듈에서 선언한 변수를 외부 다른 모듈에서 참조하는 경우
공통 결합도(Common Coupling) 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우
내용 결합도(Content Coupling) 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

축구 외제쓰자 -> 내공 외제스자

"내공 외제스자"로 외우면 점점 좋아지는 순서이며(결합도가 약해지는) 모듈끼리의 결합도는 약할수록 좋다. 만약 결합도가 강할 경우 흔히 스파게티 코드라고 불리는 뒤엉킨 코드 구조가 만들어지게 된다.

 

응집도(Cohesion)

응집도 설명
기능적 응집도(Functoinal Cohesion) 모듈 내부 기능이 단일한 목적을 위해 수행되는 경우
순차적 응집도(Sequential) 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
통신적 응집도(Communication) 동일합 입출력을 사용해 다른 기능을 수행하는 활동들이 모여있을 경우
절차적 응집도(Procedural) 모듈이 다수의 관련 기능을 가질 때 모듈안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
시간적 응집도(Temproral) 연관된 기능이라기보단 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
논리적 응집도(Logical) 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
우연적 응집도(Coincidental) 모듈 내부 각 구성 요소들이 서로 연관이 없을 경우

시절 순대 억나? -> 우논시절 통순기

"우논시절 통순기"로 외우면 응집도가 점점 좋아지는 순서이며 한 모듈내의 응집도는 강할수록 좋다. 순차적으로 수행되는 경우는 순차적이 아닌 절차적이라는 점을 주의하자


8. EAI(Enterprise Application Integration) ★

EAI의 개념

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계 통합을 가능하게 해주는 솔루션

 

EAI 구축 유형

Point-to-Point: 미들웨어를 두지않고 각 애플리케이션간 Potin to Point 형태로 이루어짐

Hub & Spoke: 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙집중적 방식

Message Bus: 애플리케이션 사이 미들웨어(버스)를 두어 처리

Hybrid: 그룹 내에는 Hub & Spoke방식, 그룹 간에는 메시징 버스 이용

 

ESB(Enterprise Service Bus)

EAI와 유사하지만 애플리케이션보다 서비스 중심으로 통합을 지향하는 기술


9. 인터페이스 전송 데이터&프로토콜 ★

인터페이스 전송 데이터

JSON: 자바스크립트 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 포맷, Key와 Value 쌍으로 이루어짐

XML: 웹에서 구조화한 문서로 표현하고 전송하도록 설계한 마크업 언어, HTML처럼 태그가 정해져있지 않고 사용자가 직접 정의

YAML: 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어, xml문법과 유사하지만 태그를 사용하지 않고 공백 위주로 데이터를 구분

CSV: 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일

 

AJAX(Asynchronous JavaScript and XML)

자바스크립트를 이용해 서버와 브라우저 비동기 방식으로 데이터를 교환할 수 있는 통신 기능

 

SOAP(Simple Object Access Protocol)

HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크상에서 교환하는 프로토콜, DCOM이나 CORBA의 호환성과 보안 문제로 등장했으며 보통 RPC 패턴을 사용한다.

 

REST

HTTP URL을 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD Opertation을 적용하는 것을 의미한다. Stateless의 특징을 가지고 있다.


블록 암호 알고리즘

 

로그 기반 회복기법

 

서비스 공격 유형

 

OSI 7 Layer

출처 : 정보처리기사 흥달쌤


Last. 다이어그램&디자인 패턴 ★★★★

시험에 1~2문제 정도는 나오지만 내용이 너무 많아 시험 직전에 암기해서 시험장 들어가자마자 풀고 까먹는 전략을 추천

UML 다이어그램

구조적 다이어그램(Structure Diagram)
클래스 다이어그램 시스템을 구성하는 클래스들 사이의 관계를 표현
패키지 다이어그램 클래스나 유스케이스 등을 포함한 여러 모델 요소들을 그룹화하여 패키지를 구성하고 패키지들 사이의 관계를 표현한다.
복합체 구조 다이어그램 복합 구조의 클래스와 컴포넌트 내부 구조를 표현한다.
객체 다이어그램 객체 정보를 보여준다.
컴포넌트 다이어그램 컴포넌트 구조 사이의 관계를 표현한다.
배치 다이어그램 소프트웨어, 하드웨어, 네트워크를 포함한 실행 시스템의 물리 구조를 표현한다.
행위 다이어그램(Behavior Diagram)
유스케이스 다이어그램 사용자 관점에서 시스템 행위를 표현한다.
활동 다이어그램 업무 처리 과정이나 연산이 수행되는 과정을 표현한다.
콜라보레이션 다이어그램 순차 다이어그램(Sequence Diagram)과 같으며 모델링 공간에 제약이 없어 구조적인 면을 중시한다
상태 머신 다이어그램 객체의 생명주기를 표현한다.

 

디자인패턴

 

 

 

 

반응형