[정보처리기사] 1과목 키워드 정리

sky·2021년 2월 5일
0

정보처리기사

목록 보기
5/11

공부하면서 중요할 것 같은 포인트들 체크👊

소프트웨어 생명 주기

폭포수 모형 : 이전 단계가 완벽히 끝난 뒤 다음 단계를 진행. 가장 오래되고 폭넓게 사용됨. 선형 순차적
프로토타입 모형 : 폭포수 단점 보완. 견본을 만들어 최종 결과물 예측.
나선형 모형 : 폭포수 + 프로토타입 장점 모아둔 것. 나선형으로 개발을 여러 번 거침. 유지보수 필요 없음.
애자일 모형 : 짧은 개발 주기를 반복하며 요구사항을 우선순위로 둠. 사용자와 가장 친밀한 방법론.

스크럼

제품책임자 : 제품 이해도 높고 요구사항을 책임진다. 백로그 작성(우선순위 직접 지정)
스크럼 마스터 : 가이드 역할. 일일 스크럼 회의 주관하고 장애요소 공론화(PM과 비슷)
개발팀 : 개발 참여자

스크럼 개발 프로세스
제품 백로그 → 스프린트 계획 회의 → 스프린트 → 일일 스크럼 회의 → 스프린트 검토 회의 → 스프린트 회고

XP

XP 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백

요구사항 정의

요구사항 개발 프로세스
도출 → 분석 → 명세 → 확인

UML

사물 : 구조, 행동, 그룹, 주해
관계 : 집합(◇ㅡ), 포함(◆ㅡ), 의존(<·····), 일반화(◁ㅡ), 실체화(◁---)
다이어그램

  • 구조적 다이어그램 : 클래스, 객체, 컴포넌트, 배치(구현 단계), 복합체, 패키지
  • 행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용, 타이밍

UI

기본 원칙 : 직관성, 유효성, 학습성, 유연성
와이어프레임 : 뼈대
목업 : 정적인 형태
스토리보드 : 와이어프레임 + 페이지 이동 흐름
프로토타입 : 인터랙션 적용한 정적인 형태.
요구사항 확인 단계 : 목표정의 → 활동사항 정의 → 요구사항 요소 확인 → 정황 시나리오 작성 → 요구사항 작성

품질 요구사항

  • 기능성 (적합성, 정밀성, 상호운용성, 보안성, 호환성)
  • 신뢰성 (성숙성, 고장 허용성, 회복성)
  • 사용성 (이해성, 학습성, 운용성, 친밀성)
  • 효율성 (시간효율성, 자원효율성)
  • 유지보수성 (분석성, 변경성, 안정성, 시험성)
  • 이식성 (적용성, 설치성, 대체성, 공존성)

소프트웨어 아키텍처

  • 모듈화 : 모듈 크기와 개수는 반비례, 개수와 통합 비용은 비례
  • 추상화
    • 과정 추상화 : 전반적 흐름 파악
    • 데이터 추상화 : 데이터 세부사항 정의 X
    • 제어 추상화 : 이벤트 발생 세부사항 정의 X

아키텍처 패턴

  • 레이어 패턴
    시스템 계층 구분. 마주 보는 두 계층 사이 상호작용. 예시: OSI 참조모델

  • 클라이언트-서버 패턴
    1 서버, 다수 클라이언트. 서버는 항상 대기 상태 유지. 동기화 제외하고는 서로 독립적

  • 파이프-필터 패턴
    데이터 스트림 절차의 각 단계를 캡슐화하여 파이프로 데이터 전송. 예시: UNIX의 Shell

  • MVC 패턴

    • 모델 : 서브시스템 핵심 기능과 데이터 보관
    • 뷰 : 사용자에게 보여줄 정보 표시
    • 컨트롤러 : 사용자로부터 받은 입력 처리. 모델-뷰 사이 제어 역할
  • 마스터-슬레이브 : 작업 분할 후 다시 돌려받음

  • 브로커 패턴 : 브로커 컴포넌트가 요청에 맞는 컴포넌트 연결

  • 피어-투-피어 패턴 : 피어가 서버도 되고 클라이언트도 됨(P2P)

  • 이벤트 버스 : 구독한 리스너가 메세지 받아 이벤트 처리

  • 블랙보드 : 검색으로 블랙보드에서 데이터 찾기

모듈

모듈의 독립성을 높이려면 결합도 ↓, 응집도 ↑

  • 결합도 : 모듈 간 관계 (아래는 결합도 약 → 강 순으로 나열)
    • 내용(데이터) : 내부 기능, 내부 자료 참조
    • 공통 : 공통 데이터 영역
    • 외부 : 외부 다른 모듈에서 참조
    • 제어 : 제어 신호 이용하여 통신 또는 요소 전달
    • 스탬프 : 자료구조 전달
    • 자료 : 매개변수 데이터 넘겨줌
  • 응집도 : 모듈 내부 요소 관련된 정도 (아래는 응집도 강 → 약 순으로 나열)
    • 기능적 : 단일 문제와 연관
    • 순차적(시퀀스) : 모듈에서 나온 데이터가 다음 모듈 입력
    • 통신적 : 동일한 입력과 출력으로 서로 다른 기능 수행
    • 절차적 : 다수 기능 가질 시 순차적으로 수행
    • 시간적 : 특정 시간과 관련
    • 논리적 : 유사한 성격 혹은 특정 형태
    • 우연적 : 관련 없는 요소들로 구성

디자인 패턴

  • 생성패턴 → 객체 생성 및 참조 과정 샘플화하여 객체가 변경되어도 프로그램 구조에 큰 영향 X (프로그램 유연성 ↑)
    • 추상 팩토리 : 구체적 클래스 의존 X, 인터페이스를 통해 연관-의존하는 객체들의 그룹으로 생성하여 추상적 표현
    • 빌더 : 작게 분리된 인스턴스를 건축하듯 조합
    • 팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
    • 프로토타입 : 원본 객체 복제
    • 싱글톤 : 한 객체 생성 시 어디서든 참조 가능하지만 여러 프로세스 동시 참조 X
  • 구조패턴 → 클래스나 객체를 조합하여 더 큰 구조로 만들어줌
    • 어댑터 : 호환성 없는 클래스의 인터페이스를 다른 클래스가 이용할 수 있도록 변환(어댑터니까 변환해주는 용도)
    • 브리지 : 구현부에서 추상층까지 분리하여 서로 독립적으로 확장(각각 독립적인 거지만 다리(브리지)를 놓아서 이어줌)
    • 컴포지트 : 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 사용 가능
    • 데코레이터 : 객체 간 결합으로 능동적으로 기능 확장
    • 퍼싸드 : 복잡한 서브 클래스를 피해 더 상위에다 인터페이스 구상하여 서브 클래스 기능을 간편하게 사용
    • 플라이웨이트 : 인스턴스를 생성하는 게 아니라 공유해서 사용하여 메모리 절약
    • 프록시 : 접근 어려운 객체와 연결하려는 객체 사이 인터페이스 역할 수행
  • 행위패턴 → 클래스나 객체가 서로 상호작용하거나 책임 분배 방법 정의
    • 책임 연쇄 : 요청 처리할 객체가 둘 이상 시 한 객체가 처리 못한 작업을 다음 객체로 넘김
    • 커맨드 : 요청을 객체 형태로 캡슐화하여 재이용 또는 취소할 수 있도록 정보를 저장하거나 로그를 남김
    • 인터프리터 : 언어 문법 표현 정의
    • 반복자 : 자료구조처럼 접근 잦은 객체에 동일 인터페이스 사용
    • 중재자 : 수많은 객체 사이 복잡한 상호작용을 캡슐화하여 객체로 정의
    • 메멘토 : 특정 시점의 객체 내부 상태를 객체화하여 요청 시 해당 시점의 상태로 돌릴 수 있음
    • 옵서버 : 객체의 상태가 변하면 객체 상속된 다른 객체들에게도 변화 상태 전달
    • 상태 : 객체 상태에 따라 동일 동작 다르게 처리할 때 사용
    • 전략 : 동일 계열 알고리즘을 개별적 캡슐화하여 상호교환
    • 템플릿 메소드 : 상위 클래스에서 골격 정의하여 하위 클래스에서 처리를 구체화
    • 방문자 : 각 클래스의 데이터 구조의 처리 기능을 분리하여 별도의 클래스로 구성

요구사항 검증 방법

  • 요구사항 검증 방법 종류
    • 동료검토 : 작성자가 직접 설명하여 동료들과 결함 찾기
    • 워크스루 : 미리 명세서 배포하여 짧은 회의를 통해 결함 찾기
    • 인스펙션 : 다른 검토 전문가가 명세서 확인하여 결함 찾기
    • 프로토타이핑 : 견본품 만들어 최종 결과물 예측
    • 테스트 설계 : 테이스 케이스로 테스트 가능한지 검토
    • CASE 도구 활용 : 일관성 분석을 통해 요구사항 변경사항 추적·분석·관리하여 표준 준수 여부 확인
  • 인터페이스 요구사항 검증 주요 항목 : 완전성, 일관성, 명확성, 기능성, 검증 가능성, 추적 가능성, 변경 용이성

시스템 연계 기술

  • DB Link, API/Open API, EAI(송수신 데이터 처리·진행 현황을 모니터링·통제), Socket, Web Service

미들웨어

  • DB
  • RPC(Remote Procedure Call) : 프로시저 사용하여 원격 프로시저를 로컬 프로시저처럼 호출
  • MOM(Message Oriented Middleware) : 메세지 기반 비동기형 메세지 전달
  • TP-Monitor(Transaction Processing Monitor) : 트랜잭션 처리 및 감시
  • ORB(Object Request Broker) : 객체 지향 미들웨어
  • WAS(Web Application Server) : 동적 컨텐츠 처리
profile
keep going

0개의 댓글