정보처리기사 요약 <1>

HY·2025년 4월 19일
1
post-thumbnail

<요구사항 확인>

소프트웨어 생명주기(SDLC; Software Development Life Cycle)
: 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.
(*요구설테유)
요구사항 분석(기능,비기능) - 설계 – 구현 – 테스트(단통시인) - 유지보수

소프트웨어 생명주기 모델 종류(*폭프나반)

  • 폭포수 모델
  • 프로토타이핑 모델
  • 나선형 모델(Spiral Model)
  • 반복적 모델(Iteration Model)

폭포수 모델
: 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델, 선형순차적, 고전적
프로토타이핑 모델
: 고객이 요구한 주요 기능을 프로토타입으로 구현, 고객의 피드백을 반영
나선형 모델
: 개발시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
(*계획 및 정의 – 위험분석 – 개발 – 고객평가)
반복적 모델
: 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성

소프트웨어 개발 방법론(Software Development Methodology)
: 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.

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

  • 구조적 방법론
    : 기능에 따라 나누어 개발, 통합하는 분할과 정복 접근방식(하향식, 나씨-슈나이더만 차트)
  • 정보공학 방법론
    : 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
  • 객체지향 방법론(Object-Oriented Development)
    : 객체라는 기본 단위, 사람이 이해하는 방식으로 시스템에 적용하는 방법론
  • 컴포넌트 기반 방법론(CBD)
    : 컴포넌트를 조립해서 하나의 새로운 응용프로그램을 작성하는 방법론(확장성, 재사용)
  • 애자일 방법론
    : 절차보다는 사람이 중심, 변화에 유연,신속하게 적응 신속 적응적 경량 개발 방법론
  • 제품 계열 방법론
    : 공통된 기능을 정의하여 개발, 임베디드 소프트웨어를 작성하는데 유용한 방법론

애자일(Agile)
: 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할수 있는 신속 적응적 경량 개발 방법론.

  • XP
  • SCRUM
  • LEAN

XP(eXtreme Programming)
: 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
5가지 가치(*피의용존단)

  • 피드백
  • 의사소통
  • 용기
  • 존중
  • 단순성
    12가지 실천항목
  • 짝 프로그래밍
  • 공동 코드 소유
  • 지속적인 통합(CI)
  • 계획 세우기
  • 작은 릴리즈
  • 메타포어
  • 간단한 디자인
  • 테스트 기반 개발(TDD)
  • 리팩토링
  • 40시간 작업
  • 고개 상주
  • 코드 표준

스크럼(SCRUM)
: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 중심 방법론

  • 백로그
  • 스프린트
  • 스크럼 미팅
  • 스크럼 마스터
  • 스프린트 회고
  • 번 다운 차트

린(LEAN)
: 도요타의 린 시스템 품질기법을 적용해서 낭비요소를 제거하여 품질을 향상

객체 지향 분석 방법론(Object Oriented): 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법
구성요소

  • 클래스
  • 객체
  • 메서드
  • 메시지
  • 인스턴스
  • 속성

객체 지향 기법(*캡상다추정관)

  • 캡슐화(Encapsulation)
    : 서로 연관된 데이터와 함수를 함께 묶어 경계를 만듬, 결합도가 낮아지고 재사용 용이
  • 상속성(Inheritance)
    : 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용
  • 다형성(Polymorphism)
    : 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답(오버로딩, 오버라이딩)
  • 추상화(Abstraction)
    : 공통 성질을 추출하여 추상 클래스를 설정하는 기법
  • 정보 은닉(Information Hiding)
    : 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근 가능
  • 관계성(Relationship)
    : 두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법
    (연관화/집단화/분류화/일반화/특수화)

객체 지향 설계원칙(SOLID)

  • SRP(단일 책임의 원칙): 하나의 클래스는 하나의 목적을 위해서 생성, 하나의 책임을 수행
  • OCP(개방 폐쇄 원칙): 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다.
  • LSP(리스코프 치환 원칙): 서브타입은 어디서나 자신의 기반 타입으로 교체할수 있어야함
  • ISP(인터페이스 분리의 원칙): 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙
  • DIP(의존성 역전의 원칙): 클래스를 참조해서 사용하는 경우, 추상 클래스나 인터페이스참조

객체 지향 분석(OOA; Object Oriented Analysis)
: 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 속성과 연산, 관계

  • OOSE(야콥슨): 유스케이스에 의한 접근 방법, 기능적 요구사항 중심
  • OMT(럼바우) *객동기
    객체 모델링(정보 모델링): 요구하는 객체를 찾고 객체들 간의 관계를 정의(ER다이어그램)
    동적 모델링: 시간의 흐름에 따라 객체들 사이의 동적인 행위를 표현(상태 다이어그램)
    기능 모델링: 프로세스들의 자료 흐름을 중심으로 처리과정 표현(DFD)
  • OOD(부치): 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론

프로젝트 관리: 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동

프로젝트 관리 대상

  • 계획 관리
  • 품질 관리
  • 범위 관리
    프로젝트 관리 3대 요소(3P)
  • People
  • Problem
  • Process

비용산정 모형

  • 하향식 산정방법
    : 경험이 많은 전문가에게 비용산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정
    ex) 전문가 판단, 델파이 기법
  • 상향식 산정방법
    : 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식
    ex) LoC, Man Month, COCOMO 모형, 푸트남 모형, FP

비용산정 모형 종류

  • LOC(Lines of Code)
    : 원시 코드 라인 수의 낙관치, 중간치(기대치), 비관치
  • Man Month 모형
    : 한 사람이 1개월 동안 할수 있는 일의 양을 기준으로 비용을 산정
  • COCOMO 모형
    : 보헴이 제안한 모형, 프로그램 규모에 따라 비용을 산정하는 방식
    ▶ 조직형(Organic Mode): 5만 라인 이하의 소프트웨어를 개발하는 유형
    ▶ 반분리형(Semi-Detachde Mode): 30만 라인 이하의 소프트웨어를 개발하는 유형
    ▶ 임베디드형(Embedded Mode): 30만 라인 이상의 소프트웨어를 개발하는 유형
  • 푸트남(Putnam) 모형
    : 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식, 생명주기 예측 모형

일정관리 모델: 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델

  • 주 공정법(CPM);임계 경로
  • PERT
  • CCPM

위험 관리
회피/전가/완화/수용

현행 시스템 파악 절차
1단계: 구성/기능/인터페이스 파악
2단계: 아키텍처 및 소프트웨어 구성 파악
3단계: 하드웨어 및 네트워크 구성 파악

소프트웨어 아키텍처
: 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체이다

소프트웨어 아키텍처 프레임워크
: 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들간의 관계를 제공하는 기술 표준

소프트웨어 아키텍처 4+1뷰(*유논프구배)

  • 유스케이스 뷰: 사용자, 설계자, 개발자, 테스트 관점
  • 논리 뷰: 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
  • 프로세스 뷰: 비기능적인 속성으로 자원의 효율적인 사용 등등 표현
  • 구현 뷰: 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
  • 배포 뷰: 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

소프트웨어 아키텍처 패턴: 소프트웨어를 설계할때 참조할 수 있는 해결방식

  • 계층화 패턴
    : 시스템을 계층으로 구분하여 구성하는 패턴, 각 하위 모듈은 추상화를 제공하고 각 계층은 다음 상위 계층에 서비스를 제공, 서로 마주보는 두 계층 사이에서 상호작용
  • 클라이언트-서버 패턴
    : 하나의 서버와 다수의 클라이언트로 구성되노 패턴
  • 파이프-필터 패턴
    : 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴, 서브 시스템이 입력데이터를 받아 처리하고 결과를 다음 서브 시스템으로 넘겨주는 과정 반복
  • 브로커 패턴
    : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용, 컴포넌트 간의 통신을 조정하는 역할
  • 모델-뷰-컨트롤러 패턴(MVC)
    : 각 부분이 컴포넌트로 분리되어 있어 서로 영향을 받지 않고 개발 작업 수행 가능
    ▶ 모델(Model): 핵심 기능과 데이터 보관
    ▶ 뷰(View): 사용자에게 정보 표시
    ▶ 컨트롤러(Controller): 사용자로부터 요청을 입력받아 처리

소프트웨어 비용 평가 모델(*SACAA)

  • SAAM: 변경 용이성과 기능성에 집중
  • ATAM: 아키텍처 품질속성을 만족시키는지 판단
  • CBAM: ATAM의 바탕으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
  • ADR: 응집도를 평가하는 모델
  • ARID: 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용 평가 모델

디자인 패턴(Design Pattern)
: 소프트웨어 공학의 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계방법을 정리
디자인 패턴 구성요소(*패문솔사결샘)

  • 패턴의 이름
  • 문제 및 배경
  • 솔루션
  • 사례
  • 결과
  • 샘플코드

디자인패턴 유형(*생구행)

  • 생성패턴
  • 구조패턴
  • 행위패턴
    디자인패턴의 종류
  • 생성패턴(BFSAP)
    ▶ Builder
    ▶ Factory method
    ▶ Singleton
    ▶ Abstract Factory
    ▶ Prototype
    -구조패턴(ABCD2FP)
    ▶ Adapter
    ▶ Bridge
    ▶ Composite
    ▶ Decorator
    ▶ Flywieght
    ▶ Facade
    ▶ Proxy
  • 행위 패턴(행 미인이 템옵 스테 비커 스트 매체)
    ▶ Mediator
    ▶ Interpreter
    ▶ Iterator
    ▶ Template method
    ▶ Observer
    ▶ State
    ▶ Visitor
    ▶ Command
    ▶ Strategy
    ▶ Memento
    ▶ Chain of resposibility

요구사항 개요(*도분명확)

  • 요구사항 도출
  • 요구사항 분석
  • 요구사항 명세
  • 요구사항 확인

요구사항의 분류

  • 기능적 요구사항: 시스템이 제공하는 기능, 서비스에 대한 요구사항(사용자UI)
  • 비기능적 요구사항: 시스템이 수행하는 기능 이외의 사항(백엔드)

요구사항 도출 단계

  • 인터뷰
  • 브레인스토밍
  • 델파이 기법
  • 롤 플레잉
  • 워크숍
  • 설문 조사

요구사항 분석 단계

  • DFD(데이터 흐름도)
  • DD(자료 사전)
  • UML

요구사항 명세 단계

  • 비정형 명세 기법: 자연어를 기반으로 서술하는 기법
  • 정형 명세 기법: 수학적인 원리와 표기법으로 서술하는 기법

요구사항 확인 및 검증 단계

  • 동료 검토: 2~3명이 진행하는 리뷰
  • 워크 스루: 오류를 조기 검출, 회의 전 배포 사전 검토 짧은 시간 회의
  • 인스펙션: 다른 전문가 또는 팀이 검사해 오류 찾는 공식적인 검토 방법

<화면 설계>

UI(User Interface)
: 사용자 인터페이스, 넓은 의미에서 사용자와 시스템 사이에서 의사소통을 할수 있도록 고안된 물리적, 가상의 매개체

  • UX(사용자 경험)

UI의 유형(*CGNO)

  • CLI: 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
  • GUI: 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스
  • NUI: 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스
  • OUI: 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

UI 설계 원칙(*직유학유)

  • 직관성: 누구나 쉽게 이해하고 쉽게 사용할 수 있어야 함
  • 유효성: 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
  • 학습성: 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
  • 유연성: 사용자의 요구사항을 최대한 수용, 실수를 방지할수 있도록 제작

UI 품질 요구사항(*기신사효유이)

  • 기능성
  • 신뢰성
  • 사용성
  • 효율성
  • 유지보수성
  • 이식성

소프트웨어 개발 단계별 UI 지침

  • 목표 정의
    ▶ 3C 분석: Customer,Company,Competitor
    ▶ SWOT 분석: 강점, 약점, 기회, 위협 요인을 구정하고 이를 토대로 경영 전략을 수립
    ▶ 시나리오 플래닝
    ▶ 워크숍
  • 프로젝트 계획
    ▶ 프로파일
    ▶ 리서치
  • 요구사항 정의
    ▶ 페르소나
    ▶ 브레인스토밍
    ▶ 요구사항 매트릭스
    ▶ 정황 시나리오
  • 설계 및 구현: UI시나리오 문서
  • 테스트: 사용성 테스트
    UI 화면 설계(*와스프)
  • 와이어 프레임: 이해 관계자들과의 화면구성을 협의하거나 간략한 흐름 공유
  • 스토리보드: 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물
  • 프로토타입: 동적 효과를 적용하여 실제 구현된 것 처럼 시뮬레이션 할 수 있는 모형
    (*목업(Mockup): 제품이나 서비스의 디자인을 시각적으로 보여주기 위한 모형이다.)

UML: 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다.

UML의 특징(*가구명문)

  • 가시화: 오류가 적고 의사소통이 용이
  • 구축: 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
  • 명세화: 정확한 모델 제시, 완전한 모델 작성 가능
  • 문서화: 시스템에 대한 평가 및 의사소통의 문서

UML의 구성요소(*사관다)

  • 사물: 추상적인 개념으로, 주제를 나타내는 요소
  • 관계: 사물의 의미를 확장하고 명확히 하는 요소
  • 다이어그램: 사물과 관계를 모아 그림으로 표현한 형태

UML 다이어그램

  • 구조적 다이어그램(Structural Diagram)
    : 클래스/객체/컴포넌트/배치/복합체 구조/패키지

  • 정적 다이어그램(Static Diagram)
    : 유스케이스/시퀀스/커뮤니케이션/상태/활동/타이밍

UML 스테레오 타입 = ‘<< >>’ (길러멧)

UML의 유형
1. 클래스 다이어그램
: 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램

  • 클래스 다이어그램 구성요소
    : 클래스 이름, 속성, 연산, 접근 제어자, 관계 들로 이루어져 있다.
  • 클래스 다이어그램 관계
    : 연관관계, 의존관계, 일반화 관계, 실체화 관계, 포함 관계, 집합 관계
  1. 유스케이스 다이어그램
    : 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
  • 유스케이스 다이어그램 구성요소
    : 유스케이스, 액터, 시스템, 시나리오, 이벤트의 흐름
  • 유스케이스 다이어그램 관계
    : 포함관계, 확장관계, 일반화 관계

3.시퀀스 다이어그램
: 객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램

  • 시퀀스 다이어그램 구성요소
    : 객체, 생명선, 실행, 메시지
  1. 패키지 다이어그램
    : 시스템의 서로 다른 패키지들 사이의 의존관계를 표현하기 위한 다이어그램
  • 패키지 다이어그램 구성요소
    : 패키지, 의존관계
  1. 활동 다이어그램
    : 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램
  • 활동 다이어그램 구성요소
    : 시작점, 전이, 액션, 종료점, 조건노드, 병합노드, 포크노드, 조인노드, 구획면
  1. 상태 다이어그램
    : 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변하는지 표현하는 다이어그램
  • 상태 다디어그램 구성요소
    : 상태, 시작상태, 종료상태, 전이, 이벤트, 전이조건
  1. 커뮤니케이션 다이어그램
    : 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하고, 메시지 뿐만 아니라 객체 간의 연관까지 표현하는 다이어그램
  • 커뮤니케이션 다이어그램 구성요소
    : 액터, 객체, 링크, 메시지
  1. 컴포넌트 다이어그램
    : 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타내는 다이어그램
  • 컴포넌트 다이어그램 구성요소
    : 컴포넌트, 인터페이스, 의존관계

<데이터 입출력 구현>

데이터 모델
: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

  • 구조: DB에 논리적으로 표현될 대상
  • 연산: 실제 데이터를 처리하는 작업
  • 제약조건: 실제 데이터의 논리적인 제약조건

데이터 모델 절차(*요개논물)

  • 요구조건 분석
  • 개념적 설계(개념적 데이터 모델)
    : 사용자의 요구에 대한 트랜잭션을 모델하는 단계, 개체-관계 다이어그램(ERD)
  • 논리적 설계(논리적 데이터 모델)
    : 트랜잭션의 인터페이스를 설계하는 단계, 사람이 이해하기 쉽게 표현, 논리적 스키마
  • 물리적 설계(물리적 데이터 모델)
    : 논리적 데이터모델을 사용하고자 물리 데이터 모델로 벼노한하는 모델, 반 정규화를 수행
  1. 논리 데이터 모델: 사람이 이해하기 쉽게 표현하는 프로세스
  • 관계 데이터 모델: 2차원 테이블 형태로 구성, 기본키, 외래키
  • 계층 데이터 모델: 논리적 구조가 트리 형태로 구성, 상하관계 존재
  • 네트워크 데이터 모델: 논리적 구조가 그래프 형태로 구성된 모델, 다대다 관계

관계 데이터 모델

  • 구성요소
    ▶ 릴레이션: 행과 열로 구성된 테이블
    ▶ 튜플: 행
    ▶ 속성: 열
    ▶ 카디널리티: 튜플(행)의 수
    ▶ 차수: 애트리뷰트(열)의 수
    ▶ 스키마: 구조, 제약조건의 정보를 담고 있는 기본적인 구조
    ▶ 인스턴스: 정의된 스키마에 따라 테이블에 실제 저장된 데이터의 집합

  • 관계 대수(절자적 언어)
    ▶ 일반 집합 연산자
    합집합()/교집합()/차집합(-)/카티션 프로덕트(x)
    ▶ 순수 관계 연산자
    셀렉트(σ)/프로젝트(∏)/조인(⋈)/디비전(÷)

  • 관계 해석(비절차적 언어)

논리 데이터 모델링 속성(*개속관)

  • 개체
  • 속성
  • 관계

이상현상(Anomaly) (*삽삭갱)
: 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

  • 삽입 이상: 불필요한 세부정보를 입력해야하는 경우
  • 삭제 이상: 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상: 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

함수 종속(FD): 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건

  • 부분 함수 종속(Partial)
  • 완전 함수 종속(Full)
  • 이행 함수 종속(Transitive)

정규화(Normalization) (*원부이결다조)
: 데이터의 중복성을 제거하여 이상현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

  • 1정규형(1NF): 원자값으로 구성
  • 2정규형(2NF): 부분 함수 종속 제거
  • 3정규형(3NF): 이행함수 종속 제거
  • 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF): 다치(다중) 값 종속 제거
  • 5정규형(5NF): 조인 종속 제거

반 정규화(De-Normalization)
: 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 기법(비정규화, 역정규화)

  1. 물리 데이터 모델
    데이터 베이스 무결성
    : 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질

데이터베이스 무결성 종류(*개참속사키)

  • 개체 무결성: 같은 기본키 가질수 없음, 속성이 널 일수 없음
  • 참조 무결성: 참조할때 다른 개체의 기본키에 해당하는 값이 기본키나 널이어야함
  • 속성 무결성: 속성의 값은 지정된 규칙을 준수해야함
  • 사용자 정의 무결성: 의미적 요구사항을 준수해야하는 제약 조건
  • 키 무결성: 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할수 없음

키(Key) 특성

  • 유일성(Uniqueness): 식별자에 의해 엔터티 내에 모든 튜플들을 유일하게 구분하는 특성
  • 최소성(Minimality): 최소한의 속성으로 식별자를 구성하는 특성

키 종류

  • 기본 키
  • 대체 키
  • 후보 키
  • 슈퍼 키(유일성은 만족하지만 최소성은 만족하지 못하는 키)
  • 외래 키

인덱스: 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조

파티셔닝(Partitioning): 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
(*레해리컴라)

  • 레인지 파티셔닝: 연속적인 숫자나 날짜를 기준으로 하는 기법
  • 해시 파티셔닝: 해시 함수 값에 의한 기법
  • 리스트 파티셔닝: 데이터에 대한 명시적 제어가 가능한 기법
  • 컴포지트 파티셔닝: 위의 3개 중 2개 이상의 파티셔닝 결합
  • 라운로빈(RR)

데이터베이스(Database): 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합

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

데이터베이스 특성

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

DBMS(Database Management System): 데이터 관리의 복잡성을 해결하고 동시에 다양한 기능들을 지원하는 소프트웨어

데이터 웨어하우스(DW;Data Warehouse): 사용자의 의사결정에 도움을 주기 위하여, 기간 시스템의 데이터베이스에 축적된 데이터를 공통 형식으로 변환해서 관리하는 데이터베이스

  • 주제 지향적
  • 통합적
  • 시 계열적
  • 비휘발적

데이터 마트(DM;Data Mart): 전사적으로 구축된 데이터 속의 특정 주제,부서 중심으로 구축된 소규모 단위 주제의 데이터 웨어하우스

빅데이터의 특성(3V)
Volume/Variety/Velocity

하둡(Hadoop)
: 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼, 자바 소프트웨어 프레임워크

  • ETL
  • 플럼
  • 스쿱
  • 스크래파이
  • HDFS: 하둡 분산 파일 시스템
  • 맵 리듀스: 구글에서 대용량으로 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년에 발표한 소프트웨어 프레임워크

NoSQL(Not Only SQL): 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며 수평적으로 확장이 가능한 DBMS
특성(BASE)

  • Basically Available
  • Soft-state
  • Eventually Consistency
    유형(*키걸도그)
  • Key-value Store: 유니크 키에 하나의 벨류를 가지고 있는 형태
  • Column Family Data Store:키 안에 (컬럼,벨류)조합으로 여러개 필드 갖는 디비
  • Document Store:벨류의 데이터 타입이 Document라는 타입을 사용 하는 디비
  • Graph Store: 시멘틱 웹과 온톨로지 분야에서 활용되는 그래프를 데이터로 표현

데이터 마이닝(Data Mining): 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통게적 규칙이나 패턴을 찾아내는 기술
주요 기법(*분연연데)

  • 분류 규칙
  • 연관 규칙
  • 연속 규칙
  • 데이터 군집화

관련 용어

  • 텍스트 마이닝
  • 웹 마이닝
  • 다크 데이터
  • 메타 데이터
  • 디지털 아카이빙
  • 마이 데이터

<통합 구현>

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

  • 간접 연계 방식
  • 직접 연계 방식

주요 연계 기술

  • 간접 연계 방식
    ▶ EAI: 기업에서 운영되는 플랫폼 간의 정보 전달, 통합을 가능하게 해주는 솔루션
    ▶ ESB: 기업에서 운영되는 하나의 시스템으로 관리 운영할수 있도록 서비스 중심의 통합
    ▶ 웹 서비스: WSDL과 SOAP프로토콜을 이용한 시스템 간 연계
    ▶ 소켓: 소켓을 생성하여 포트를 할당하고 통신하는 기술
  • 직접 연계 방식
    ▶ DB 링크: DB링크 객체를 이용하는 기술
    ▶ DB 연결: DB커넥션 풀을 생성하고 연결하는 기술
    ▶ API/Open API
    ▶ JDBC: JDBC드라이버를 이용하여 송신 시스템 DB와 연결하는 기술
    ▶ 하이퍼링크: 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동

EAI(Enterprise Application Integration): 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션(*포허메하)

  • 포인트 투 포인트(Poin-to-Point): 1:1 단순 통합방법
  • 허브 앤 스포크(Hub&Spoke): 허스 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
  • 메시지 버스(Messeage Bus): 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식
  • 하이브리드(Hybrid): 그룹 내는 허브앤스포크방식 그룹 간에는 메시지 버스 방식을 사용

ESB(Enterprise Service Bus)
: 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할수 있도록 서비스 중심의 통합을 지향하는 아키텍처
애플리케이션의 통합을 느슨한 결합 방식으로 지원하는 방식이다.

웹 서비스(Web Service)
: 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식

  • SOAP(Simple Object Access Protocol): HTTP, HTTPS, SMTP등을 사용하여 XML기반의 메시지를 네트워크 상태에서 교환하는 프로토콜, 보통의 경우 RPC 사용
  • WSDL(Web Service Description Language): 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식의 언어이다.
  • UDDI(Universal Description, Discovery and Integration): WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준이다.

웹 서비스 관련 용어

  • HTTP: HTML문서를 송수신하기 위한 규칙들을 정의, GET,POST,PUT 등의 방식을 사용
  • 하이퍼텍스트: 링크를 통해 서로 연결된 네트워크처럼 구성된 문서
  • HTML: 인터넷 웹 문서를 표현하는 표준화된 마크업 언어

IPC방식(Inter-Process communication)
: 운영체제에서 프로세스 간 서로 데이터를 주고받기 위한 통신기술

  • 메시지 큐
  • 공유 메모리
  • 소켓
  • 세마포어

LOD(Linked open Data)
: 웹상에 존재하는 데이터를 개별 URI로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 아키텍처

<인터페이스 구현>
JSON(Javascript Object Notation)
: 속성- 값 쌍 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

  • AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷

XML(Extensible Markup Language)
: HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 담점을 개선한 마크업 언어

AJAX(Asynchronous Javascript And XML)
: 자바스크립트를 사용하여 웹 서버와 클라이언트간 비동기적으로 XML데이터를 교환하고 조작하기 위한 웹 기술
브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 로드하지 않고 필요한 일부 페이지의 데이터만을 로드하는 기법
주요 기술

  • XMLHttpRequest
  • JavaScript
  • XML
  • DOM: XML문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
  • XSLT: XML문서를 다른 XML문서로 변환하는데 사용하는 XML기반 언어
  • HTML
  • CSS

REST(Representational State Transfer)
: 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP메서드로 주고받는 웹 아키텍처(리소스/메서드/메시지)

  • 행위에 대한 메서드(CRUD)
    ▶ POST(Create)
    ▶ GET(Read)
    ▶ PUT(Update)
    ▶ DELETE(Delete)
profile
Action over stagnation

0개의 댓글