[EIP] 정보처리기사 필수 용어집


Engineer Information Processing

📘 정보처리기사 필수 용어집

시험 5과목 핵심 용어를 간결하게 정리한 학습 노트
굵은 글씨(bold)는 시험 빈출 키워드 · 코드 서식은 약어·명령어

💡 학습 전략: 프로그래밍·SQL·자료구조는 실무로 이미 익숙하므로 빠르게 훑고 넘어가고, 한국 정처기 특유의 분류·순서 암기형 문제(디자인패턴, UML, 정규화 단계, 응집도/결합도, 암호 알고리즘 등)에 시간을 집중 투자할 것.

1주 이론 학습 계획

일차범위비고
Day 11과목 소프트웨어 설계UML·디자인패턴 암기 위주
Day 22과목 소프트웨어 개발자료구조는 속독, 형상관리·패키징 집중
Day 3~43과목 데이터베이스 구축정규화·관계대수·트랜잭션 반복 암기
Day 54과목 프로그래밍 언어 활용강점 과목 → 코드 실행결과 유형만 집중 점검
Day 65과목 정보시스템 구축 관리암기량이 가장 많은 과목, 하루 전체 투자
Day 7전체 복습 + 취약 과목 재점검오답노트 작성 후 다음 주 문제풀이 대비

목차

  1. 제1과목 : 소프트웨어 설계
  2. 제2과목 : 소프트웨어 개발
  3. 제3과목 : 데이터베이스 구축
  4. 제4과목 : 프로그래밍 언어 활용
  5. 제5과목 : 정보시스템 구축 관리

제1과목 : 소프트웨어 설계

01 요구사항 확인

소프트웨어 생명 주기 모델

모델핵심 특징
폭포수 모델 (Waterfall)이전 단계로 돌아갈 수 없음. 단계별 철저한 검토 후 진행
프로토타입 모델 (Prototype)견본품(프로토타입)을 먼저 제작해 요구사항 파악
나선형 모델 (Spiral)계획 → 위험분석 → 개발 → 고객평가를 점진적·반복적으로 수행
애자일 모델 (Agile)일정 주기(스프린트)를 반복. 변화에 유연
XP 기법 (eXtreme Programming)고객 참여 + 반복 개발. 핵심 가치: 의사소통·단순성·용기·존중·피드백
스크럼 (Scrum)짧은 주기(스프린트) 반복 + 일일 스크럼 회의. 제품 백로그·스프린트 백로그 관리

💡 애자일 세부 방법론: XP(익스트림 프로그래밍), 스크럼(Scrum), 칸반(Kanban) — 이름과 특징 매칭 문제 자주 출제


현행 시스템 분석 (요구공학의 출발점)

DBMS·플랫폼·네트워크 등 현재 운영 중인 환경을 먼저 파악하는 단계. 시험에서는 아래 스키마 3단계 구조가 자주 출제됨.

스키마관점
외부 스키마사용자·응용 프로그래머 관점의 개별 논리적 구조(뷰)
개념 스키마조직 전체 관점에서 객체·구조·제약을 통합 정의 (스키마 = 1개만 존재)
내부 스키마물리적 저장 장치 관점의 전체 DB 명세
  • DBMS — 사용자와 DB 사이에서 정보를 생성·관리하는 소프트웨어

요구사항 개발 프로세스

요구사항 도출 → 요구사항 분석 → 요구사항 명세 → 요구사항 확인
단계설명
도출사용자와 의견 교환으로 요구사항 수집 (설문·인터뷰·브레인스토밍·유스케이스 등)
분석타당성 조사 및 불명확한 부분 제거. DFD·DD 도구 활용
명세분석 결과를 모델로 작성·문서화
확인명세서가 정확·완전하게 작성되었는지 검토

구조적 분석 도구

  • DFD (자료 흐름도) — 자료 흐름과 기능을 도형으로 표현
  • DD (자료 사전) — DFD의 자료를 상세히 기록. “데이터의 데이터” = 메타 데이터
  • HIPO — 입력·처리·출력 과정을 계층 구조로 표현 (가시적/총체적/세부적 도표)

UML 다이어그램 — 구조적(정적) vs 행위적(동적)

UML은 크게 구조 다이어그램(시스템의 정적 구조)과 행위 다이어그램(시간에 따른 동작)으로 나뉨. 시험에는 다이어그램 이름과 용도를 매칭시키는 문제가 매우 자주 출제된다.

구분다이어그램용도
구조 (정적)클래스 다이어그램클래스 간 속성·메소드·관계 표현
구조 (정적)컴포넌트 다이어그램컴포넌트 간 의존 관계 표현
구조 (정적)배치 다이어그램하드웨어·소프트웨어의 물리적 배치 표현
행위 (동적)유스케이스 다이어그램사용자 요구사항 분석, 기능 모델링
행위 (동적)시퀀스 다이어그램시간 흐름에 따른 객체 간 메시지 교환 표현
행위 (동적)상태 다이어그램객체 상태 변화 표현
행위 (동적)액티비티 다이어그램업무 처리 흐름을 순서도 형태로 표현

💡 구조 다이어그램 7종(클래스·객체·컴포넌트·배치·복합체구조·패키지·프로파일), 행위 다이어그램 7종(유스케이스·시퀀스·상태·액티비티·커뮤니케이션·상호작용개요·타이밍) — 표에 없는 나머지는 “구조 vs 행위” 구분만 가능하면 충분


02 화면 설계

UI 설계 도구 비교

도구특징
와이어프레임초기 레이아웃 틀 설계. 가장 단순
스토리보드와이어프레임 + 흐름 설명. 디자이너·개발자 최종 지침서
목업 (Mockup)실제 화면과 유사한 정적 모형
프로토타입인터랙션 적용, 실제처럼 테스트 가능한 동적 모형

💡 정적 vs 동적: 목업(정적) vs 프로토타입(동적)

소프트웨어 품질 요구사항 (ISO/IEC 25010)

항목핵심 한 줄 요약
기능성 (Functionality)요구 기능을 정확히 제공하는가
신뢰성 (Reliability)오류 없이 일관되게 수행하는가
사용성 (Usability)사용자가 쉽게 이해하고 다시 쓰고 싶은가
효율성 (Efficiency)한정 자원 내에서 얼마나 빠른가
유지 보수성 (Maintainability)변경·확장이 얼마나 용이한가
이식성 (Portability)다른 환경에서도 쉽게 적용되는가

03 애플리케이션 설계

객체지향(OO) 핵심 개념

용어한 줄 정의
객체 (Object)데이터 + 처리 함수를 묶은 소프트웨어 모듈
클래스 (Class)객체를 추상화한 단위(설계도)
인스턴스 (Instance)클래스로부터 생성된 각각의 객체
메시지 (Message)객체 간 상호작용 수단

객체지향 4대 특성

기법설명
캡슐화데이터와 함수를 하나로 묶고 외부 접근을 제한
상속성상위 클래스의 속성·메소드를 하위 클래스가 재사용
다형성같은 메시지에 객체마다 다르게 응답 (오버로딩: 매개변수 다른 동일 이름 메소드 / 오버라이딩: 상위 클래스 메소드 재정의)
추상화공통 속성·기능을 추출해 상위 개념으로 정의

럼바우(Rumbaugh) 객체지향 분석 3단계

객체 모델링 → 동적 모델링 → 기능 모델링
  • 객체 모델링 — 객체 다이어그램으로 속성·관계 표현 (= 정보 모델링)
  • 동적 모델링 — 상태 다이어그램으로 시간에 따른 행위 표현
  • 기능 모델링DFD로 프로세스 간 자료 흐름 표현

결합도 (낮을수록 품질 ↑)

자료 < 스탬프 < 제어 < 외부 < 공유 < 내용 결합도
(약함 ←—————————————→ 강함)
유형설명
자료 결합도 (Data)인터페이스가 자료 요소로만 구성 → 가장 약함(좋음)
스탬프 결합도 (Stamp)자료구조 전체(레코드 등)를 참조하며 넘김
제어 결합도 (Control)제어 신호(플래그 등)를 주고받아 흐름을 제어
공유 결합도 (Common)공통 데이터 영역을 여러 모듈이 공유
내용 결합도 (Content)다른 모듈 내부를 직접 참조·수정 → 가장 강함(나쁨)

응집도 (높을수록 품질 ↑)

기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적
(강함 ←—————————————→ 약함)
유형설명
기능적 응집도모든 기능 요소가 단일 문제와 연관 → 가장 강함(좋음)
순차적 응집도한 요소의 출력이 다음 요소의 입력이 됨
절차적 응집도구성 요소들이 순차적으로 기능 수행
시간적 응집도특정 시간에 처리되어야 하는 기능들을 모음 (초기화 모듈 등)
우연적 응집도서로 무관한 요소로만 구성 → 가장 약함(나쁨)

디자인 패턴 (GoF, 총 23가지)

생성(5) · 구조(7) · 행위(11) 3계열로 분류. 시험은 이름-용도 매칭 위주로 출제되므로 빈출 패턴만 우선 암기.

계열패턴핵심 용도
생성싱글톤 (Singleton)인스턴스를 오직 하나만 생성해 어디서든 동일 객체 참조
생성팩토리 메소드 (Factory Method)객체 생성을 서브클래스에 위임
생성빌더 (Builder)복잡한 객체를 단계적으로 생성
구조어댑터 (Adapter)호환되지 않는 인터페이스를 연결
구조데코레이터 (Decorator)객체에 동적으로 기능을 추가
구조퍼사드 (Facade)복잡한 서브시스템에 단순한 인터페이스 제공
행위옵서버 (Observer)상태 변화를 다른 객체에 자동 통지 (1:N 의존)
행위전략 (Strategy)알고리즘을 캡슐화해 런타임에 교체 가능
행위상태 (State)객체 상태에 따라 행위를 다르게 처리

💡 암기 포인트: “생성 5 / 구조 7 / 행위 11”, 그리고 표의 9개 패턴은 매년 반복 출제되는 핵심 패턴


04 인터페이스 설계

미들웨어(Middleware) 종류

종류설명
DB클라이언트 ↔ 원격 데이터베이스 연결
RPC원격 프로시저를 로컬처럼 호출
MOM비동기 방식 메시지 기반 통신
TP-Monitor항공·철도 예약 등 온라인 트랜잭션 처리·감시
WAS웹 서버 + 애플리케이션 실행 환경 제공

제2과목 : 소프트웨어 개발

01 데이터 입출력 구현 (자료구조)

프로그래밍 실무에서 익숙한 영역이므로 표로 빠르게 훑고 넘어갈 것.

구조특징
스택 (Stack)한쪽에서만 삽입·삭제. 후입선출(LIFO)
(Queue)한쪽 삽입, 반대쪽 삭제. 선입선출(FIFO)
데크 (Deque)양쪽에서 삽입·삭제 모두 가능
그래프vertex(정점) + edge(간선)으로 구성, 순환 가능
트리회로 없이 두 노드를 잇는 길이가 하나뿐인 그래프(비순환)

정렬 알고리즘 요약 (평균 시간복잡도 포함)

정렬방식평균 시간복잡도
삽입 정렬정렬된 데이터 사이 적절한 위치에 삽입O(n²)
선택 정렬가장 작은 값을 찾아 앞과 교환O(n²)
버블 정렬인접한 두 값 비교 후 큰 값을 뒤로 이동O(n²)
퀵 정렬기준키(pivot) 기준으로 분할 정복O(n log n)
힙 정렬완전 이진 트리(힙) 구조로 정렬O(n log n)
합병 정렬분할 후 정렬된 데이터를 병합O(n log n)
기수 정렬자릿수별로 반복 정렬O(dn)

💡 정처기는 정렬 이름과 “무엇을 기준으로 동작하는가”를 묻는 문제가 많다. 시간복잡도까지 O(n²) 계열/O(n log n) 계열로 구분해서 암기.


02 통합 구현

형상관리 (Configuration Management)

소스코드 버전·변경 이력을 체계적으로 관리하는 활동. 식별 → 통제 → 감사 → 기록 4단계로 구성.

도구특징
Git분산형 형상관리, 로컬 저장소에서도 버전 관리 가능
SVN (Subversion)중앙집중형, 하나의 중앙 서버에 저장소 존재
CVS초기 중앙집중형 도구, SVN의 전신

03 제품소프트웨어 패키징

개념설명
애플리케이션 패키징개발 완료된 SW를 배포 가능한 형태로 묶는 작업. 사용자 편의성 중심
DRM (디지털 저작권 관리)콘텐츠 제공자, 클리어링하우스, 패키저, DRM 컨트롤러, 보안 컨테이너로 구성되어 저작권 보호·인증·유통 통제

빌드 자동화 도구

도구특징
AntXML 기반 스크립트, 절차 직접 명시 필요
Mavenpom.xml로 의존성(라이브러리) 자동 관리
GradleGroovy/Kotlin DSL 기반, Maven보다 빌드 속도 빠름

04 애플리케이션 테스트 관리

테스트 분류

구분설명
정적 테스트코드를 실행하지 않고 명세·코드를 검토해 결함 발견
동적 테스트실제 프로그램을 실행해 오류 탐지
화이트 박스 테스트내부 소스 코드 로직(제어 흐름)을 직접 테스트. 기본 경로 검사, 조건/분기 커버리지
블랙 박스 테스트내부를 보지 않고 입·출력값으로 유효성 판단

블랙 박스 테스트 기법

  • 경계값 분석 — 경계 값과 그 인접 양쪽 값을 이용해 테스트
  • 동치(등가) 분할 — 입·출력 값을 그룹으로 분류, 그룹 내 값은 동일하게 취급

테스트 레벨

단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
레벨설명
단위 테스트각 모듈이 명세대로 구현되었는지 확인
통합 테스트모듈 통합 시 발생하는 오류 탐지
시스템 테스트전체 시스템 정상 작동 확인
인수 테스트요구 사항에 맞는지 최종 확인
  • 하향식 통합: 상위 → 하위 모듈 순으로 통합, 이때 하위 모듈 자리를 대신하는 스텁(Stub) 사용
  • 상향식 통합: 하위 → 상위 모듈 순으로 통합, 이때 상위 모듈 자리를 대신하는 드라이버(Driver) 사용

소스 코드 품질분석 도구

구분설명
정적 분석 도구코드를 실행하지 않고 코딩 스타일·잠재 결함 분석 (예: pmd, checkstyle, SonarQube)
동적 분석 도구실행 중 메모리 누수·오류 등을 분석 (예: Valgrind)

05 인터페이스 구현 (EAI 구축 유형)

유형설명
Point to Point애플리케이션 1:1 연결 (가장 기본)
Hub & Spoke단일 허브를 통한 중앙 집중형 전송
Message Bus애플리케이션 사이에 미들웨어를 두어 처리
HybridHub & Spoke + Message Bus 혼합
  • ESB (Enterprise Service Bus) — 연계·데이터 변환·웹 서비스 표준 기반 솔루션

제3과목 : 데이터베이스 구축

01 SQL 응용/활용

SQL 언어 분류

분류명령어설명
DDL (데이터 정의어)CREATE ALTER DROPDB 구성 요소 정의·변경·삭제
DML (데이터 조작어)INSERT UPDATE DELETE SELECT데이터 삽입·수정·삭제·조회
DCL (데이터 제어어)GRANT REVOKE COMMIT ROLLBACK권한 부여·취소, 트랜잭션 제어

💡 COMMIT = 트랜잭션 종료·확정 / ROLLBACK = 변경 취소·되돌리기

JOIN 종류

종류설명
INNER JOIN양쪽 테이블에 모두 존재하는 행만 반환
LEFT/RIGHT OUTER JOIN한쪽 테이블 기준으로 일치하지 않는 행도 NULL 채워 반환
FULL OUTER JOIN양쪽 테이블의 모든 행 반환
SELF JOIN같은 테이블을 자기 자신과 조인

집합 연산자

연산자설명
UNION두 결과의 합집합, 중복 제거
UNION ALL합집합, 중복 포함
INTERSECT교집합
MINUS (EXCEPT)차집합

02 논리 데이터베이스 설계

관계형 DB 주요 용어

용어정의
튜플 (Tuple)릴레이션의 각 행(Row)
속성 (Attribute)DB를 구성하는 가장 작은 논리적 단위(열)
도메인 (Domain)속성이 취할 수 있는 원자 값들의 집합

키(Key) 종류

설명
후보키유일성 + 최소성 만족
기본키 (Primary Key)각 튜플을 고유하게 식별하는 속성 (Null·중복 불가)
슈퍼키유일성 만족, 최소성은 불필요
외래키 (Foreign Key)다른 릴레이션의 기본키를 참조하는 속성
  • 유일성: 하나의 키로 하나의 튜플만 식별 / 최소성: 꼭 필요한 속성으로만 구성

관계대수 (Relational Algebra)

구분연산자설명
순수 관계 연산자Select (σ)조건을 만족하는 행(튜플) 선택
순수 관계 연산자Project (π)지정한 열(속성)만 선택, 중복 제거
순수 관계 연산자Join (⋈)공통 속성을 기준으로 두 릴레이션 결합
순수 관계 연산자Division (÷)두 릴레이션에서 나눗셈처럼 특정 조건 만족 행 추출
일반 집합 연산자∪ ∩ − ×합집합·교집합·차집합·교차곱

이상(Anomaly) 현상과 정규화

이상설명
삽입 이상삽입 시 원치 않는 값이 함께 삽입
삭제 이상삭제 시 필요한 데이터까지 함께 손실
갱신 이상일부만 수정해 데이터 불일치 발생

정규화 — 이상 현상 제거를 위해 함수 종속 관계를 분석하여 릴레이션을 분해하는 과정. 단계별로 “무엇을 제거하는가”가 시험 핵심 포인트.

단계제거 대상
1NF모든 속성값이 원자값(더 이상 분해 불가)이 되도록 분해
2NF부분 함수 종속 제거 (기본키 일부에만 종속되는 속성 분리)
3NF이행 함수 종속 제거 (A→B→C 관계에서 B→C를 분리)
BCNF결정자가 후보키가 아닌 함수 종속 제거
  • 반정규화 — 조회 성능 향상을 위해 의도적으로 정규화 원칙을 위배 (테이블 통합·중복·분리)

03 트랜잭션과 회복·병행제어

ACID 속성

속성설명
원자성 (Atomicity)전부 실행되거나 전혀 실행되지 않아야 함 (All or Nothing)
일관성 (Consistency)완료 후에도 DB가 일관된 상태 유지
독립성 (Isolation)다른 트랜잭션의 연산이 끼어들지 못함
지속성 (Durability)완료된 결과는 영구적으로 반영

트랜잭션 상태

활동(Active) → 부분완료(Partially Committed) → 완료(Committed)
              ↘ 실패(Failed) → 철회(Aborted)

회복 기법 / 병행제어 기법

기법설명
로그 기반 회복로그(변경 이력)를 이용해 장애 발생 시 DB를 이전 상태로 복구
체크포인트 기법특정 시점(체크포인트) 이후 로그만으로 빠르게 복구
로킹(Locking)트랜잭션이 사용 중인 데이터에 잠금을 걸어 병행 접근 제어
타임스탬프 순서법트랜잭션 시작 시각(타임스탬프) 순서로 실행 순서 결정

04 물리 데이터베이스 설계

인덱스 (Index)

종류특징
B-tree 인덱스범위 검색(BETWEEN, <, >)에 강함, 가장 일반적
해시 인덱스등가 검색(=)에 강함, 범위 검색 불가

파티셔닝 / 클러스터링

  • 파티셔닝 — 대용량 테이블을 범위·해시·목록 기준으로 물리적으로 분할 저장 (조회 성능 향상)
  • 클러스터링 — 자주 함께 조회되는 데이터를 물리적으로 인접하게 저장

05 데이터 전환

  • ETL (Extraction, Transformation, Loading) — 데이터를 추출·변환·적재하는 데이터 이관 프로세스
  • 데이터 정제 — 오류·중복·결측 데이터를 표준화·보정하는 작업

제4과목 : 프로그래밍 언어 활용

💡 실무 프로그래밍 경험이 강점인 과목. 문법 자체보다 정처기 특유의 “코드 실행 결과 예측” 문제 유형(연산자 우선순위, 형변환, 배열·포인터 인덱싱)에 익숙해지는 것이 관건.

01 기본 문법 활용

변수(기억 클래스) 종류 — C 언어

유형특징
자동 변수블록 내에서만 유효, 블록 종료 시 소멸
정적 변수프로그램 종료까지 기억 공간 유지
외부 변수다른 파일에서 선언된 변수·함수 참조
레지스터 변수CPU 레지스터에 저장, 처리 속도 향상

연산자 우선순위 (헷갈리기 쉬운 순서)

() [] → 단항(!, ++, --) → 산술(*, /, %, +, -) → 관계(<, >) → 논리(&&, ||) → 대입(=) → 콤마(,)

💡 기출은 a = b++ + ++c; 같은 전위/후위 증감 연산자 혼합 코드의 실행 결과를 자주 물어본다.

프로그래밍 언어 분류

분류대표 언어
절차적C, ALGOL, COBOL, FORTRAN
객체지향JAVA, C++, Smalltalk
스크립트JavaScript, Python, Shell Script
선언형SQL, Prolog, HTML

02 응용 SW 기초 기술 (운영체제)

기억장치 관리 전략

전략설명
반입 전략보조기억장치의 데이터를 언제 주기억장치로 적재할지 결정
배치 전략새 프로그램을 주기억장치 어디에 배치할지 결정
교체 전략주기억장치가 꽉 찼을 때 어느 영역을 교체할지 결정

가상 기억장치 관련 개념

용어설명
페이징가상기억장치를 같은 크기 블록으로 분할해 관리
세그먼테이션프로그램을 다양한 크기의 논리 단위로 분할해 적재
구역성 (Locality)프로세스 실행 중 일부 페이지만 집중 참조하는 성질
스래싱페이징이 너무 빈번해 시스템이 거의 유효한 작업을 못 하는 상태

페이지 교체 알고리즘

알고리즘설명
OPT앞으로 가장 오래 사용되지 않을 페이지 교체 (최적, 이론적)
FIFO가장 먼저 들어온 페이지를 먼저 교체
LRU가장 오랫동안 참조되지 않은 페이지를 교체 (실무에서 가장 흔히 쓰임)
LFU참조 횟수가 가장 적은 페이지를 교체

CPU 스케줄링

분류설명
비선점 스케줄링CPU를 할당받으면 완료까지 빼앗기지 않음
선점 스케줄링우선순위가 높은 프로세스가 CPU를 빼앗을 수 있음
SJF실행 시간이 가장 짧은 프로세스 먼저 처리 (비선점)
RR (Round Robin)정해진 시간 할당량(Time Slice)만큼씩 순환 실행 (선점)
HRN응답률 = (대기시간 + 서비스시간) / 서비스시간, 값이 클수록 우선순위↑ → 오래 기다린 프로세스의 기아 상태 방지

03 네트워크 기초 활용

OSI 7계층

계층이름주요 기능
7응용 계층사용자 직접 서비스 제공
6표현 계층인코딩·디코딩, 암호화, 데이터 압축
5세션 계층논리적 연결 확립·관리
4전송 계층투명한 데이터 전송, 신뢰성 보장
3네트워크 계층경로 선택, 흐름·오류 제어
2데이터 링크 계층오류 검출·수정
1물리 계층비트 스트림 전송, 전기·기계적 규정

💡 암기 팁: “물데네전세표응”

TCP vs UDP

구분TCPUDP
연결 방식연결형 (3-way handshake)비연결형
신뢰성보장 (재전송, 순서제어)보장 안 함
속도상대적으로 느림빠름
활용 예HTTP, FTP, 이메일DNS, 스트리밍, 실시간 게임

IP 주소 체계

클래스범위용도
A0 ~ 127대규모 네트워크
B128 ~ 191중규모 네트워크
C192 ~ 223소규모 네트워크
D224 ~ 239멀티캐스트 전용
  • IPv6: 16비트 × 8부분 = 총 128비트. 유니캐스트(1:1)·멀티캐스트(1:다)·애니캐스트(가장 가까운 노드로)

주요 네트워크 장비

장비기능
라우터 (Router)LAN↔LAN 또는 LAN↔WAN 연결, 최적 경로 결정
게이트웨이 (Gateway)서로 다른 네트워크 프로토콜 간 변환·연결
브리지 (Bridge)두 LAN을 서로 연결, 데이터링크 계층에서 동작

제5과목 : 정보시스템 구축 관리

💡 실무 경험만으로 커버하기 어려운, 암기량이 가장 많은 과목. 특히 보안(시큐어코딩·암호 알고리즘)과 비용산정 공식은 반드시 표를 통째로 암기할 것.

01 소프트웨어 개발 방법론 활용

비용 산정 기법

기법설명
하향식전문가 경험·회의 기반 (전문가 감정, 델파이 기법)
상향식세부 작업 단위별로 산정 후 합산 (LOC, Effort Per Task)
수학적경험적 공식 사용 (COCOMO, Putnam)
  • LOC — 예측치 = (비관치 + 4×기대치 + 낙관치) / 6
  • COCOMO — 추정 LOC 기반 개발 노력·기간 계산. 프로젝트 규모에 따라 3유형: Organic(소규모·단순), Semi-detached(중규모), Embedded(대규모·복잡, 하드웨어 제약 큼)

프로젝트 일정 관리

기법특징
CPM (임계 경로법)시간 + 비용 모두 고려. 임계 경로(최장 경로) 도출
PERT시간만 고려. 작업 간 상호관계를 네트워크로 표현, 3점 추정 사용

02 IT 신기술 용어

용어설명
IoT (사물인터넷)사물에 센서 부착, 실시간으로 인터넷 데이터 교환
M2M사물 간 센싱·제어·정보교환 기술
클라우드 컴퓨팅인터넷 서버를 통해 IT 서비스를 한 번에 이용
빅데이터방대한 규모, 짧은 생성 주기의 대규모 데이터 (3V: Volume, Velocity, Variety)
하둡 (Hadoop)대용량 데이터 분산 처리 공개 소스 프레임워크
블록체인분산형 데이터 저장으로 위·변조 방지 기술
디지털 트윈현실 사물을 가상세계에 구현해 모의시험
RAID소용량 디스크 여러 대를 배열로 묶어 대용량·가용성 확보
OLAP대용량 데이터를 다양한 관점에서 분석하는 BI 기술
데이터 마이닝대량 데이터에서 유용한 상관관계를 발견해 의사결정 지원

03 소프트웨어 개발 보안 구축

Secure SDLC

요구사항 분석 단계부터 보안을 내재화하는 개발 생명주기. “보안을 나중에 붙이지 않고 처음부터 설계에 포함”이 핵심 포인트.

요구사항 분석(보안요구사항 정의) → 설계(위협 모델링) → 구현(시큐어 코딩) → 테스트(보안 취약점 점검) → 운영(패치·모니터링)

시큐어 코딩 4대 항목 (행정안전부 가이드 기준)

항목대표 취약점설명
입력 데이터 검증 및 표현SQL Injection, XSS, 버퍼 오버플로우외부 입력값을 검증 없이 처리해 발생하는 공격
보안 기능부적절한 인증/접근제어인증·권한 관리 로직 결함
에러 처리민감정보 노출에러 메시지에 시스템 내부 정보 노출
세션 통제세션 하이재킹, CSRF세션 관리 미흡으로 인한 도용

암호 알고리즘

구분알고리즘특징
대칭키 (비밀키)DES, AES암·복호화에 같은 키 사용, 속도 빠름, 키 분배 어려움
비대칭키 (공개키)RSA공개키/개인키 쌍 사용, 속도 느림, 키 분배 문제 해결
해시SHA-256, MD5단방향 암호화, 복호화 불가, 데이터 무결성 검증에 사용

접근 통제 모델

모델설명
DAC (임의적 접근통제)데이터 소유자가 접근 권한을 직접 결정
MAC (강제적 접근통제)시스템이 보안 등급에 따라 강제로 접근 통제
RBAC (역할기반 접근통제)사용자의 역할(Role)에 따라 권한 부여

04 시스템 보안 구축

주요 해킹 공격 유형

공격설명
DoS (서비스 거부)대량 접속 신호로 서버 마비
DDoS (분산 서비스 거부)다수의 좀비 PC로 DoS 공격
스니핑 (Sniffing)네트워크 트래픽을 도청해 정보 탈취
키 로거 공격키보드 입력을 탐지해 ID·패스워드 탈취
백 도어몰래 설치된 비인가 접근 통신 연결 기능
랜섬웨어중요 파일 접근 차단 후 금품 요구 악성 프로그램
트로이 목마정상 프로그램으로 위장한 자료 삭제·정보 탈취 악성 코드

보안 솔루션

솔루션설명
방화벽 (Firewall)외부에서 내부 네트워크로의 불법 접근 차단
IDS (침입 탐지 시스템)비정상 트래픽을 탐지만 함 (사후 대응)
IPS (침입 방지 시스템)비정상 트래픽을 탐지 후 실시간 차단까지 수행
VPN인터넷망을 전용선처럼 암호화해 사용
NAC보안 정책에 부합하는 단말기에만 네트워크 접근 허용

📝 최종 암기 체크리스트

  • 결합도는 낮을수록, 응집도는 높을수록 좋다
  • 트랜잭션 특성 ACID, 정규화 단계 1NF→2NF→3NF→BCNF와 각 단계 제거 대상
  • 디자인 패턴 생성 5 / 구조 7 / 행위 11, 그중 싱글톤·팩토리메소드·옵서버·전략·어댑터는 반드시 암기
  • OSI 7계층 순서(물데네전세표응)와 각 계층의 역할 구분
  • SQL DDL·DML·DCL 명령어 분류, JOIN·집합연산자 종류
  • 시큐어 코딩 4대 항목과 암호 알고리즘(대칭키/비대칭키/해시) 구분
  • CPU 스케줄링 HRN 공식, 페이지 교체 LRU/LFU/OPT/FIFO 차이

📊 이력서 기반 과목별 학습 우선순위

🔥 집중 공부 필요 (생소한 영역)

5과목 정보시스템 구축 관리 — 최우선

  • 비용산정(COCOMO/PERT/CPM), 시큐어코딩, 암호 알고리즘, Secure SDLC, 접근통제모델 등은 트레이딩 알고리즘·ML 프로젝트 경력에서 전혀 다뤄본 적 없는 순수 암기 영역
  • 실무 감으로 유추할 수 있는 부분이 거의 없어서, 이론 학습 시간을 가장 많이 배정해야 함

3과목 데이터베이스 구축 — 집중

  • MySQL로 데이터 저장·조회는 해봤지만(Naver News 프로젝트), 그건 “SQL 문법 사용자” 수준. 정규화 단계, 관계대수(σ/π/⋈/÷), 트랜잭션 상태·회복/병행제어, 인덱스 설계 같은 “DB 설계자” 이론은 학교(EEIE)에서도 실무에서도 다룬 흔적이 없음
  • SQL 문법(DDL/DML/DCL, JOIN)은 빠르게, 설계 이론은 꼼꼼히

⚖️ 중간 — 개념은 쉽지만 암기 분류표가 많음

1과목 소프트웨어설계

  • 객체지향 개념(캡슐화/상속/다형성) 자체는 Python/Java/C++ 실무 경험으로 직관적으로 이해 가능
  • 다만 UML 다이어그램 종류, 디자인패턴 23종, 결합도/응집도 순서, 미들웨어 종류는 코드로 체득한 게 아니라 “시험용 분류표”라서 암기가 별도로 필요

✅ 빠르게 넘어가도 되는 영역

4과목 프로그래밍 언어 활용 — 최강점

  • Python, Java, C/C++, R을 실제로 써왔고 Linux/Docker 환경 경험도 있어 기본문법·제어문·OS·쉘스크립트는 대부분 아는 내용
  • 예외: 네트워크 파트(OSI 7계층, TCP/UDP, IP 클래스)는 직접 다뤄본 적 없어 보이니 여기만 짧게 암기

2과목 소프트웨어개발

  • 자료구조/정렬은 Operations Research 배경 덕에 무난, 코드 리뷰·디버깅·테스트도 실무 감각으로 커버 가능
  • 형상관리(Git 정도는 알겠지만 SVN 비교), 빌드도구(Ant/Maven/Gradle), DRM은 처음 보는 용어일 수 있으니 그 부분만 콕 집어 암기

💡 학습 시간 배분 우선순위: 5과목 > 3과목 > 1과목 > 2과목 ≈ 4과목







© 2017. by isme2n

Powered by aiden