정보처리기사 실기 요약정리 - (1)

Dochaki·2025년 4월 7일

정보처리기사

목록 보기
1/5
post-thumbnail

소프트웨어 구축 요약 정리

  • 소프트웨어 설계 까지

1. 소프트웨어 생명 주기 (Software Development Life Cycle, SDLC)

주요 단계

요구사항 분석 → 시스템 설계 → 구현 → 테스트 → 유지/보수

폭포수 모델 (Waterfall)

  • 고객의 명확한 요구사항 전제
  • 각 단계가 완료되어야 다음 단계 진행 (문서화 중시)
  • 반복 x / 고객 요구사항 변경 반영 어려움 x / 단계 병행 x

나선형 모델 (Spiral)

  • 반복적 개발 모델 + 위험 분석 기능 추가
  • 전체 과정 반복 / 점진적 개발
  • 유지보수, 요구사항 반영에 유리
  • 프로젝트 전체 기간, 비용 증가 우려

애자일 모델 (Agile)

  • 반복적 개발 주기 (Sprint 또는 Iteration) 중심
  • 고객 피드백 기반 / 문서화 최소화 / 팀 간 협업 중심
  • Ex) XP(Extreme Programming), Scrum, Kanban 등
  • 대표 프레임워크: LEAN, DSDM

설계 접근 방식

  • 하향식 설계 (Top-down)
    전체 → 하위 기능 분할 설계
    전체 흐름 파악에 용이 / 초기 단계에 유용
  • 상향식 설계 (Bottom-up)
    부품/모듈 → 전체 통합
    유지보수 편리 / 공통 모듈 효율화

익스트림 프로그래밍 (XP)

  • 고객 중심 반복 개발, 테스트 주도 개발
  • 5가지 가치: 의사소통, 단순성, 피드백, 용기, 존중
  • 주요 실천 방법: Pair Programming / 지속적 통합 / TDD / 코드 공유 등

2. 개발 일정 산정

WBS (Work Breakdown Structure)

  • 프로젝트 업무를 세분화하여 일정 관리에 활용

네트워크 차트

  • PERT (Program Evaluation and Review Technique)
    • 낙관/비관/기대치 기반의 일정 계획
    • 불확실한 작업에 적합
  • CPM (Critical Path Method)
    • 프로젝트 작업 중 가장 오래 걸리는 경로 파악
    • 작업 단위 간의 선후 관계를 표현
    • 임계경로 = 프로젝트 전체 시간
    • 예: A-B-E-G-H 경로가 14일 소요 → 임계 경로

간트 차트

  • 각 작업의 시작/종료 일정을 막대(Bar)로 표현
  • 작업 진척도 시각화에 유리

3. 요구사항 분석

요구사항 정의

  • 고객의 문제 해결을 위해 필요한 조건 및 제약사항 도출

요구사항 유형

  • 기능적 요구사항: 실제 시스템 수행 가능하고 필수 기능
  • 비기능적 요구사항: 품질, 성능, 보안 등

Ex. 모든 페이지는 3초 이내에 사용자에게 보여야 한다.


요구사항 개발 프로세스

  1. 도출/수집: 인터뷰, 브레인스토밍 등
  2. 분석: 사용자 요구 검토 및 타당성 분석
  3. 명세: 요구사항을 체계적으로 문서화
  4. 확인/검증: 문서화된 요구사항의 정확성 검증

요구사항 분석 도구

  • CASE (Computer Aided SW Engineering)
  • SADT, SREM, PSL/PSA, HIPO, TAGS 등

4. 구조적 분석 모델

데이터 흐름도 (DFD, Data Flow Diagram)

  • 프로세스 / 데이터 흐름 / 데이터 저장소 / 단말기 표현
  • 단계별 상세화 (레벨 0, 레벨 1 등)

자료 사전 (DD, Data Dictionary)

  • 정의, 형식, 사용 범위 등을 기록

5. 객체지향 분석 모델

모델특징
Booch전체 개발 프로세스 사용
JacobsonUse Case 중심
Coad-YourdonER 다이어그램 사용
Wirfs-Brock책임 기반 설계
Rumbaugh객체-관계-동작 3모델 사용

객체지향 용어 정리

  • 정형 명세: 수학적, 정확한 표현
  • 비정형 명세: 자연어 표현, 쉬우나 모호성 존재

6. 소프트웨어 설계 원리

  1. 분할 정복: 시스템을 작은 단위로 나눔
  2. 모듈화(Modularity): 독립적인 기능 단위
    • 강한 응집, 약한 결합
  3. 추상화(Abstraction): 세부 내용 감춤
  4. 정제(Refinement): 구체화 반복
  5. 정보 은닉: 모듈 내부 정보 감춤

7. 아키텍처 패턴

패턴설명
Layer계층화 설계 (예: OSI 7계층)
Client-Server클라이언트/서버로 역할 분리
Pipe-Filter필터 단위로 처리 / 유닉스 Shell
MVCModel-View-Controller 패턴
Master-Slave주/종 관계
Broker메시지 중계자 존재
Peer-to-Peer동등한 관계
Event-Bus이벤트 기반 분산 처리
Blackboard공유 데이터 중심
Interpreter인터프리터 기반 해석 구조

8. UML (Unified Modeling Language)

  • Rumbaugh, Booch, Jacobson 방식 통합
  • 고객/개발자 간 의사소통 및 모델링 표준 제공

구성 요소

  1. 사물(Things): 클래스, 인터페이스, 컴포넌트 등

  2. 관계(Relationship):

    • 연관 (Association)
    • 집합 (Aggregation)
    • 포함 (Composition)
    • 일반화 (Generalization)
    • 의존 (Dependency)
    • 실체화 (Realization)
  3. 다이어그램(Diagram)

구조 다이어그램

  • 클래스(Class)
  • 객체(Object)
  • 컴포넌트(Component)
  • 배포(Deployment)
  • 복합 구조(Composite Structure)
  • 패키지(Package)

행위, 동작 다이어그램

  • 유스케이스(Use Case)
  • 시퀀스(Sequence)
  • 커뮤니케이션(Communication)
  • 상태(State)
  • 활동(Activity)
  • 타이밍(Timing)
  • 상호작용 개요

9. UI 설계 (User Interface)

설계 기준

  • 직관성 / 유효성 / 학습성 / 유연성

UI 설계 도구

도구설명
Wireframe기획 초기 레이아웃 설계
Storyboard화면 흐름 및 시나리오 구성
Prototype실제와 유사한 동작 구현
Mockup시각적 디자인 표현
Use Case사용자 요구 기반 기능 흐름 도식화

0개의 댓글