정보처리기사

[정보처리기사] 실기 정리 ( 1 / 3 )

ThLee 2022. 5. 2. 20:09
728x90

본 자료는 제가 보기 위해 만든 것입니다. 제가 헷갈리는 부분 위주로 정리했습니다. 

1. 요구사항 확인

chapter01 - 소프트웨어 개발 방법론 

● 소프트웨어 생명주기(SDLC)

시스템의 요구분석부터 유지보수까지 전 공정을 쳬계화한 절차

● 소프트웨어 생명주기 모델 프로세스

요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

● 소프트웨어 생명주기 모델 종류

  • 폭포수 모델
    • 가장 오래된 모델로, 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어감
    • 절차 : 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
  • 프로토타이핑 모델
  • 나선형 모델
    • 위험을 최소화하기 위해 점진적으로 시스템 개발
    • 절차 : 계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가
  • 반복적 모델 
    • 구축 대상을 나누어 병렬적으로 개발 후 통합하거나 반복적으로 개발 

● 소프트웨어 개발 방법론

소프트웨어 개발의 시작부터 시스템을 사용하지 않는 과정까지의 전 과정을 형상화한 방법론

● 소프트웨어 개발 방법론 종류

  • 구조적 방법론
    • 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 방법론
    • 나씨-슈나이더만 차트 : 논리의 기술에 중점을 둔 도형식 표현 방법
  • 정보공학 방법론
    • 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
  • 객체 지향 방법론
    • '객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론
  • 컴포넌트 기반 방법론(CBD)
    • 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
  • 애자일 방법론
    • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적인 시스템 개발할 수 잇는 신속 적응적 개량 개발 방법론 
  • 제품 계열 방법론
    • 특정 제품에 적용하고 싶은 공통된 기능을 정의해 개발하는 방법론
    • 임베디드 SW 작성에 유용

● 애자일(Agile)

변화에 유연하고 신속하게 적응하면서 개발하는 방법론

● 애자일 방법론 유형

  • XP 
    • 의사소통 개선과 즉각적 피드백으로 소프트웨어 품직을 높이기 위한 방법론
    • 5가지 가치 : 용기 , 단순성 , 의사소통 , 피드백 , 존중
    • 12가지 기본원리 : 지속적인 통합(CI) / 메타포어 / 테스트 기반 개발 / 리팩토링 등
    • 메타포어 : 공통적인 이름 체계시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
    • 테스트 기반 개발(TDD) : 테스트를 먼저 수행하고 실제 프로그램을 만드는 원리
    • 리팩토링 : 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다는 원리 
  • 스크럼
    • 매일 정해진 시간과 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
  • 린(Lean)
    • 도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시키는 방법론 

● 럼바우

  • 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론
  • 절차 : 객체 모델링 -> 동적 모델링 -> 기능 모델링 ( 객동기 )
    • 체 모델링(정보 모델링) : 객체 다이어그램을 이용하여 표현
    • 적 모델링 : 상태 다이어그램을 이용하여 표현 
    • 능 모델링 : 자료 흐름도(DFD)을 이용하여 표현

● 비용 산정 모형

  • 델파이 기법 : 전문가의 경험을 토대로 비용을 산정해주는 방법
  • LoC 
    • 낙관치, 중간치, 비관치를 측정하여 비용을 산정하는 방법
    • 예측치 = ( 낙관치 + 4x중간치 + 비관치 ) / 6 
  • Man Month 
    • 1개월 동안 할 수 있는 양을 기준으로 비용을 산정하는 방법
  • COCOMO 모형
    • 보헴이 제안한 비용산정 방법
    • 조직형 : 5만 라인 이하
    • 반 분리형 : 30만 라인 이하
    • 임베디드형 : 30만 라인 이상
  • 푸트남(Putnam) 모형
    • 인력의 분포를 가정하는 방식, Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
  • 기초점수(FP) 모형
    • 인자별로 가중치를 부여하고, 가중치를 합산하여 비용을 산정하는 방법
    • 기능점수(FP) = 총 기능점수 X [ 0.65 + ( 0.1 X 총 영향도 ) ]

● 비용 산정 자동화 추정 도구

  • SLIM 
    • Rayleigh-Norden 곡선과 푸트남 예측 모델을 기초로 하여 개발된 자동화 추정 도구
  • ESTIMACS
    • FP 모형을 기초로 하여 개발된 자동화 추정 도구 

● 일정관리 모델

  • 주 공정법(CPM)
    • 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
    • 임계 경로 : 가장 오래 걸리는 경로
  • PERT 
    • 일의 순서를 계획적으로 정리하기 위한 수렴기법, 비관치, 중간치 낙관치를 이용
  • 중요 연쇄 프로젝트 관리(CCPM)
    • 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

chapter02 현행 시스템 분석

● 현행 시스템 파악 절차

  1. 구성/기능/인터페이스 파악
  2. 아키텍처 및 소프트웨어 구성 파악
  3. 하드웨어 및 네트워크 구성 파악

● 아키텍처

구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

● 4+1뷰(유논프구배)

  • 유스케이스뷰
  • 논리뷰
  • 프로세스뷰
  • 구현뷰
  • 배포뷰

● 아키텍처 패턴 유형

  • 계층화 패턴 : 계층으로 구분
  • 클라이언트-서버 패턴 
  • 파이프-필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템
  • 브로커 패턴 : 분산 시스템에서 사용
  • 모델-뷰-컨트롤러 패턴(MVC) 
    • 모델 : 기능과 데이터 보관
    • 뷰 : 사용자에게 정보 표시
    • 컨트롤러 : 요청을 입력받아 처리

● 아키텍처 비용 평가 모델 종류

  • SAAM
    • 변경 용이성과 기능성에 집중, 경험이 없는 조직에서도 활용 가능한 비용 평가 모델
  • ATAM
    • 아키텍처 품질 속성을 만족시키는지 판단 및 이해 상층 관계까지 평가하는 모델
  • CBAM 
    • ATAM 바탕의 시스템으로 경제적으로 의사결정에 대한 요구를 충족하여 평가 모델
  • ADR
    • 아키텍처 구성요소 간 응집도 평가 모델
  • ARID
    • 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하여 비용 평가 모델 

● 디자인 패턴(생구행)

  • 목적
    • 생성
    • 구조
    • 행위
  • 범위
    • 클래스 : 정적으로 결정
    • 개체 : 동적으로 결정

● OSI 7 계층(물데네전세표응)

  • 물리 : 비트 
  • 데이터 링크 : 프레임 / 이더넷
  • 네트워크 : 패킷 / IP, ICMP
  • 전송 : 세그먼트 / TCP,UDP
  • 세션 : 데이터 / SSH, TLS
  • 표현 : 데이터 / JPEG, MPEG
  • 응용 : 데이터 / HTTP, FTP

● 라우터

3계층 / 패킷 / 최적의 경로를 지정

● 스위치

2계층 / MAC 주소 기반으로 빠르게 전달

● 게이트웨이

컴퓨터 네트워크에서 서로 다른 통신망

● 백본망

정보를 교환하기 위한 경로를 제공하는 망

● 요구공학

  • 기능적 요구사항
    • 특성 : 기능성, 완전성, 일관성
  • 비기능적 요구사항
    • 특성 : 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 및 품질 관련 요구사항, 제약사항
  • 프로세스(도분명확)
    • 도출 -> 분석 -> 명세 -> 확인 및 검증

● 워크스루

사전검토

● 인스펙션

저작자 외 다른 팀이 검사하여 

● UI vs UX

UI : 사용자와 시스템이 의사소통할 수 잇는 가상의 매개체
UX : 사용자 경험

● UI 유형

  • CLI
  • GUI
  • NUI
  • OUI : 현실에 존재하는 모든 사물이 입출력 장치로 변화할 수 있는 사용자 인터페이스

● UI 설계 원칙

  • 직관성 : 쉽게 이해하고 ,사용 가능
  • 유효성 : 목표에 달성될 수 있도록
  • 학습성 : 쉽게 배우기
  • 유연성 : 실수를 방지

● UI 개발을 위한 주요 기법

  • 3C 분석
    • 고객,자사,경쟁사를 비교하고 분석하는 방법
  • SWOT 분석
    • 기업의 내/외부 환경을 분석하여 강점,약점,기회,위협 요인을 규정하고 경영 전략을 수립하는 방법
  • 시나리오 플래닝
    • 다양한 시나리오를 설계하여 불확실성을 없애는 경영 전략 방법

● UI 화면 설계

  • 와이어프레임 : 뼈대 작업(레이아웃)
  • 스토리보드 : 거의 완성본, 서비스 구축을 위한 모든 정보

● UML

모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어

● UML 구성요소

  • 사물
  • 관계
  • 다이어그램

● UML 다이어그램

  • 구조적/정적 다이어그램
    • 클래스
    • 객체
    • 컴포넌트
    • 배치
    • 복합체 구조
    • 패키지(패키지,복합관계)
  • 행위적/동적 다이어그램
    • 유스케이스
    • 시퀀스(객체,생명선,실행,메시지)
    • 커뮤니케이션(액터,객체,링크,메시지)
    • 상태
    • 활동(시작점,전이,액션,액티비티,종료점,조건,병합,포드)
    • 타이밍

● 클래스 간의 관계

  • 연관 관계 : 실선
  • 의존 관계 : 영향을 주는 관계
  • 일반화 관계 : 그룹화 / 흰색 화살표 
  • 실체화 관계 : 기능으로 그룹화
  • 포함 관계 : 영구적이고, 집합관계보다 강한 관계 ex) 엔진 - 피스톤,플러그 / 검정 마름모
  • 집합 관계 ex) 차 - 엔진,바퀴,운전대 / 흰색 마름모

● 데이터 모델 표시 요소

  • 연산
  • 구조
  • 제약조건

● 데이터 모델 절차

  • 요구사항 분석
  • 개념적 설계 : 트랜잭션을 모델링하는 단계
  • 논리적 설계 : 트랜잭션의 인터페이스를 설계하는 단계(정규화)
  • 물리적 설계 : 물리적인 스키마를 만드는 단계(반정규화)

● 논리적 데이터 모델링 종류

  • 관계 데이터 모델 : 테이블 형태 
  • 계층 데이터 모델 : 트리 형태
  • 네트워크 데이터 모델 : 그래프 형태

● 관계대수 

원하는 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

● 관계대수 종류

  • 일반 집합 연산자
    • 합집합 ( ∪ )
    • 교집합 ( ∩ )
    • 차집합 ( - )
    • 카티션 프로덕트 ( X ) 
  • 순수 관계 연산자
    • 셀렉트(Select) : 오메가 / 조건을 만족하는 튜플 반환
    • 프로젝트(Project) : 파이 / 속성들의 값으로만 튜플 반환
    • 조인(Join) : 누운 모래시계 / R과S의 튜플들을 연결해 만들어진 튜플 반환
    • 디비전(Division) : ÷ / S의 모든 튜플과 관련 있는 R의 튜플 반환-

● 관계해석

튜플 관계해석과 도메인 해석을 하는 비절차적 언어

● 논리 데이터 모델링 속성

  • 개체
  • 속성
  • 관계

● E-R(개체-관계) 모델

  • 개체 ( □ ) 
  • 관계 ( ◇ )
  • 속성 ( ○ )
  • 다중 값 속성 ( ◎ )
  • 관계-속성 연결 ( - )

● 정규화

데이터의 중복성을 제거하여 이상 현상을 방지하고, 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

● 정규화 단계 (도부이결다조)

  • 도메인이 원자값
  • 부분 함수 종속 제거
  • 이행함수 종속 제거
  • 결정자 후보 키가 아닌 함수 종속 제거
  • 다중 종속 제거
  • 조인 종속 제거

● 이상현상

  • 삽입 이상
  • 삭제 이상
  • 갱신 이상

● 반정규화

정규화된 개체, 속성, 관계에 대해 성능향상과 개발운영의 단수화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

● 참조무결성 제약조건

릴레이션과 릴레이션 사이에 대한 참조의 일관성을 보장하기 위한 조건 
  • 제한
    • 다른테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
  • 연쇄
    • 참조하는 테이블까지 연쇄적으로 제거하는 옵션
  • 널값
    • 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 튜플들의 외래값에 NULL값을 넣는 옵션

● 인덱스

'키값, 포인터(주소)' 쌍으로 구성되는 데이터 구조
  • 클러스터드 인덱스
    • 인덱스의 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
  • 넌클러스터드 인덱스
    • 인덱스의 키 값만 정렬되고, 실제 데이터는 정렬되지 않는 방식

 뷰

접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 구성된 가상 테이블

클러스터(Cluster)

데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법. 클러스터의 분포도가 넓을수록 유리하다

 파티션

  • 범위분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
  • 해시분할(Hash Partitioning) : 해시 함수를 적용할 결과 값에 따라 데이터를 분할
  • 리스트분할(List Partitioning) : 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 분할 기법
  • 조합분할(Composite Partitioning) : 범위,해시,리스트 중 2개를 결합한 방식. 

데이터베이스 정의

  • 통합된 데이터
  • 저장된 데이터
  • 운영 데이터
  • 공용 데이터

데이터베이스 특성

  • 실시간 접근성
  • 계속적인 변화
  • 동시공용
  • 내용참조

데이터베이스 종류

  • 파일 시스템(File system)
  • 관계형 데이터베이스 시스템(RDBMS) : 관계형 모델을 기반
  • 계층형 데이터베이스 시스템(HDBMS) : 상하 종속적인 관계로 계층화하여 관리
  • 네트워크 데이터베이스 시스템(NDBMS) : 망상 형태로 표현한 데이터 모델

DBMS 유형

  • 키-값 DBMS
  • 컬럼 기반 데이터 저장 DBMS : key안에 (column,value)조합으로 된 여러개의 필드를 갖는 DBMS
  • 문서 저장 DBMS : 값의 데이터 타입이 문서타입을 사용하는 DBMS
  • 그래프 DBMS : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현한 DBMS

  DBMS 특징

  • 무결성
  • 일관성
  • 보안성
  • 효율성
  • 회복성

 빅데이터

  • 특성 : 데이터의 , 데이터의 다양성, 데이터의 속도 
  • 빅데이터 수집,저장,처리 기술
    • 비정형/반정형 데이터 수집 : 정제되지 않은 데이터를 수집
    • 정형 데이터 수집 : 정제된 데이터를 수집
    • 분산 데이터 저장/처리 : 대용량 파일의 효과적인 분산 저장 
    • 분산데이터 베이스  : HDFS 컬럼 기반 데이터베이스로 실시간 랜덤 조회 및 업데이트 가능
      • HDFS : 하둡 분산 파일 시스템

NoSQL( Not Only SQL ) 

고정된 테이블 스키마가 필요하지 않고, 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
  • NoSQL 특성
    • Basically Available : 언제든지 데이터 접근 할 수 있는 속성
    • Soft-State : 외부에서 전송된 정보를 통해 결정되는 속성
    • Eventually Consistency : 이관성이 유지되는 속성
  • NoSQL 유형
    • Key-Value Store 
    • Column Family Data Store
    • Document Store 
    • Graph Store

 데이터마이닝

데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아주는 기술
  • 데이터마이닝 절차 : 목적 설정 -> 데이터 준비 -> 가공 -> 마이닝 기법 적용 -> 정보검증
  • 주요 기법
    • 분류 규칙 : 과거 데이터를 토대로 새로운 레코드의 결과 값을 예측하는 기법
    • 연관 규칙 : 데이터 안에 항목들 간의 종속관계를 찾아내는 기법
    • 연속 규칙 : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
    • 데이터 군집화 : 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업

연계 메커니즘

응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계시, 요구사항을 고려한 연계 방법과 주기를 설계하기 위한 매커니즘

주요 연계 기술

  • 직접 연계
    • DB 링크 : 데이터베이스에서 제공하는 DB링크 객체를 이용 
    • DB 연결 : 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB커넥션 풀을 이용하여 연결
    • API/Open API
    • JDBC : 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
    • 하이퍼링크
  • 간접 연계
    • 연계 솔루션(EAI) : 기업에서 운영되는 솔루션
    • Web Service/ESB : WSDL과 SOAP 프로토콜을 이용한 연계
    • 소켓 : 소켓을 생성하여 포트를 할당하고, 통신

EAI

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계 통합이 가능하도록 하는 솔루션
  • 구성 요소
    • EAI 플랫폼
    • 어댑터 : 다양한 애플리케이션을 연결
    • 브로커 : 데이터 포맷과 코드를 변환하는 솔루션
    • 메시지 큐 : 비동기 메시지를 사용하여 데이터를 송수신하는 기술
    • 비즈니스 워크플로우 : 미리 정의된 기업의 비즈니스 workflow에 따라 업무를 처리하는 기능 
  • 구축 유형
    • 포인트 투 포인트(Point to point) : 1대1 단순 통합 방법
    • 허브 앤 스포크(Hub & Spoke) : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
    • 메시지 버스(Message Bus) : 애플리케이션 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식 
    • 하이브리드(Hybrid) : 그룹 내는 허브앤스포크, 그룹 간은 메시지 버스 방식을 사용하는 통합 방식

ESB

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처, 느슨한 결합 방식 지원
  • 구축 유형 : 버스 방식의 분산형 토폴로지 구성

웹서비스(Web Service)

네트워크에 분산된 정보를 서비스 형태로 개방하여, 표준화된 방식으로 공유하는 기술(서비스 지향 아키텍처)
  • 웹서비스 유형
    • SOAP : HTTP,HTTPS,SMTP등을 사용하여 XML 기반의 메시지네트워크 상태에서 교환하는 프로토콜  
    • WSDL : 웹서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
    • UDDI : WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트 

IPC

운영체제에서 프로세스 간 서로 데이터를 주고 받기 위한 통신 기술

컴포넌트 명세서

컴포넌트 개요, 부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세

인터페이스 명세서

컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서

● JSON

'속성-값' 또는 '키-값' 쌍으로 이루어진 데이터를 전달하기 위해 텍스트를 사용하는 개방형 표준 포맷,
AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷

XML

HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어

AJAX

자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하는 웹 기술

REST

웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처

데이터베이스 암호화 알고리즘

  • 대칭 키 암호화 알고리즘
  • 비대칭 키 암호화 알고리즘
  • 해시 암호화 알고리즘 

데이터 암호화 전송 보안 기술

  • IPSec(IP Security) : IP계층(3계층)에서 보안 서비스를 제공하는 터널링 프로토콜
  • SSL/TLS : 전송(4계층) ~ 응용(7계층) 사이에서 데이터 무결성을 보장하는 보안 프로토콜
  • S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법

인터페이스 구현 검증 도구

  • xUnit : 자바, C++, Net 등 다양한 언어를 지원하는 단위테스트 프레임워크
  • STAF : 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
  • FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
  • NTAF : FitNesse + STAF 통합한 테스트 자동화 프레임워크
  • selenium : 웹 애플리케이션 테스트 프레임워크
  • watir : 루비 기반 웹 애플리케이션 테스트 프레임워크

인터페이스 감시 도구

  • 스카우터(Scouter) : 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능을 제공
  • 제니퍼(Jennifer) : 애플리케이션의 개발부터 운영까지 성능을 모니터링하고 분석해주는 APM 소프트웨어
728x90