🛠️ 정보처리기사 — 소프트웨어 개발
정보처리기사 필기 2과목 '소프트웨어 개발' 빈출 개념 50문항 (한국어)
전체 문제·정답 (50)
- 스택(Stack)의 특징은?후입선출(LIFO)
- 큐(Queue)의 특징은?선입선출(FIFO)
- 스택의 주요 연산은?push(삽입), pop(삭제)
- 배열의 특징은?같은 자료형을 연속된 공간에 저장, 인덱스로 접근
- 연결 리스트의 특징은?노드가 포인터로 연결되어 삽입·삭제가 용이
- 트리에서 최상위 노드는?루트(root)
- 이진 트리란?각 노드의 자식이 최대 2개인 트리
- 그래프란?정점과 간선으로 연결 관계를 표현한 구조
- 정렬 알고리즘의 예는?버블, 선택, 삽입, 퀵, 병합 정렬
- 퀵 정렬의 평균 시간복잡도는?O(n log n)
- 버블 정렬의 시간복잡도는?O(n^2)
- 이진 탐색의 조건과 복잡도는?정렬된 데이터, O(log n)
- 알고리즘 효율을 나타내는 표기법은?빅오(Big-O) 표기법
- 해시(Hash)의 목적은?키를 함수로 변환해 빠르게 검색
- 해시 충돌이란?서로 다른 키가 같은 주소로 매핑되는 것
- 소프트웨어 테스트의 목적은?결함을 찾아 품질을 높이는 것
- 화이트박스 테스트란?내부 로직·코드 구조를 보고 검사
- 블랙박스 테스트란?내부를 모른 채 입력·출력으로 검사
- 블랙박스 기법의 예는?동등 분할, 경계값 분석
- 화이트박스 기법의 예는?구문·분기·조건 커버리지
- 단위 테스트란?모듈 하나를 개별적으로 검사
- 통합 테스트란?모듈을 결합하며 인터페이스를 검사
- 시스템 테스트란?완성된 시스템 전체를 요구사항 기준으로 검사
- 인수 테스트란?사용자가 실제 환경에서 수용 여부를 확인
- 상향식 통합에서 필요한 가짜 모듈은?드라이버(driver)
- 하향식 통합에서 필요한 가짜 모듈은?스텁(stub)
- 회귀 테스트란?수정 후 기존 기능이 그대로인지 재검사
- 알파 테스트와 베타 테스트의 차이는?알파는 개발자 통제 환경, 베타는 실사용자 환경
- 오류(error)·결함(fault)·고장(failure)의 관계는?사람의 오류 → 결함 → 실행 시 고장
- 형상관리란?소프트웨어 변경 이력을 체계적으로 관리하는 활동
- 대표적인 형상(버전)관리 도구는?Git, SVN
- Git에서 변경을 기록하는 단위는?커밋(commit)
- 여러 사람이 병렬 작업하도록 나눈 흐름은?브랜치(branch)
- 소프트웨어 품질 목표의 예는?정확성, 신뢰성, 효율성, 이식성, 유지보수성
- 기능은 그대로 두고 내부 구조를 개선하는 것은?리팩토링
- 코드의 나쁜 구조 징후를 뜻하는 말은?코드 스멜(bad smell)
- 애플리케이션 성능 측정 지표는?처리량, 응답시간, 경과시간, 자원사용률
- 디지털 저작권 관리 기술은?DRM
- 개발 산출물을 사용자에게 전달·설치하는 단계는?배포(deployment)
- 소프트웨어 패키징은 누구 중심으로 하나?사용자 중심(설치·사용 편의)
- 제품 소프트웨어 매뉴얼의 종류는?설치 매뉴얼, 사용자 매뉴얼
- 클린 코드의 작성 원칙은?가독성·단순성·중복 제거
- 알고리즘 설계 기법의 예는?분할정복, 동적계획법, 그리디, 백트래킹
- 분할정복 기법의 예는?병합 정렬, 퀵 정렬
- 동적계획법(DP)의 특징은?작은 문제의 해를 저장해 큰 문제에 재사용
- 그리디(탐욕법)의 특징은?매 순간 최선의 선택을 함
- 재귀 함수에 반드시 필요한 것은?종료 조건(기저 사례)
- 트리를 방문하는 순서 방식은?전위·중위·후위 순회
- 정적 분석이란?코드를 실행하지 않고 분석해 결함을 찾는 것
- 테스트 자동화의 이점은?반복 검증을 빠르고 일관되게 수행
CSV를 Mem8 앱에서 가져오면 FSRS 간격반복으로 학습할 수 있어요 (Anki 호환 앱에서도 사용 가능).