정처기 첫걸음: 먼저 알아야 할 말
쉽게 말하면
정보처리기사는 소프트웨어를 만드는 전 과정을 묻는 시험이에요. 무엇을 만들지 정하고(요구사항), 어떻게 만들지 그리고(설계), 코드로 짜고(구현), 제대로 되는지 확인해요(테스트). 그 과정에서 데이터를 담는 데이터베이스, 프로그램이 돌아가는 운영체제, 컴퓨터끼리 대화하는 네트워크, 그리고 보안까지 다뤄요. 이 페이지에서 앞으로 계속 나올 낱말을 먼저 익혀 둬요.
시험용 정의
소프트웨어 공학은 소프트웨어를 정해진 비용과 기간 안에 좋은 품질로 만들기 위한 원리와 방법이다. 개발은 보통 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수 순서로 진행되고, 이 흐름 전체를 소프트웨어 생명 주기라고 한다. 데이터는 데이터베이스에 모아 두고 DBMS(데이터베이스 관리 시스템)가 관리하며, SQL로 조회·변경한다. 프로그램은 운영체제 위에서 실행되고, 컴퓨터끼리는 프로토콜(통신 규칙)에 따라 네트워크로 데이터를 주고받는다.
비유로 이해하기
집 짓기와 같다. 집주인의 바람을 듣고(요구사항), 설계도를 그리고(설계), 벽돌을 쌓고(구현), 물이 새는지 점검하고(테스트), 살면서 고친다(유지보수). 데이터베이스는 창고, 운영체제는 집이 서 있는 땅, 네트워크는 집과 집을 잇는 도로다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 소프트웨어 | 컴퓨터가 할 일을 적은 프로그램과 그에 딸린 문서·데이터 |
| 시스템 | 여러 요소가 모여 하나의 목적을 이루는 것 (입력 → 처리 → 출력, 제어와 피드백) |
| 모듈 | 프로그램을 기능 단위로 나눈 조각. 따로 만들고 고칠 수 있다 |
| 요구사항 | 소프트웨어가 해야 할 일과 갖춰야 할 조건 |
| 설계 | 요구사항을 어떤 구조와 방법으로 만들지 정하는 일 |
| 구현 | 설계대로 코드를 작성하는 일 (코딩) |
| 테스트 | 만든 것이 요구사항대로 동작하는지, 결함이 없는지 확인하는 일 |
| 유지보수 | 배포한 뒤 오류를 고치고 기능을 바꾸는 일. 생명 주기에서 비용이 가장 많이 든다 |
| 데이터베이스 | 여러 사람이 함께 쓰려고 모아 둔 데이터의 집합 |
| DBMS | 데이터베이스를 만들고 관리하는 소프트웨어 (Oracle, MySQL 등) |
| SQL | 데이터베이스에 데이터를 묻고 바꾸는 언어 |
| 운영체제 | 하드웨어를 관리하고 프로그램이 돌아갈 환경을 주는 소프트웨어 (Windows, Linux) |
| 프로세스 | 실행 중인 프로그램 |
| 프로토콜 | 컴퓨터끼리 통신할 때 지키는 약속 (HTTP, TCP 등) |
| 알고리즘 | 문제를 푸는 절차 |
| 객체지향 | 데이터와 그 데이터를 다루는 기능을 묶은 '객체' 단위로 프로그램을 만드는 방식 |
필기 다섯 과목이 다루는 것
| 과목 | 한 줄 요약 | 자주 나오는 것 |
|---|---|---|
| 1. 소프트웨어 설계 | 무엇을, 어떤 구조로 만들지 | 생명 주기 모델, 애자일, UML, 결합도·응집도, 디자인 패턴 |
| 2. 소프트웨어 개발 | 만들고, 묶고, 시험하기 | 자료 구조, 정렬, 형상 관리, 테스트 기법 |
| 3. 데이터베이스 구축 | 데이터를 담고 다루기 | 정규화, 관계 대수, SQL, 트랜잭션 |
| 4. 프로그래밍 언어 활용 | 코드 읽기와 운영체제·네트워크 | C·Java·Python 출력, 스케줄링, 페이지 교체, IP 주소 |
| 5. 정보시스템 구축 관리 | 프로젝트와 보안 | 비용 산정, 신기술 용어, 시큐어 코딩, 암호, 공격 기법 |
공부 순서 팁
- 과목마다 40점(20문항 중 8개) 아래면 과락이라 한 과목도 버리면 안 된다
- 용어 문제가 많다. 낱말 뜻을 '한 줄로 설명'할 수 있으면 대부분 풀린다
- 4과목 코드 문제는 직접 손으로 값의 변화를 따라가 보는 연습이 가장 빠르다
소프트웨어 공학 기본 상식 (기출)
| 말 | 뜻 |
|---|---|
| 소프트웨어 공학 | 소프트웨어를 정해진 비용·기간 안에 좋은 품질로 만들기 위한 체계적인 방법을 다루는 학문 |
| 기본 원칙 | 현대적 프로그래밍 기술 계속 적용, 개발 산출물 계속 검증, 결과를 명확히 기록해 관리 |
| 시스템 구성 요소 | 입력(Input), 처리(Process), 출력(Output), 제어(Control), 피드백(Feedback) |
| 잘 만든 소프트웨어 | 유지보수가 쉽고 신뢰성이 높으며, 사용자 수준에 맞는 인터페이스를 제공한다 |
| 모델링 | 개발 대상을 그림·기호로 추상화해 표현하는 일. 분석·설계·유지보수 모든 단계에서 쓴다 |
시험에 이렇게 나와요
- 소프트웨어 공학의 기본 원칙 → 품질 높은 제품, 지속적 검증, 결과 기록 유지 (인력을 최대한 많이 넣는 것은 원칙이 아님)
- 소프트웨어 공학의 목표 → 최소 비용으로 정해진 기간 안에 품질 좋은 소프트웨어 만들기
- 시스템의 구성 요소 → 입력·처리·출력·제어·피드백 (유지보수는 구성 요소가 아님)
- 모델링 → 개발 전 과정에서 쓰고, 앞으로 만들 시스템을 미리 짐작하게 해 준다
확인 문제
Q1. '고객이 원하는 기능과 조건을 정리한 것'을 가리키는 말은?
- 테스트
- 프로토콜
- 요구사항
- 컴파일
정답 보기
3번 요구사항
요구사항은 소프트웨어가 무엇을 해야 하는지(기능)와 어떤 수준이어야 하는지(성능·보안 등)를 정리한 것이다. 개발은 요구사항에서 출발한다.
Q2. 소프트웨어 생명 주기에서 일반적으로 비용이 가장 많이 드는 단계는?
- 설계
- 요구사항 분석
- 유지보수
- 구현
정답 보기
3번 유지보수
배포 후 오래 쓰면서 고치고 바꾸는 유지보수에 전체 비용의 절반 이상이 든다고 알려져 있다.
Q3. 데이터베이스를 만들고 여러 사용자가 함께 쓰도록 관리하는 소프트웨어는?
- DBMS
- 웹 브라우저
- 컴파일러
- 운영체제
정답 보기
1번 DBMS
DataBase Management System. Oracle·MySQL·PostgreSQL 등.
Q4. 다음 중 개발 순서로 알맞은 것은?
- 설계 → 요구사항 분석 → 구현 → 테스트
- 요구사항 분석 → 설계 → 구현 → 테스트
- 구현 → 설계 → 테스트 → 요구사항 분석
- 요구사항 분석 → 구현 → 설계 → 테스트
정답 보기
2번 요구사항 분석 → 설계 → 구현 → 테스트
무엇을 만들지 정한 뒤 어떻게 만들지 설계하고, 코드로 옮긴 다음 시험한다.
Q5. 시스템의 기본 구성 요소가 아닌 것은?
- 유지보수
- 입력
- 처리
- 피드백
정답 보기
1번 유지보수
시스템은 입력·처리·출력·제어·피드백으로 이루어진다.
Q6. 소프트웨어 공학의 기본 원칙으로 보기 어려운 것은?
- 개발 과정을 계속 검증한다
- 품질 높은 제품을 만든다
- 결과를 기록으로 남긴다
- 인력을 최대한 많이 넣는다
정답 보기
4번 인력을 최대한 많이 넣는다
사람을 많이 넣는다고 품질이나 일정이 나아지지 않는다.
헷갈리기 쉬운 O·X
프로토콜은 컴퓨터끼리 통신할 때 지키는 약속이다.
정답 보기
O HTTP, TCP, IP 등.
소프트웨어는 프로그램만을 뜻하고 문서는 포함하지 않는다.
정답 보기
X 프로그램과 그 운용에 필요한 문서·데이터를 모두 포함한다.
정보처리기사 필기는 평균 60점만 넘으면 한 과목이 30점이어도 합격이다.
정답 보기
X 과목마다 40점 미만이면 과락으로 불합격이다.