나 개발자 진짜 되냐?

정보처리기사 25년 3회차 - 2과목 공부 본문

CS를 공부해봐요!

정보처리기사 25년 3회차 - 2과목 공부

Snow Rabbit 2026. 6. 2. 04:18

 

 

2과목 공부

 

1. 바람직한 소프트웨어 설계 지침

응집도 강 / 결합도

= 모듈의 독립성 확보

유지보수가 수월해야 함, 복잡도와 중복을 피함

입구와 출구는 하나씩!

효과적인 제어를 위해 계층적 자료 조직이 제시되어야 함.

 

 

2. 구현 단계 작업 절차

코딩 계획 -> 코딩 -> 컴파일 -> 테스트

 

 

3. 소프트웨어 설치 메뉴얼 

제품 소프트웨어 개요, 설치 관련 파일, 설치 아이콘, 프로그램 삭제, 관련 추가 정보

개발 기간 X

 

 

4. 전위식을 후위식으로 옳게 표현

- / * A + B C D E

 

+ B C  => B C +

*A ( B C  +) => A B C + *

/ A B C + * D => A B C + * D / 

- A B C + * D / E => A B C + * D / E

 

피연산자의 왼쪽에 연산자가 있으므로 연산자 1개와 피연산자 2개씩 묶기

[연산자] [알파벳] [알파벳]

연산자를 피연산자 뒤로 이동 / 괄호로 묶고 계속 위에 식 반복

마지막 모든 괄호 제거

 

 

5. 소프트웨어 품질 목표

정확성( Correctness ) : 사용자의 요구 기능을 충족시키는 정도

신뢰성( Reliability ) : 주어진 시간 동안 주어진 기능을 오류 없이 수행

사용 용이성 ( Usability ) : 사용에 필요한 노력을 최소화 + 쉽게 사용 + 인터페이스와 문서를 有

효율성 ( Efficiency ) : 명시된 조건 하에 sw제품의 일정한 성능 + 자원 소요량의 관계 + 기능을 수행하기 위해 필요한 자원의 소요

무결성 ( Intergrity ) : 허용되지 않은 사용이나 자료의 변경을 제어

 

 

6. 사용자 인터페이스( UI ) 요소

라디오 버튼 : 여러 선택 영역에서 하나를 선택할 때 사용 하는 버튼 / 항목 중 하나만 선택 가능

체크 박스 : 라디오 버튼과 달리 동시에 여러 항목 선택

토글 버튼 : 항목을 on / off 할 때

드롭다운 리스트 ( 목록상자 ) : 기본값이 보이는 디폴트 값 보유 + 드롭다운 버튼 누르면 선택 항목 표시

 

 

7. 퀵 정렬

레코드의 많은 자료의 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬

 

+

해시 정렬 : 레코드 키 값 분석, 같은 값끼리 순서에 맞는 버킷에 분배 후 버킷의 순서대로 정렬

삽입 정렬 : 인접한 두개의 레코드 키 값을 비교, 크기에 따라 레코드 위치를 서로 교환

선택 정렬 : 임의의 레코드 키와 매개변수 값 만큼 떨어진 곳의 레코드 키 비교하여 교환

 

 

8. 디지털 저작권 관리 ( DRM )

주요 구성 요소

Packager : 원본 콘텐츠를 암호화, DRM 보호가 적용된 형태로 변환, 라이센스 정책 부여

DRM Controller : 전체 DRM 시스템 보안 정책 & 권환 관리 총괄, 사용자 요청 검증, 콘텐츠 접근 허가

Contents Distributor : 암호화 된 콘텐츠를 사용자에게 전달, ex ) 스트리밍 서버

Clearing House : 결제, 과금, 정산 담당, 콘텐츠를 이용할 수 있는 권리를 구매&승인하는 중간 관리 시스템

User : 콘텐츠를 이용하는 최종 소비자, DRM 클라이언트를 통해 권한이 부여된 범위 내에서 이용 가능

 

 

9. 스택

리스트의 한쪽 끝에서만 자료의 삽입삭제가 이루어지는 선형 자료 구조

가장 나중에 삽입된 자료가 먼저 삭제되는 후입선출 ( LIFO )

가장 나중에 삽입된 자료 위치 ( Top ), 가장 먼저 삽입된 자료 위치 ( Bottom )

 

* 큐는 Head(front), Tail(rear) 이라고 표현함.

 

 

10. 필드 테스팅

= 개발자 없이 고객의 사용 환경에 소프트웨어 설치 & 검사 수행

= 정식으로 프로그램 공개 전 한정된 집단 or 일반인에게 공개하여 기능 검사

= 베타 테스트

 

베타테스트 전에 프로그램 개발 시 내부에서 미리 평가 + 버그 찾아 수정하기 위해 시험 검사

= 알파 테스트

 

 

11. 소프트웨어 형상관리( Configuration management ) 

= 구성관리

SW 변경사항을 체계적으로 관리하기 위하여 추적 + 통제

소프트웨어 운용을 포괄적인 학술 분야의 형태로 넓히는 근간

작업 산출물 = 형상 항목 

형상 항목 간의 변경사항을 추적과 통제정책을 수립 & 관리

형상관리를 위해 구성된 팀 = 형상통제위원회

 

형상관리 기능 중 하나로 버전 제어 기술

SW 개발 전체비용 줄이고, 개발 과정 방해요인 최소화 보증 목적

SW에서 일어나는 수정 & 변경을 알아내고 제어

 

 

12. Tree

트리

자료 사이의 관계성이 계층형식으로 나타나는 비선형 구조

그래프의 특수한 형태, 노드( Node )와 선분( Branch )으로 되어있음

정점 사이에 사이클이 형성되어 있지않다.

 

 

13. 이진 검색 알고리즘

탐색 효율이 좋고 탐색 기간이 적게 소요

검색할 데이터가 정렬되어 있어야 사용 가능

비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어듦

 

* 피보나치 검색 방식 = 피보나치 수열에 따라 다음에 비교할 대상을 선정

 

 

14. 위험 분석 ( Risk Analysis )

프로젝트에 내재된 위험 요소를 인식, 영향을 분석하여 관리

프로젝트를 성공시키기 위하여 위험요소를 사전에 예측하여 대비

해당 위험의 가능성과 영향을 평가

대표기법 : 위험 등급 평가, 위험 행렬, 위험 시나리오 작성 등..

 

 

15. 스터브(Stub)와 드라이버(Driver)

= 단위테스트에서 모듈 간 호출 관계를 대체하기 위해 사용하는 테스트 지원 도구

 

* 테스트 케이스 자동 생성 기법

입력 도메인 분석 : 입력값의 범위를 나누어 자동으로 테스트케이스 생성

랜덤 테스트 : 무작위 입력값을 발생시켜 테스트데이터 자동 생성

자료 흐름도 : 변수 정의와 사용관계를 분석해 테스트 케이스 도출

 

16. 해싱 함수 종류

제산 방법 : 나머지 연산 사용해서 테이블 주소 계산

중간 제곱 방법 : 레코드 키 값 제곱, 결괏값의 중간 비트 선택, 해시 테이블의 홈 주소로 사용

중첩 방법 ( 폴딩 ) : 해싱함수 중 레코드 키를 나눠서 나눈 부분의 숫자 더하기 or XOR 값 홈주소 사용

기수 변환 방법 : 레코드 키의 분포 조사, 비교적 고른 분포를 나타내는 자릿수 선택, 홈주소 사용

무작위 방법 : 난수 발생, 홈 주소 산출

계수 분석 방법 = 숫자 분석도 있음

 

* 개방 주소법 : 해싱함수 X,  충돌 해결 기법

 

 

17. 휴라스틱 탐색

문제를 해결하기 위해 경험적 규칙이나 추정치를 사용하여 탐색 공간을 효율적으로 줄이는 방법

최적화 or 인공지능에 많이 사용

종류

 Heuristic Function, A Algorithm, Consistent Heuristic, Greedy Search

Beam Search, Hill Climbing, Simulated Annealing, Best First​

 

 

18. INORDER = 중위 순회

왼 -> 중 -> 오

 

 

19. Selection Sort = 선택정렬

오름차순으로 정렬 시 1 pass마다 가장 작은 값이 맨 앞으로 이동

 

 

20. 큐 & 스택

큐 : 대표적인 선 형 구 조 / FIFO

스택 : LIFO, 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용

 

 

21. 표준 테스트 케이스 형식

ID, 시나리오, 테스트 단계, 테스트 데이터, 예상 결과, 실제 결과, 통과 실패

* 비용은 X