정보처리기사

[정보처리기사 필기] 2023~2024년 기출문제 오답 노트 – 소프트웨어 설계 (1과목)

@leem 2025. 2. 27. 14:40
정보처리기사 필기 2023년 1,2,3회
정보처리기사 필기 2024년 1,2,3회

기출 문제 풀이 후 자주 출제되는 개념과 오답을 정리한 글 입니다.

 

1과목 - 소프트웨어 설계

소프트웨어 설계 원칙

GoF(Gang of Four) 디자인 패턴

  • 디자인 패턴은 생성(생성 패턴), 구조(구조 패턴), 행위(행위 패턴) 세 가지로 분류됨
  • 구조 패턴에는 Decorator, Adapter, Proxy가 포함됨
  • Observer는 행위 패턴이므로 주의!

바람직한 소프트웨어 설계 지침

  • 모듈 간 결합도는 약하게, 모듈 내 응집도는 강하게

MVC 패턴 (Model-View-Controller)

  • Model: 데이터를 관리
  • View: 사용자에게 출력
  • Controller: 명령을 전달
    💡 Model은 전달자 역할이 아님! (Controller가 전달)

객체지향 설계 원칙 (SOLID 원칙)

단일 책임 원칙 (SRP)

  • 한 클래스는 단 하나의 책임만 가져야 함

개방-폐쇄 원칙 (OCP)

  • 기존 코드를 변경하지 않고 기능을 추가할 수 있도록 설계

리스코프 치환 원칙 (LSP)

  • 자식 클래스는 부모 클래스를 대체할 수 있어야 함

인터페이스 분리 원칙 (ISP)

  • 클라이언트는 자신이 사용하지 않는 메소드와 의존 관계를 맺으면 안 됨

의존 역전 원칙 (DIP)

  • 상위 모듈이 하위 모듈에 의존하지 않고 추상화된 인터페이스에 의존해야 함

요구사항 분석 & 모델링

요구사항 개발 과정

  • 도출 → 분석 → 명세 → 확인(검증)
    💡 구현은 포함되지 않음!

유스케이스 다이어그램

  • 액터(Actor): 시스템과 상호작용하는 사람 또는 다른 시스템
  • 사용자 액터시스템 액터로 구분됨
  • 연동 시스템은 상호 영향이 있음 (일방적인 관계 아님!)

자료 흐름도(DFD)

  • **Data Store(자료 저장소)**는 평행선 안에 기입 (❌ 삼각형 아님!)

UML(Unified Modeling Language)

  • 개발자 & 고객 간 소통을 위한 표준 모델링 언어
  • 실시간 시스템도 표현 가능

미들웨어 (Middleware)

미들웨어의 역할

  • 시스템 간 연결을 돕는 중간 소프트웨어
  • 위치 투명성, 재사용성, 애플리케이션 간 연결 기능 제공

미들웨어 종류

  • MOM (Message Oriented Middleware): 메시지 기반 미들웨어
  • TP-Monitor (Transaction Processing Monitor): 트랜잭션 감시 및 처리
  • ORB (Object Request Broker): 분산 객체 요청 처리

💡 미들웨어는 내부 동작을 확인하기 쉽지 않음!


보안 & 암호화

IPSec (IP Security Protocol)

  • 양방향 암호화 지원
  • 네트워크 계층에서 보안 제공

스테레오 타입 (<<stereotype>>)

  • UML에서 특정 속성을 표현할 때 사용

애자일(Agile) & 스크럼(Scrum)

애자일 개발 방식

  • 계획 문서보다는 변화 대응에 초점
  • 요구사항이 자주 바뀌는 프로젝트에 적합

스크럼(Scrum) 개발 프로세스

  • 스프린트(Sprint): 실제 개발 작업이 진행되는 2~4주짜리 반복 주기
  • 일일 스크럼 회의(Daily Scrum Meeting) 진행 (❌ 월별 X)

프로그래밍 개념 정리

객체(Object)란?

  • 데이터와 해당 데이터를 처리하는 **메소드(행위)**를 묶어놓은 하나의 소프트웨어 모듈

클래스(Class)란?

  • 공통된 속성과 연산을 가진 객체의 집합

캡슐화(Encapsulation)

  • 데이터와 메소드를 묶고, 외부에서 접근을 제한하는 개념

상속(Inheritance)

  • 부모 클래스의 속성이나 연산을 자식 클래스가 물려받는 개념

메소드 오버라이딩(Method Overriding)

  • 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것 (다형성)

시험에서 자주 나오는 개념 정리

HIPO (하향식 문서화 도구)

  • 기능과 자료의 의존 관계를 동시에 표현 가능

Mockup (목업)

  • UI/UX 디자인 평가를 위해 실제 화면과 유사하게 만든 정적 형태 모형

TP Monitor (트랜잭션 프로세싱 모니터)

  • 트랜잭션 감시 & 제어 역할을 하는 미들웨어

FEP(전처리기, Front-End Processor)

  • 데이터를 미리 처리해서 프로세서의 부담을 줄여주는 시스템

XP (Extreme Programming, eXtreme Programming)

  • 단순한 설계를 통해 빠른 소프트웨어 개발을 목표로 함

NS(구조적 기법)

  • 모듈을 세분화하여 계층적 구조로 설계하는 방법