시험공부/정보처리기사

[정보처리기사 실기] 전날 보는 키워드 요약 정리1

개발하는소유밍 2024. 5. 10. 17:25

* 키워드 표기가 많으므로 기본 공부 지식이 바탕이 되어야 함

* 굳이 영어 표기가 있으면 반드시 영어로도 쓸 수 있어야 함

* 정의 서술은 무조건 연습 되어야함

 

요구사항 확인

※ 시스템 구성요소 : 입력, 처리, 출력, 피드백, 제어

▷ 소프트웨어 생명 주기

폭포수 모형 프로토타이핑 나선형모형 V-모형 RAD
보헴
순차적, 체계적
비전문가
요구사항 파악 용이
- 분석→설계 →작성 →평가 →정제 →제품화
대규모 시스템
계획 →위험분석* →개발 →평가
폭포수 + 검증
테스트 강조
높은 신뢰성
짧은 개발 주기 강조
점진적 소프트웨어

 

애자일(Agile) : 사람중심, 문서화보단 실행, 고객과의 피드백, 효과적인 변경 대응

 ㄴ XP(고객과 함께 2주 개발 후 테스트)

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

  - XP의 실천 사항 : 소규모 릴리즈, 짝 프로그래밍, 공동코드 소유 , 테스트 기반 개발 (↔ TDD : 시험우선 개발)

 ㄴ 스크럼(30일마다 동작 가능한 제품 제공 - 스프린트*)

 

개발 비용 선정

 - 하향식 산정 기법 : 전문가의 감정, 델파이식 기법(조정자*)

 - 상향식 산정 기법 : LOC(원시코드 라인수) 기법, 개발 단계별 인월수 기법, 수학적 산정 기법

 ㄴ 수학적 산정기법

 + COCOMO : 보헴 원시코드 라인 수에 의한 비용 예측

           기본COCOMO(단순) / 중간COCOMO / 고급COCOMO(세분화)

           유기적모델(5만라인 이하), 준분리형모델(30만라인 이하), 내장형모델(30만라인 이상)

 + Putnam : SLIM 비용 추정 자동화 모형의 기반

 + FP(Function Point) : 소프트웨어의 각 기능에 대해 가중치를 부여, 요인별 합산해서 규모나 복잡도, 난이도 산출

 

요구사항 확인(요구분석 기법)

 - 기능 요구 : 사용자 관점, 절차나 입출력 관점

 - 비기능 요구 : 개발자 관점, 보안성, 성능 등

 

 요구 공학

 - 요구사항을 문서화 하는데 필요한 <요구사항 추출 → 분석 → 명세* → 검증* → 유지보수>에 대한 체계적 접근 방법

 ㄴ 요구사항의 명세 기준 : 정확성, 명확정, 완전성, 일관성, 수정용이성, 추적성

구조적 분석 객체지향 분석
· 위에서 아래로 세분화(하향식)
· 자료흐름도(DFD)
· 개체 관계도(ERD)
· 상태 전이도(STD)
· 도구 : DFD, DD, Mini-spec
· 동적 모델링 기법
· 데이터 +행위 → 객체를 정의&추상화
· 럼바우의 OMT 기법*
 분석중심, 객체(정적D) - 동적(동적D) - 기능(DFD) 모델링
· Booch의 OOAD* :설계중심
· Coad/Yourdon : ER-다이어그램

 

▷ 분석 모델 (모델링 기법: 실 세계의 복잡한 문제에 대한 모델링)

 -  UML 정의 : 객체 지향 분석 설계용 모델링 언어, 표준 그래픽 언어

 ㄴ 기본요소 : 사물, 관계, 다이어그램

 ㄴ 종류 : 구조적 다이어그램(정적 모델링) : 클래스D, 객체D, 컴포넌트D, 패키지D, 디플로이먼트D

        행위 다이어그램(동적 모델링) : 상태D, 유스케이스D, 시퀀스D

 - 스테레오타입(길러멧) << >> 로 표기, 추가기능 표현을 위해 사용

 

▷ 유스케이스 다이어그램 : 외부에서 보는 시스템의 동작, 사용자의 요구 분석 추출

 - 구성 요소 : 시나리오, 유스케이스, 액터

 - 관계

 ㄴ 연관 관계 : 실선

 ㄴ 의존 관계 : 포함관계(필수적 관계<<includes>>) / 확장관계(선택적 관계 <<extends>> )

 ㄴ 일반화 관계(상속)

 

▷ 클래스 다이어그램

 - 관계

 ㄴ 집합 관계(Aggregation) : 부분이 없어도 전체의 개념이 존재

 ㄴ 복합 관계(Composition) : 강한 형태, 한개당 한개


데이터 입출력 구현

※ 데이터 모델링 절차 : 요구조건 분석 → 개념적 모델링 → 논리적 모델링 → 물리적 모델링

데이터 모델 : 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 것

 - 구성 요소 : <S,O,C> : 구조(Structure), 연산(Operation), 제약조건 (Constraint)

 ㄴ 개념적 모델링 : 개념적 데이터 모델링 → ER(개체-관계) 모델, 피터첸

 ㄴ 논리적 데이터 모델 : 개념적 데이터 모델링에서 도출된 개념적 구조를 컴퓨터가 이해하고 처리할 수 있도록 변경

   * 관계 데이터 모델(표, n:m) : 릴레이션, 속성, 도메인, 튜플, 차수, 기수(튜플개수)

   - 릴레이션의 특성 : 애튜리뷰트 원자성, 무순서성 / 튜플의 유일성, 무순서성

   - 키의 특성 : 슈퍼키(유일성 만족), 후보키(유일성, 최소성), 기본키(개체무결성 제약조건), 대체키, 외래키(참조 무결성 제약조건)

   * 계층 데이터 모델(트리, 1:n)

   * 네트위크 데이터 모델(그래프, n:m, 망 데이터 모델)

 ㄴ 물리적 데이터 모델링 : 논리적 데이터 모델을 DBMS의 특성을 고려해 DB 저장구조로 변환 및 수행

   * ORM 프레임워크 : 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것

   [관계 데이터 모델] 테이블 → 변환 → 클래스 [객체지향 데이터 모델] : 호환 되지 않아, [객체-관계 데이터 모델]로 개선

   - 장점 : 재사용성, 유지보수성, DBMS에 대한 종속성 감소

   - 단점 : 완벽한 구현이 어려움, 많은 프로시저에는 활용하기 어려움

 

▷ 스키마 : 데이터베이스 구조에 대한 정의와 이에 대한 제약조건 등을 기술한 것

 - ANSI/SPARC 3 Level Architecture

 ㄴ 외부스키마 : 사용자, 응용프로그램 관점, 뷰

 ㄴ 개념스키마 : 전체 통합, 논리적 구조

 ㄴ 내부스키마 : 물리적 저장장치 관점, 내부 레코드 형식

 

▷ 정규화 : 이상현상을 해결하기 위해 여러개의 릴레이션으로 분해하는 과정

 ㄴ 정규화 체계 : 비정규 릴레이션 → (원자값이 아닌 도메인 분해) → 제1 정규형 → (부분함수 종속제거) → 제2 정규형

  → (이행함수 종속제거) → 제3 정규형 → (결정자가 후보키가아닌 함수 종속제거) → 제4 정규형(BCNF)

 

▷ 반정규화 : 성능 향상을 목적으로 정규화 이전 상태로 되돌리는것, De-Normalization

 - 과정 : 반정규화 대상 조사 → 다른방법 유도검토* (뷰테이블, 인덱스 조정) → 반정규화 적용(테이블 통분할, 중복테이블/속성 추가)

 

▷ 데이터 조작 프로시저

 - SQL : 관계대수의 관계해석을 기초로 한 질의 언어(관계대수 : 절차적 언어)

 - PL/SQL(Procedural Language/SQL) : 절차적인 처리를 위해 표준SQL을 확장한 절차적 언어

 문법에 표준이 거의 없고, DBMS에 종속적인 것이 단점

 - 저장된 프로시저(Stored Procedure) : 특정 작업을 수행 가능한, 이름이 있는 PL/SQL 블록, 프로시저와 유사하나 IN 파라미터만 사용 가능

 - 트리거(Trigger) : INSERT, UPDATE, DELETE 문이 수행될 때 묵시적으로 수행되는 프로시저

 - SQL 소스코드 인스펙션 : 계획 → 사전교육 → 사전검토 → 회의 → 수정 → 후속 조치

 * DDL(정의어) : CREATE, DROP, ALTER

 * DML(조작어) : INSERT, UPDATE, SELECT

 * DCL(제어어) : REVOKE, GRANT, COMMIT, ROLLBACK - 데이터 무결성*(권한없으면 접근X) 회복

 ㄴ 데이터베이스 회복 조치 유형 : REDO(장애발생 전으로 복구 후 재실행) / UNDO(변경 연산을 취소)

 

▷ 개체 무결성 : 기본키를 구성하는 어떤 속성도 null 일 수 없고, 반복을 허용하지 않는다.

▷ 참조 무결성 : 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

 

▷ 관계 데이터 연산

 - 관계대수 : 대수는 절차적이며, 해석은 비절차적 언어

 ㄴ 일반집합 연산자 : 합집합(U) 교집합() 차집합 카티션프로덕트(X)

 ㄴ 순수관계 연산자 : SELECT(δ) PROJECT(π) JOIN( ) DIVISION( ÷ )

  ex) δ<조건식> 테이블명 , π<속성리스트> 테이블명

 

300x250