정보처리기사 필기 소프트웨어 공학 및 DB 모델링 핵심 요약

정보처리기사 필기 5과목 중에서 비전공자가 가장 어려워하는 게 소프트웨어 공학과 데이터베이스입니다. 용어 자체가 영어투성이고, 약어도 많고, 개념 간 관계도 복잡합니다.

그런데 기출을 분석해 보면 반복되는 주제가 뚜렷합니다. 소프트웨어 개발 방법론, 다이어그램 종류, 정규화 단계 — 이 세 가지가 매회 빠짐없이 나옵니다.

소프트웨어 개발 방법론

폭포수 모형(Waterfall) — 요구분석 → 설계 → 구현 → 테스트 → 유지보수. 순차적 진행, 이전 단계 완료 후 다음 단계. 장점은 관리가 쉽다는 것, 단점은 요구사항 변경에 취약하다는 것.

나선형 모형(Spiral) — 계획 → 위험분석 → 개발 → 평가를 반복. 핵심 키워드는 “위험분석”. 대규모 프로젝트에 적합합니다.

애자일(Agile) — 짧은 반복(스프린트) 주기, 고객 피드백 반영, 변화에 유연. XP(익스트림 프로그래밍), 스크럼이 대표적 방법론. XP의 핵심 가치: 의사소통, 단순성, 피드백, 용기, 존중.

프로토타입 모형 — 시제품을 먼저 만들어 고객에게 보여주고 피드백 반영. 요구사항이 불명확할 때 적합.

UML 다이어그램

UML 다이어그램은 구조 다이어그램과 행위 다이어그램으로 나뉩니다.

구조 다이어그램: 클래스 다이어그램(클래스 간 관계), 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램(하드웨어 구성). 시험에서는 클래스 다이어그램이 가장 자주 나옵니다. 연관, 집합, 합성, 일반화, 의존 관계를 구분하세요.

행위 다이어그램: 유스케이스 다이어그램(사용자-시스템 상호작용), 시퀀스 다이어그램(객체 간 메시지 순서), 활동 다이어그램(업무 흐름), 상태 다이어그램(객체 상태 변화).

데이터베이스 정규화

정규화는 시험 단골입니다. 각 정규형의 조건을 확실히 외우세요.

제1정규형(1NF) — 모든 속성의 도메인이 원자값(더 이상 쪼갤 수 없는 값). “반복 그룹 제거”가 키워드.

제2정규형(2NF) — 1NF + 부분 함수 종속 제거. 기본키의 일부에만 종속된 속성을 분리. 복합키가 아닌 단일키 테이블은 자동으로 2NF.

제3정규형(3NF) — 2NF + 이행 함수 종속 제거. A→B, B→C일 때 A→C인 이행 종속을 제거.

BCNF — 모든 결정자가 후보키. 3NF보다 강한 조건. “결정자이면서 후보키가 아닌 것”이 있으면 BCNF 위반.

SQL 기본

DDL(정의어): CREATE, ALTER, DROP, TRUNCATE. DML(조작어): SELECT, INSERT, UPDATE, DELETE. DCL(제어어): GRANT, REVOKE, COMMIT, ROLLBACK. 이 분류를 섞어서 출제하는 문제가 매회 나옵니다.

JOIN 유형도 자주 나옵니다. INNER JOIN(교집합), LEFT/RIGHT OUTER JOIN(한쪽 기준 전체 포함), FULL OUTER JOIN(양쪽 전체), CROSS JOIN(모든 조합). 벤 다이어그램으로 한 번 그려보면 이해가 빠릅니다.

정보처리기사 필기는 범위가 넓지만, 기출 반복률이 높은 시험입니다. 위 내용만 확실히 잡아도 소프트웨어 공학과 DB 과목에서 과락은 면합니다. 나머지는 기출 회독으로 채우세요.

소프트웨어 개발 방법론 비교: 폭포수 vs 애자일

정보처리기사 필기에서 빠지지 않는 단골 주제가 바로 소프트웨어 개발 방법론입니다. 폭포수 모델은 요구분석→설계→구현→테스트→유지보수 순서를 엄격하게 따르는 전통적인 방식이고, 애자일은 짧은 반복(스프린트) 주기로 고객 피드백을 빠르게 반영하는 유연한 접근법입니다. 시험에서는 두 방법론의 차이점과 장단점을 묻는 문제가 자주 출제되는데, 폭포수는 “문서 중심, 변경 어려움”, 애자일은 “고객 협력, 변화 수용”이라는 키워드로 구분하면 됩니다.

특히 XP(eXtreme Programming)의 12가지 실천사항 중 페어 프로그래밍, 테스트 주도 개발(TDD), 리팩토링은 거의 매회 출제됩니다. 스크럼에서는 스프린트 백로그, 데일리 스크럼, 스프린트 리뷰 같은 용어의 정의를 정확히 알아두세요. 나선형 모델의 경우 위험 분석 단계가 자주 나오는 부분이고, 프로토타입 모델은 사용자 요구사항이 불명확할 때 쓴다는 점이 시험에서 자주 묻는 부분입니다.

데이터베이스 정규화 단계별 자주 나오는 부분

DB 모델링에서 정규화는 절대 놓치면 안 되는 영역입니다. 1정규형(1NF)은 모든 속성값이 원자값을 가져야 한다는 것, 2정규형(2NF)은 부분 함수 종속 제거, 3정규형(3NF)은 이행적 함수 종속 제거입니다. BCNF는 모든 결정자가 후보키여야 한다는 조건이 추가됩니다. 시험에서는 주어진 테이블을 보고 몇 정규형인지, 어떤 이상(anomaly)이 발생하는지 묻는 문제가 나옵니다.

실전에서 가장 많이 틀리는 부분은 2NF와 3NF의 구분입니다. 부분 함수 종속은 복합키의 일부에만 종속되는 것이고, 이행적 종속은 A→B→C처럼 간접적으로 종속되는 것입니다. 이 차이를 예제 테이블로 직접 그려보면 훨씬 이해가 빠릅니다. 또한 역정규화(반정규화)가 왜 필요한지도 알아둬야 합니다. 조인이 너무 많아 성능이 떨어질 때 의도적으로 중복을 허용하는 것이 반정규화의 여기서 갈린다고 보면 됩니다.

SQL 문법에서는 DDL(CREATE, ALTER, DROP), DML(SELECT, INSERT, UPDATE, DELETE), DCL(GRANT, REVOKE)의 분류를 확실히 외우고, 특히 서브쿼리와 조인(INNER JOIN, LEFT JOIN, CROSS JOIN)의 결과 차이를 비교하는 문제에 대비하세요. 뷰(View)의 장단점과 인덱스의 B-트리 구조도 자주 나오는 주제예요.

함께 읽으면 좋은 글

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤