정보처리기사 필기 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(구조적 기법)
- 모듈을 세분화하여 계층적 구조로 설계하는 방법