제 1 장 시험 개요와 학습 전략
정보처리기사 필기는 5 과목 각각 20 문항, 총 100 문항을 150 분 안에 풀어야 한다. 과목당 40 점 이상(과락 기준)이면서 전체 평균 60 점 이상이면 합격이다. 매년 합격률이 대략 40~50 퍼센트 안팎으로 떨어지는데, 과락에 걸리는 경우가 생각보다 많은 편이다.
경험상 가장 효율적인 학습 순서는 5 과목(프로그래밍언어활용)부터 시작하는 것이다.
프로그래밍 과목은 코드 출력 문제가 서너 문제 나오는데, 이걸 정확히 풀 수 있으면 다른 과목 암기가 훨씬 수월해진다. 그다음 4 과목(데이터베이스), 2 과목(소프트웨어설계), 3 과목(소프트웨어개발) 순서로 넘어가고, 1 과목(정보시스템구축관리)은 암기 비중이 높아서 시험 직전에 몰아치는 게 현실적인 셈이다.
과목별 구성과 배점
과락에 가장 자주 걸리는 과목은 단연 프로그래밍언어활용이다. 코드 출력 문제를 한두 개만 틀려도 나머지 이론 문제에서 만회하기 쉽지 않다. 데이터베이스 과목도 SQL 문제가 어렵게 나오면 과락권에 들어갈 수 있으니 주의가 필요하다.
학습 기간은 비전공자 기준 약 6~8 주, 전공자라면 3~4 주 정도면 충분한 편이다. 하루에 두세시간씩 꾸준히 하는 것보다 주말에 몰아서 5 시간씩 하는 쪽이 기출 패턴을 잡는 데 더 효과적이라는 게 여러 합격 후기에서 반복되는 조언이다.
제 2 장 소프트웨어설계
소프트웨어설계 과목은 UML 다이어그램, 디자인패턴, 요구사항 분석, 아키텍처 패턴이 네가지 큰 축을 이룬다. 특히 UML 다이어그램 종류를 묻는 문제가 매회 두세 문항은 나오기 마련이다.
UML 다이어그램 14 종 비교
UML 2.0 에서 정의하는 다이어그램은 총 14 종이며, 구조 다이어그램 7 종과 행위 다이어그램 7 종으로 나뉜다. 시험에서는 각 다이어그램의 이름과 용도를 매칭시키는 문제가 단골로 나오는데, 아래 표를 통째로 외우는 것보다는 '구조는 정적, 행위는 동적'이라는 감각을 먼저 잡는게 낫다.
1. 순차리스트 (Sequential List / Array)
개념
순차리스트는 같은 종류의 데이터를 메모리 상에 연속적으로 저장하는 가장 기본적인 자료구조입니다. 각 원소는 0번부터 시작하는 인덱스(번호)로 식별되며, 시작 주소와 인덱스만 알면 어떤 위치든 곧바로 계산해서 접근할 수 있습니다.
예를 들어 시작 주소가 1000번지이고 각 원소가 4바이트라면, [3]번 원소의 주소는 1000 + 3 × 4 = 1012 로 계산됩니다. 이렇게 한 번의 곱셈과 덧셈으로 위치를 알 수 있기 때문에 O(1) 접근이 가능한 것입니다.
실생활 비유
아파트 우편함을 떠올려 보세요. 1호, 2호, 3호 우편함이 일렬로 붙어 있고, "501호 우편함"이라고 하면 바로 그 위치로 갈수 있습니다. 하지만 새로운 가구가 중간에 이사 와서 우편함을 끼워 넣으려면 뒤쪽 우편함들의 번호를 모두 다시 매겨야 합니다.
활용 예시
학생 명단, 행렬 연산, 픽셀 데이터, 정렬할 데이터 등 크기가 거의 변하지 않으면서 자주 인덱스로 접근하는 경우에 적합합니다. 파이썬의 list , 자바의 ArrayList 는 내부적으로 동적 배열로 구현되어 크기가 가변적입니다.
더 깊이 알아보기 — 동적 배열의 비밀
파이썬 list 나 자바 ArrayList 는 어떻게 크기가 자동으로 늘어날까요? 답은 2배 확장 전략입니다. 배열이 가득 차면 2배 크기의 새 배열을 만들고 모든 원소를 복사합니다. 이 작업은 O(n)이지만, 자주 일어나지 않습니다. 평균적으로 한번의 append는 O(1) 균등 상환(amortized)이 됩니다.
2. 연결리스트 (Linked List)
개념
연결리스트는 데이터를 저장한 노드(node)들이 포인터로 연결된 구조입니다. 각 노드는 두 가지를 가집니다:
데이터 영역: 실제 값을 저장
링크 영역(next): 다음 노드의 주소를 저장
마지막 노드의 next는 NULL (또는 None )을 가리켜 끝임을 표시합니다.
1. 1분 자기소개 스크립트
안녕하십니까. "시민의 안전을 최우선으로 생각하며, 원칙과 신뢰를 바탕으로 현장을 누비는 준비된 신입 경찰 지원자"입니다. 저는 대학 시절 행정학을 전공하며 법 집행의 공정성을 심도 있게 공부했으며, 2년간 유도 동아리 회장을 맡아 팀을 이끄는 리더십과 강인한 체력을 길러왔습니다.
저는 단순히 체력이 좋은 사람을 넘어, "냉철한 판단력과 따뜻한 공감 능력"을 동시에 갖추기 위해 노력했습니다. 과거 지역 사회 자원봉사 중 주취자 보호 조치를 도왔던 경험이 있는데, 당시 상황을 신속히 파악하고 보호자에게 인계하는 과정에서 경찰 업무의 막중한 책임감을 직접 체감할 수 있었습니다.
<중 략>
4. 본인이 생각하는 경찰의 청렴도란 무엇인가?
경찰에게 청렴이란 단순한 도덕적 의무를 넘어 '조직의 생존 전략'이라고 생각합니다. 시민의 신뢰가 무너진 경찰은 공권력을 제대로 행사할 수 없기 때문입니다. 제가 정의하는 청렴은 '보이지 않는 곳에서도 흐트러짐이 없는 마음가짐'입니다.
과거 아르바이트를 하던 중, 정산 과정에서 남은 소액의 금액을 관리자에게 정직하게 보고하고 처리한 적이 있습니다. 주변에서는 사소한 것이라며 넘기라고 했지만, 저는 "정직의 가치는 크기에 비례하지 않는다"는 신념을 지켰습니다. 이러한 작은 습관들이 모여 경찰관의 거대한 청렴을 형성한다고 믿습니다.
=RANK.EQ(number, ref, [order])
number (필수): 순위를 구할 셀 또는 수치
ref (필수): 순위 비교 대상이 되는 전체 데이터 범위 (절대 참조 $ 필수)
order (선택): 순위 방식. 0 또는 생략 시 내림차순(높은 값이 1위), 1은 오름차순(낮은 값이 1위)
RANK.EQ(A2, $A:A$10, 0): A20에서 A10 범위 중 A2의 순위를 높은 점수 기준(내림차순)으로 표시.
=HLOOKUP(찾을값, 범위, 행번호, [일치옵션])
찾을값 (lookup_value): 첫 번째 행에서 찾으려는 데이터입니다.
범위 (table_array): 검색 범위입니다. 찾을 값이 가장 위쪽에 있어야 합니다.
행번호 (row_index_num): 범위 내에서 값을 가져올 행의 순번입니다 (1부터 시작).
일치옵션 (range_lookup): 정확히 일치(FALSE 또는 0) 또는 유사 일치(TRUE 또는 1)를 지정합니다. 기본값은 TRUE입니다
참조표 숫자로 나오고 있어서
①*1 넣어서 숫자화
②VLAUE넣어서 숫자화한다.
CHOOSE 함수
요일 표시: =CHOOSE(WEEKDAY(A1), "일", "월", "화", "수", "목", "금", "토") (A1 셀의 요일을 한글로 반환).
학점/등급: =CHOOSE(A1, "최우수", "우수", "보통", "미흡") (A1이 1이면 최우수, 2이면 우수...).
수식 포함: =SUM(A2:CHOOSE(2, A3, A4, A5)) (2번째 인수로 들어온 범위를 가져와 합계 계산)
SEARCH 함수
=SEARCH(찾을_문자, 찾을문자열, [시작_위치])
MID(C22,SEARCH("-",C22)+1(-뒤로부터 시작되는 값이라는 의미,3)
찾을_문자 (필수): 찾고자 하는 텍스트입니다. (예: "a", "사과")
전체_텍스트 (필수): 문자를 검색할 전체 문장이나 셀 범위입니다. (예: A1, "apple")
PART 1. 3개년 출제 경향 분석
■ 제1과목: 소프트웨어 설계
3개년간 가장 안정적으로 출제되는 과목입니다. 특정 주제가 매 시험마다 반복 출제되므로, 아래 빈출 주제만 확실히 잡으면 과락 걱정이 없습니다.
<중 략>
.2과목 합격 전략
• 버블/선택/삽입 정렬을 직접 손으로 3번 이상 연습 (PASS별 결과 추적)
• 트리 순회 공식: 전위(루트→좌→우), 중위(좌→루트→우), 후위(좌→우→루트) 체화
• Postfix 연산은 스택으로 풀기: 피연산자 push, 연산자 만나면 pop 2개 → 계산 → push
• 상향식(Driver) vs 하향식(Stub) 혼동 주의 — '위에서 아래로 찌르는 건 Stub'으로 기억
■ 제3과목: 데이터베이스 구축
SQL 문법과 정규화, 트랜잭션 ACID 특성이 핵심입니다. 특히 정규화 단계별 제거 대상과 SQL 명령어 분류(DDL/DML/DCL)는 거의 매회 출제됩니다.
▶ 빈출 TOP 10
1. 출제 주제: 정규화 단계별 조건 (1NF~BCNF)
■ 제1과목: 소프트웨어 설계
3개년간 가장 안정적으로 출제되는 과목입니다. 특정 주제가 매 시험마다 반복 출제되므로, 아래 빈출 주제만 확실히 잡으면 과락 걱정이 없습니다.
▶ 빈출 TOP 10 (9회 시험 기준 출제 빈도)
순위
1
출제 주제
럼바우(Rumbaugh) 객체지향 분석 기법
출제 횟수
8/9회
출제율
89%
중요도
★★★★★
2
3
GoF 디자인 패턴 (생성/구조/행위 분류)
UML 다이어그램 (정적/동적 구분)
4
9/9회
8/9회
결합도/응집도 개념 및 순서
8/9회
100%
89%
★★★★★
★★★★★
89%
5
6
XP(익스트림 프로그래밍) 5가지 가치
HIPO 차트 종류 및 특징
7/9회
7/9회
78%
★★★★★
78%
★★★★☆
★★★★☆
7
8
소프트웨어 아키텍처 패턴 (파이프-필터 등) 6/9회
SOLID 원칙 (특히 OCP, ISP)
9
10
UI 설계 원칙 및 유형 (CLI/GUI/NUI)
DFD 구성 요소
6/9회
7/9회
6/9회
67%
67%
★★★★☆
★★★★☆
78%
67%
★★★★☆
★★★☆☆
▶ 출제 패턴 분석
• 럼바우 분석 기법 : '객체 모형 → 동적 모형 → 기능 모형' 순서를 묻는 문제가 거의 매회 출제됩니다.
• 디자인 패턴 : 생성/구조/행위 분류를 묻거나, 특정 패턴(Singleton, Adapter, Factory Method 등)의 설명을 고르는 문제가 출제됩니다.
• UML : '정적 vs 동적 다이어그램 구분'과 'State vs Sequence 다이어그램 뒤바꿔 설명하기'가 함정 포인트입니다.
• 결합도 : '약한 → 강한' 순서를 묻는 문제는 매년 변형되어 출제됩니다. Data → Stamp → Control → External → Common → Content를 반드시 암기하세요.
• 2025년 신규 경향: 요구사항 명세, 소프트웨어 모델링, 시퀀스 다이어그램 구성 항목 등 세부 개념 문제가 늘었습니다.
◾데이터베이스
- 통합 : 자료 중복 배제 데이터 모임
- 저장 : 컴퓨터 접근 가능 저장 매체에 저장된 자료
- 운영 : 업무 수행에 존재가치 확실하며, 반드시 필요한 자료
- 공용 : 여러 응용 시스템 공동 소유하고 유지하는 자료
-> 중복 시 동일성, 무결성(정확성), 보안 수준 유지 어렵
◾장점
- 중복성 최소화, 일관성·무결성·보안성 유지
- 데이터 공유, 논리·물리적 독립성 유지
- 어플 개발, 유지·보수 용이
◾단점
- 데이터베이스 전문가 부족, 전산화 비용 증가
- 유실 시 파일 회복 어렵
- 시스템 복잡, 처리 속도 느림
◾스키마(Schema)
- 메타 데이터의 집합
◾외부 스키마 = 서브 스키마
- 각 개인 입장에서 필요 하는 데이터베이스의 논리구조 정의
- 1개 데이터베이스 – 여러 개 외부 스키마 존재
◾내부 스키마
- 물리적 저장장치 입장에서 본 데이터 베이스의 물리적 구조
- 실제 저장 레코드 형식, 저장 데이터 표현법. 내부 레코드 물리적 순서 등
◾개념 스키마
- 데이터베이스 전체적 논리구조
- 필요로 하는 데이터 종합한 조직 전체의 데이터베이스, 1개만 존재
✱데이터 사전 = 시스템 카탈로그 = 시스템 데이터베이스
- 모든 데이터 개체들에 대한 정보 유지, 관리
✱메타 데이터
- 데이터 사전 시스템 저장된 데이터 관한 데이터
◾데이터 베이스 관리자(DBA)
- 시스템 관리, 운영 + 모든 것 책임지는 사람, 그룹
- 데이터 정의어(DDL) 사용 -> 데이터 베이스 기술
- 데이터 제어어(DML) 사용 -> 저장 데이터 제어
- 데이터 조작어(DML) : 호스트 프로그램 사용, 데이터베이스 접근
◾기능
- 구성요소 결정, 스키마·저장구조·접근법 정의
- 데이터베이스 보완, 권한 부여, 유효성 검사 방법 수립
- 무결성 유지 대책 수립
- 사용자 요구, 불평 성취 및 해결
- 데이터 사전 유지 및 관리
- 시스템 성능 분석 및 감시
◼리본메뉴
- 탭, 그룹, 명령으로 구성
- [Alt] or [F10]누르면 바로가기 키 표시
◾리본메뉴 감추거나 표시 법
- 리본 메뉴 마우스 오른쪽 클릭 -> [리본 메뉴 축소] 선택
- [Ctrl + F1] 클릭- 활성 탭 이름 더블클릭
◼상태표시줄
- 현재 작업 상태, 명령에 대한 기본적 정보 표시
- 상태표시줄 사용자 지정 : 평균, 데이터 입력 셀 갯수, 숫자 셀 수. 최대값, 최소값, 합계 선택하여 자동 계산
- 화면 10~400% 확대, 축소 가능
- 워크시트 보기 상태, 확대/축소, 매크로 기록 상태 등 표시
◼기타
- 빠른 실행 도구 : 자주 사용 도구 모아두는 것, 명령 추가 시 일련번호로된 바로가기 키 추가
- 검색 상자 : 내용, 작업 명령, 파일, 도움말 등 검색
- 이름 상자 : 현재 작업 중 셀 이름, 주소 표시 / 차트 항목, 그리기 개체 시 이름 표시
◼워크시트
◾시트탭- 이름 표시 부분 -> 이름 변경, 복사, 이동, 삽입, 삭제 가능
- 연속적인 시트 선택 : [Shift] 누른 채 마지막 시트 클릭- 비연속적인 시트 선택 : [Ctrl] 누른 채 원하는 시트 차례대로 클릭
- 여러 시트 선택 후 데이터 입력 시 선택한 모든 시트 동일한 데이터 입력
- 시트 이름 공백 포함 31글자까지 지정 가능 but *, /,:, ?, [] 등 문자 사용 x
- 하나의 통합 문서의 안에서 동일한 시트 이름 사용 x
- 삽입 시트 활성 시트 왼쪽에 삽입
- 이동 : 원하는 위치까지 드래그 / 복사 : 원하는 위치까지 [Ctrl] 누른 채 드래그
- 시트 삭제 시 되살릴 수 없으며, 여러 개 시트 한번에 삭제 가능