정보처리기사 실기 POINT NOTE

Alpha, Orderly·2024년 5월 27일
0

정처기

목록 보기
7/7

PART 01 : 요구사항 확인

  • 시스템이란 목적을 달성하기 위해 구성요소들이 상호유기적으로 구성된 집합체
  • 워터폴 모형 === 폭포수 모형

현행 시스템 파악

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

나선형 모형

  • 계획수립 > 위험분석 > 개발 > 고객 평가 의 반복

애자일 프로세스

  • 프로젝트의 생명주기 동안 반복적인 개발을 촉진한다.

익스트림 프로그래밍

  • 켄트 벡이 제안한 소프트웨어 개발법

RAD 모형

  • 매우 짧은 개발주기를 강조하는 점진적 소프트웨어 개발 방식

프로토타이핑 모형

  • 빠른 시제품을 완성하기 위해 효율성과 무관한 알고리즘 사용
  • 내부적 구조는 크게 상관하지 않음
  1. 요구사항 분석
  2. 신속한 설계
  3. 프로토타입 작성
  4. 사용자 평가
  5. 프로토타입 정제
  6. 공학적 제품화

개발비용 산정

  • 시스템 정의 및 개발 전략 수립 단계에서 개괄적으로 이루어짐

WBS

  • 프로젝트 진행에서 일어나는 모든 작업을 찾기위해 프로젝트 목표를 작은 중간 목표로 세분화

PUTNAM 모형

  • Putnam 생명주기 예측 모형 > Reyleigh-Norden 곡선에 기초해 개발비용을 산정한다.

스크럼

  • 30일마다 동작 가능한 제품을 제공하는 스프린트 중심
  • 매일 정해진 시간, 정해진 장소에서 짧은 시간의 개발을 함

하향식 개발비용 산정

  • 전문가 감정
    • 2명이상의 전문가에게 의뢰
  • 델파이 방식
    • 조정자를 통해 여러 전문가의 의견일치

COCOMO 모형

  • 과거 프로젝트들을 분석한 공식으로 현재 프로젝트의 특성을 고려하는 개발비용 산정 방식
  • Basic COCOMO
    • 소프트웨어의 크기와 개발모드에 의해 구한다.
  • Intermediate COCOMO
    • Basic 의 확장, 14개의 비용요소를 가미해 가중치로 구한다.
  • Detailed COCOMO
    • 시스템을 모듈 서브시스템으로 세분화 한 후 Intermediate로 구한다.

COCOMO Line

  • 5만줄 이하 : Organic
  • 5만 ~ 30만 : Semi-detached
  • 30만 이상 : Embedded

요구사항

도출

  • 요구사항의 수집

분석

  • 요구사항을 명확히 규정, 시스템의 특성을 반영. 사용자의 뜻을 이해하고 업무를 분석

명세

  • 분석된 요구사항의 문서화

검증

  • 명세화된 요구사항 검증

유지보수

  • 신규 발생/변경 요구사항의 체계적 관리

기능요구

  • 사용자가 필요로 하는 정보처리 능력에 대한것.
  • 입출력에 대한 요구

DFD - Data Flow Diagram - 자료 흐름도

  • 보편적으로 사용되는 시스템 모델링 도구, 기능 중심의 시스템을 모델링한다.

DD - Data Dictionary - 자료사전

  • 개발과 연관된 자료요소들의 집합
  • 저장내용/중간계산 등에 관련된 용어를 이해할수 있는 정의의

Mini-Spec

  • 프로세스 명세서를 DeMacro가 부르던 명칭

개념 모델

  • 문제 도메인의 엔티티와 그들의 관계 및 종속성 반영

UML

  • 객체지향 소프트웨어를 모델링하는 표준
  • 심벌,그림 이용해 객체지향 개념을 나타낸다.

클래스 다이어그램

  • 객체, 클래스 속성, 오퍼레이션 및 연관관계로 시스템을 나타냄

요구사항의 어려움

대화/의사소통 어려움

  • 다이어그램/프로토타이핑 사용

복잡한 시스템

  • 구조적/객체지향적 분석

요구의 변화

  • 요구수용의 통제 강화

요구명세 어려움

  • 요구분석 표기법 강화, 자동화 도구 사용

럼바우의 OMT

  1. 객체 모델링 - 클래스 다이어그램
  2. 동적 모델링 - 상태 다이어그램
  3. 기능 모델링 - DFD

Booch OOAD

  • 분석보다는 설계에 많은 중점을 두고 구성되는 방법

구조적 다이어그램

  • Class Diagram
  • Component Diagram

행위 다이어그램

  • Use case Diagram
  • Sequence Diagram
  • State Diagram

유스케이스 다이어그램

INCLUDE - 포함

  • 하나의 유스케이스가 실행되기 위해 다른 유스케이스가 반드시 실행되어야 한다.
  • <<include>>

EXTEND - 확장

  • 예외사항을 나타내는 관계
  • 유스케이스가 특정 조건을 만족할 경우 실행되는 부가적인 기능

집합 - 복합

집합 - Aggregation

  • 구성 요소가 없어도 전체 개념이 존재할수 있다.

복합 - Composition

  • 부분은 하나의 전체에만 포함된다.
  • 전체가 없으면 구성은 재사용이 불가능하다.

eXetreme Programming

XP 5대 원칙

  • 존중
  • 단순성
  • 의사소통
  • 피드백
  • 용기

Coad/Yourdon 방법

  • ER Diagram 을 사용해 객체의 행위 모델링

PART 2 데이터베이스

세그먼트

  • 테이블 스페이스 내 특정 유형의 논리적 저장 구조
  • 테이블, 인덱스 등의 오브젝트가 포함됨

ER 모델

  • 개체타입과 관계타입을 기본 개념으로 현실세계를 개념적으로 표현한다.

튜플의 유일성

  • 릴레이션의 튜플들은 중복되지 않고 모두 상이하다.

데이터 모델링

요구조건 분석

  • 사용자가 원하는 데이터베이스의 용도를 찾는다.

복합 속성

  • 독립적인 의미를 가지는 여러 기본 속성으로 구성된 속성

약한 개체 타입

  • 자신의 키 속성을 가질수 없는 타입

논리적 데이터 모델

  • 관계 데이터 모델
  • 네트워크 데이터 모델
  • 계층 데이터 모델

물리적 데이터 모델링

  • 논리 데이터 모델을 사용하기 위해 데이터 베이스 저장구조로 변환하는 과정
  • 내부 저장장치 구조와 접근 경로를 설계한다.

스키마

  • 데이터베이스의 구조(개체, 속성, 관계) 에 대한 정의와 이에 대한 제약조건을 기술한것

데이터 모델의 구성요소

구조 ( Structure )

  • 개체 타입과 관계

연산 ( Operation )

  • 동적 성질로 인스턴스에 적용되는 연산

제약조건 ( Constraint )

  • 데이터에 대한 논리적 제약

엔티티/개체

  • 유형/무형의 대상으로 존재하며 서로 구별이 됨
  • 하나이상의 속성으로 구성된다.

설명 속성

  • 관계에 있는 속성

SQL

  • IBM에서 개발한 데이터베이스 언어

Stored Function / 저장된 함수

  • 특정 작업을 수행하는 PL/SQL 블록
  • 구성이 프로시저와 유사하고 IN 패러미터만 사용 가능

정규화

  • 이상현상의 해결을 위해 속성간 종속관계를 분석하고 여러개의 릴레이션으로 분해한다.

SQL 소스코드 인스펙션 순서

  1. Planning - 계획
  2. Overview - 교육
  3. Preparation - 사전 검토
  4. Meeting - 인스펙션 회의
  5. Rework - 수정
  6. Following - 후속 조치

Disjoint

  • 개체를 여러 개념으로 분리할때 사용한다.
  • Ex. 학생 > 학부생, 대학원생

ORM

  • 객체와 관계형 데이터베이스와 데이터를 자동의 매핑한다.

PART 3 통합구현

통합구현

  • 요구사항에 맞게 중계,송신,수신 시스템간의 관계를 적절히 구현하는것
  • 통합구현을 위해 연계 시스템 아키텍쳐 설계
  • 연계 데이터를 정의하기 위해 사용자 요구사항을 분석한다.

공통모듈

  • 전체 시스템 설계시 각각 서브시스템에 공통으로 사용되는 모듈을 하나로 묶어놓은 소프트웨어 라이브러리

연계 데이터

  • 의미를 갖는 속성, 길이, 타입을 포함해 송수신 되는 데이터
  • 형식 : DB 테이블, DB 파일 ( txt, xml )

연계 데이터 식별/표준화 절차

  1. 연계 범위 및 항목 정의
  2. 연계 코드 매핑 및 정의
  3. 변경된 데이터 구분 방식 정의
  4. 데이터 연계 방식 정의

식별자

  • 송신된 정보가 수신 시스템의 어떤 데이터에 해당하는지 추출 위해
    수신 시스템의 연계 정보에 송신 시스템의 식별키를 추가 밎 관리

연계 정의서

  • 연계 항목, 연계 데이터 타입, 길이 구성 및 형식 정의 결과물

응집도, 결합도

응집도 - 한 모듈 내부의 기능의 유사도 - 높을수록 좋다

결합도 - 여러 모듈간 기능의 결합도 - 낮을수록 좋다.

연계 메커니즘

  • 데이터를 생성해 전송하는 송신 시스템과 수신해 운영 DB에 반영하는 수신 시스템으로 구성된다.

직접 연계 방식

  • 중간 매개체 없이 직접 연계
  • DB Link
  • JDBC
  • API

간접 연계 방식

  • 중간 매개체를 이용해 연계

ESB - Enterprise Service Bus

  • 중앙집중식 아키텍쳐
  • 애플리케이션보다 서비스 중심의 통합을 지향하는 아키텍처
  • 고객의 서비스 요청에 따라 원하는 서비스를 제공한다.

형상관리

  • 소프트웨어에 대한 변경을 철저히 관리하기 위해 개발된 일련의 활동
  • 분석서
  • 설계서

베이스라인

  • 정식으로 검토되고 합의된 명세서나 제품
  • 정식 변경 통제 절차를 통해서만 변경 가능하다.

형상 감사

  • 변경이 적절하게 시행되었는지에 대한 객관적인 검증과 확인

디자인 패턴

  • 객체지향 소프트웨어 디자인 과정에서 자주 접하는 디자인 문제의 해법

Facade Pattern

  • 일련의 클래스에 대한 간단한 인터페이스를 제공한다.

객체 생성 패턴

  • Factory, Builder, Singleton

구조 개선 패턴

  • Adapter, Bridge, Proxy

역공학

처리 역공학

  • 각 컴포넌트에 대한 처리 설명서를 작성한다.

서버 프로그램 구현

개발 언어 선정 기준

  • 범용성 : 과거의 실적, 이력이 존재하고 광범위하게 이용중이다.
  • 적정성 : 대상 업무 성격, 목적에 적합해야 한다.
  • 이식성 : 일반적인 PC 및 OS에 개발환경이 설치 가능해야 한다.

형상관리 도구

  • 개발자들이 작성한 소스 및 리소스등의 산출물에 대한 버전 관리 도구

개발환경 구축

  • 목적과 구축 설계에 대한 명확한 이해 필요
  • 용도에 맞는 하드웨어/소프트웨어 선정

웹서버

  • HTML, CSS, 이미지 등의 정적 파일을 웹브라우저에 제공한다.

빌드 도구

  • 개발자가 작성한 소스에 대한 빌드 및 배포를 지원한다.
  • 사용되는 구성요소와 라이브러리들에 대한 의존성 관리를 지원한다.

환경

  • 개발 하드웨어 환경과 운영환경은 유사하게 구성한다.

JVM

  • 자바 응용 프로그램을 기동하기 위한 인터프리터 환경

요구사항 관리도구

  • 목표 시스템의 기능과 제약조건 등의 요구사항을 분석, 수집, 추적하는 소프트웨어

테스트 케이스

  • 입력 명세
  • 출력 명세
  • 환경 설정
  • 식별자

테스트 프로세스

  1. 계획 및 제어 : 필요한 활동을 계획, 및 이행을 확인
  2. 분석 및 설계 : 추상적인 테스트 목적을 구체화
  3. 구현 및 실행 : 테스트 케이스를 조합하고 필요한 정보를 포함
  4. 평가 : 테스트가 목표에 맞게 수행되었는지 확인
  5. 완료 : 테스트 수행시 명시한 조건들을 수집, 발생한 사항과 경험을 축적한다.

테스트 프로세스

  • 테스트 수행과 관련 된 활동들이 의도된 목적과 조건을 달성할수 있게 돕는다.

통신 응집도

  • 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동이 모여있다.

HIPO

•	기능적인 측면을 우선시하여 시스템을 분석하고 설계한다.
•	계층적 구조를 통해 기능 간의 관계를 명확하게 표현한다.
•	입력, 처리, 출력을 정의하여 기능의 흐름을 쉽게 파악한다.

가시적 도표

  • 전체적인 흐름을 계층적으로

총체적 도표

  • 입력, 처리, 출력에 대해 개략적으로 표현

세부적 도표

  • 총체적 도표를 모듈별 입력, 처리, 출력 도표로 표현

프로세스

  • 개인이나 조직이 한개 이상의 정보자원 입력을 통해 가치 있는 산출물을 제공하는 활동의 집합.

DAO

  • 특정 타입의 데이터베이스 혹은 메커니즘에 추상적인 인터페이스를 제공한다.

NS Chart

  • Box Diagram
  • 논리 기술에 중점을 둔 도형식 표현

살충제 패러독스

  • 동일한 테스트 케이스로 반복 실행시 더이상 새로운 결함을 발견할수 없기에 주기적으로 테스트 케이스를 점검하고 개선해야 한다.

배치 프로그램

  • 사용자와의 상호작용 없이 일련의 작업을 작업 단위로 묶어 반복 수행 / 일괄 처리

배치 프로그램 안정성

  • 어떤 문제가 어디에서 발생되었는ㄴ지 추적 할수 있어야 한다는 특성

배치 스케쥴러

  • 일괄처리를 위해 주기적으로 발생하는 작업을 지원하는 도구

프레임워크

  • 모듈화
  • 재사용성
  • 확장성 : 다형성을 통해 인터페이스를 확장할수 있다.
  • 제어의 역흐름

스탬프 결합도

  • 모듈간 인터페이스로 배열, 객체, 구조체가 전달된다.

인터페이스 구현

인터페이스

  • 내부나 외부의 모듈간 연계 기능
  • 송신, 수신, 중계 시스템이 필요하다.

인터페이스 설계서

  • 시스템 간 주고받는 데이터 내역, 송수신 주체, 인터페이스 유형을 작성

데이터 표준

  • 데이터 저장, 처리 및 인터페이스 전달시 전달되는 데이터 형식과 명칭

도메인

  • 용어 속성의 특징 및 유형을 분류한 번호 코드 등의 데이터 유형

EAI

  • 수많은 애플리케이션을 통합하기 위한 정보교환 통합 시스템

EAI 통합 절차

  • 데이터 > 애플리케이션 > 비즈니스 로직 > 사용자 인터페이스

EAI Platform

  • 데이터 전송을 보장하는 메시지 큐와 트랜잭션 미들웨어

APP 접근 기능

  • EAI 주요 기능, 패키지 APP 또는 메인프레임과 같은 이기종 시스템과의 접속을 위한 기능

Business Workflow

  • 미리 정의된 기업의 워크플로우에 따라 업무를 처리한다.

Message Bus

  • 버스를 사용해 병목현상 발생가능
  • 애플리케이션 사이에 미들웨어 두어 처리

Hub & Spoke

  • 모든 데이터가 허브를 통해 전송된다.
  • 데이터 전송 보장 및 유지보수 비용 절감

FEP

  • 금융권 시스템과 대외 기간관 인터페이스를 통합, 관리하는 솔루션

SOAP

  • XML 기반의 메시지를 네트워크에서 신뢰성 있게 전송한다.

XML

  • SGML 의 복잡한 단점을 개선한 마크업 언어

VPN

  • 인터넷 망 상에서 암호화된 통신 환경의 구성이 가능하다.

STAF

  • 서비스 호출, 컴포넌트 재사용 등을 지원하는 테스트 프레임워크

APM

  • 구현된 인터페이스가 외부 시스템과 연결 모듈간에 정상 작동 하는지 감시하는 도구

xUnit

  • 여러 언어를 지원하는 단위 테스트 프레임워크

RSS

  • 미리 서비스를 구독 요청한 클라이언트에게 정기적으로 메시지를 제공하는 기술

테스트 시나리오

  • 실제 업무 또는 시스템 내 프로그램 처리절차에 따라 작성, 각 절차의 작업은 테스트 케이스로 작성된다.

비대칭키 암호화 알고리즘

  • RSA, ECC

MCI - Multi Channel Interface

  • 다양한 고객 접점 채널과 기업 내부 시스템 간 인터페이스를 관리하는 솔루션

화면 설계

소프트웨어 아키텍처

  • 개발하고자 하는 소프트웨어의 사전 작업 통해 소프트웨어 개발을 쉽게 하기 위한 기본 틀

UI 설계 원칙

  • 직관성 : 누구나 쉽게 이해 및 사용
  • 학습성 : 초보와 숙련자 모드가 쉽게 배우고 사용
  • 유연성 : 사용자의 인터랙션 최대한 포용 및 실수 방지하도록 제작
  • 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될수 있도록 제작

기능성

  • 실제 수향 결과와 품질 요구사항과의 차이를 분석한다.

디지털 프로토타입

  • 컴퓨터를 사용해 작성하는 프로토타입의 종류
  • Adobe XD, HTML, 비지오 등을 사용

HCI - Human Computer Interaction

  • 설계 모형, 사용자 모형, 시스템 인식, 시스템 이미지 로 구성.

감성공학

  • 인간의 감성을 과학적 측정, 공학적 기술력을 결합해 새로운 제품을 만든다.

UI 설계 지침

가시성

  • 주요 기능을 메인에 노출해 화면 내용을 쉽게 파악

단순성

  • 조작법이 단순해 간단하게 작동할수 있어야 한다.

일관성

  • 버튼이나 조작 방법을 모든 화면에서 동일하게 한다.

유용성

  • 사용자가 원하는 목표를 얼마나 효과적으로 달성할수 있는지에 대한 척도

UI 상세 설계

공통 단위 태스크 흐름

  • 공통으로 나타나는 삭제, 검색 등의 인터랙션을 설명한것

UI 설계 도구

스토리보드

  • 정책, 프로세스, 와이어프레임, 디스크립션 등 서비스 구축 위한 모든 정보가 담겨이다.

파워 목업, 발사믹 목업

  • 화면 설계 툴

기본 인터랙션 규칙

  • 터치 제스처 등의 공통적으로 사용되는 조작 방법 등에 대해 기술

UI 시나리오

완전성

  • 최대한 빠짐없이 기술하는것

추적 용이성

  • 변경사항이 왜 발생했는지 추적이 쉬워야 함

와이어프레임

  • 화면단위 레이아웃 설계
  • 레이아웃의 협의 또는 서비스의 간략한 흐름을 공유하기 위해 사용한다
  • 설명, 기획의도, 요구사항이 있으면 이건 스토리보드이지 와이어 프레임이 아니다!

J Foley 인터페이스 4단계 모형

  1. 개념 단계 - 대화형 시스템에 대한 심리적 모형
  2. 의미 단계 - 입력 명령과 출력 결과가 사용자에게 주는 의미
  3. 문구 단계 - 명령문을 이루는 단어들의 정의
  4. 어휘 단계 - 특정 명령 문구를 형성하는 절차

NUI / OUI

NUI - 사용자의 말과 행동

OUI - 존재하는 모든 사물을 입출력 장치로

UI 프로토타입 장점

  • 오류를 사전에 발견
  • 사용자 설득과 이해가 쉽다
  • 개발시간이 감소한다.

테스트

화이트박스 테스트

  • 프로그램의 모든 논리적 구조 파악 및 경로들의 복잡도를 계산해 테스트 사례를 만든다.

기초 경로 테스트

  • 대표적인 화이트박스 기법, 논리흐름도를 작성해 논리복잡도를 계산한다.
  • Edge - Node + 2 로 복잡도를 계산할수 있다.

사전테스트 조건

  • 테스트 수행에 필요한 조건 또는 실행 환경

STUB

  • 입출력만 흉내내는 무기능 모듈

테스트 케이스 작성 절차

  1. 참조문서 수집
  2. 테스트 케이스 작성
  3. 내부 검토
  4. 요구사항 대비 커버리지 분석
  5. 승인

결함관리

  • 테스트 수행 후 재발생을 방지하기 위해 결함을 추적하고 관리한다.

테스트 자동화 도구

  • 테스트에 포함되는 여러 과정을 자동으로 지원
  • 생산성 및 일관성을 향상시킨다.

통합 테스트

  • 모듈을 어떤 순서로 결합해 테스트 하냐에 따라 하향, 상향, 빅뱅, 연쇄식이 있다.

회귀 테스트

  • 컴포넌트에 초점, 새로운 결함 발견에 대비해 이미 실시한 실험의 일부 혹은 전부를 재실시한다.

상향식 테스트 순서

  1. 하위 모듈을 클러스터로 조합
  2. 각 클러스터 테스트를 위한 드라이버 개발
  3. 각 클러스터 테스으
  4. 드라이버 제거하고 클러스터를 위로 이동
  5. 최종 드라이버 대신 주 프로그램 대체하고 소프트웨어 구조 완성

드라이버

  • 상향식 통합 테스트에서 검사 제어 소프트웨어로 사용

성능 측정

  • 처리량
  • 응답시간
  • 경과시간/반환시간
  • 자원 사용률

오류부재의 궤변

  • 요구사항을 만족하지 못하는 오류를 발견하고 제거해도 품질이 높다고는 말할수 없다.

정적 테스트

  • 인스펙션, 워크스루

SQL

RESTRICTED

  • DROP 시 참조되는 요소가 있으면 삭제하지 않는다.
  • 맨 뒤에 붙힘

동적 SQL

  • PREPARE, EXECUTE 가 가장 중요하다.

트랜잭션 장애

  • 내부 오류, 입력데이터 불량, 자원 과다 사용 등으로 정상적인 실행을 할수 없는 상태

트리거 구성 요소

  • 트리거가 실행될 조건, 이벤트, 실행될 내용

인덱스

  • 데이터베이스에서 신속한 탐색을 위해 만든 데이터 구조

기본 인덱스

  • 기본 키의 인덱스

클러스터링 인덱스

  • 범위 질의에 유용
  • 범위의 시작값에 해당하는 인덱스 엔트리를 먼저 찾음

다단계 인덱스

  • 최상위 단계 인덱스를 마스터 인덱스로 부름
  • 한 블록으로 구성되어 주기억 장치에 상주할수 있다.

연관규칙

  • 지지도와 신뢰도가 같이 수반되어야 연관성 법칙의 의미가 있다.

데이터 마이닝

  • 대량의 데이터에서 관련 정보를 찾는다.

뷰의 장점

  • 논리적 독립성 제공
  • 데이터 접근 제어로 보안성 제공

커서

  • 테이블의 한 튜플을 호스트 변수로 가져오는것
    • FETCH

ROLLBACK

  • 데이터의 변경 사항을 이전 상태로 되돌린다.
  • 커밋 이후 변경사항이 되돌려진다.

소프트웨어 개발보안

자산

  • 조직이 보호해야 할 대상을 말한다.

위협

  • 자산의 손실을 초래할수 있는 잠재적 원인/행위자

위험

  • 원하지 않는 사건이 발생해 손실 또는 부정적 영향을 미칠 가능성

취약점

  • 자산의 잠재적인 속성, 위협의 원인이 됨

개체 인증

  • 개체의 신원을 증명하기 위한 일련의 과정

DAC - 임의적 접근 통제

  • 주체나 주체가 속한 그룹의 식별자에 근거해 객체의 접근을 제한

MAC - 강제적 접근 통제

  • 주체가 객체 접근시 규정된 규칙과 비교해 접근권한 부여

RBAC - 역할 기반 접근 통제

  • 주체와 객체 사이에 역할 부여한다.
  • 주체의 인사이동이 잦을때 적합하다.

벨-라파듈라 모델

  • 군사용 모안 구조의 요구사항 충족을 위해 설계, 기밀성에 초점

전송계층

  • 수신측에 전달되는 데이터에 오류가 없고 순서가 보장되게 한다.

IPSEC

  • 두컴퓨터 사이에 암호화된 통신을 제공한다.

Land 공격

  • 패킷 전송시 출발지 IP와 목적지 IP를 같게 만들어 보낸다.

Ping of Death 공격

  • Ping을 최대한 길게 보내 수백개로 쪼개지는것을 이용한다.

Teardrop 공격

  • 패킷을 보낼때 Offset을 겹치게 시퀀스 넘버를 속인다.

Syn Flooding

  • 대상 시스템에 연속적인 SYN 패킷을 보낸다.

Smurf 공격

  • ICMP 이용, 다이렉트 브로드캐스트를 막아 방어한다.

참조 모니터

  • 보안 커널 데이터베이스를 참조해 객체에 대한 접근 허가 여부 결정

SUID

  • 일반 사용자가 소유자의 권한으로 실행 가능하도록 한다.

세션 하이재킹

  • TCP 통신 중간에 RST 패킷 전송 및 시퀀스 넘버를 조작해 연결을 가로챈다.

IPS

  • 패킷을 버리거나 트래픽 감지해 방어하는 기능을 갖췄다.
  • 모든 포트를 모니터하고 라우터나 방화벽에 적합한 명령어를 보낸다.

차단

  • 정보의 송수신을 원할하게 하지 못하도록 막는 행위

BCP

  • 재난 발생시 비즈니스의 연속성을 유지하기 위한 계획
  • 정해진 절차에 따라 이전의 임무로 복귀하기 위함

생체 인식 기술 특징

  • 보편성 : 누구에게나 있다.
  • 유일성 : 개인을 구별할수 있는 고유한 것
  • 영속성 : 시간과 환경에도 변하지 않는다.
  • 정량성 : 획득이 용이하고 정량화 될수 있어야 한다.

사회공학적 공격

  • 사람의 심리적 취약성을 이용해 비밀 정보 취득 및 컴퓨터 접근 권한을 획득한다.

DES

  • 페이스텔 구조를 사용한다.

IDS

  • 대상 시스템의 인가되지 않은/비정상적인 행위를 탐지
  • 불법 행위를 구별하여 침입을 차단한다.

프로그래밍 언어론

구조적 프로그래밍

  • GOTO 등을 사용하지 않는것

다형성

  • 같은 메시지에 대해 각 클래스가 가진 고유한 방법으로 응답하는것이다.
  • 오버라이딩과 오버로딩이 해당된다.

추상화

  • 속성의 일부분을 가지고 주어진 작업이나 객체들을 필요한 정도로 묘사한다.

Escape sequence

  • 역슬래시와 특정 기호로 하나의 문자 표현

변수

  • 기억장치의 한 장소를 추상화, 값 변경 가능

JAVA switch 문

  • case에 break 가 없으면 다음 case도 실행된다.

JSP

  • 서블릿 기술 확장해 웹기술로

PHP

  • HTML 생성 스크립팅 언어
  • 웹서버에서 해석해서 전달

프로그래밍 언어

  • 컴퓨터 시스템을 동작시키는 프로그램 작성을 위한 언어.

인공지능 프로그래밍 언어

  • LISP, Prolog
  • 파이썬 아냐??

선행/후행

  • a++ + ++a
  • a가 2일때
  • a++ 에서 a가 2로 쓰이고 a에 1증가 ( 3 )
  • ++a 에서 a가 1 증가 ( 4 ) 해 연산에 사용된다.
char c[] = "abc", *cp;
char c[] = "abc";
char* cp;
  • sizeof는 널문자를 포함한다.

strcmp(a, b)

  • a가 사전순으로 더 뒤에 있으면 1
  • b가 사전순으로 더 뒤에 있으면 -1

자바 String.substring(a, b)

  • a 인덱스부터 b인덱스 앞까지 부분 문자열
String test = "abcde";
System.out.println(test.substring(2, 4));
// 2~3 index > cd


자바 기본값

  • 변수를 선언하고 초기화 하지 않았을 경우
  • boolean : false
  • int : 0
  • float : 0
  • char : 공란
  • 객체 : null

응용 SW 기초 기술

제어 프로그램

  • 컴퓨터 전체의 동작 상태를 감시 및 제어한다.

SCAN

  • SSTF 의 탐색 시간 편차를 해소 하기 위한 기법, 대부분이 사용
  • 한쪽 방향으로 쭉 가면서 처리, 또 반대방향으로 쭉 가면서 처리

다중 프로그래밍 시스템

  • 독립된 두개의 프로그램이 동시에 수행되도록 자원을 적절한 시간동안 쓰게 한다.

SGID

  • 일반 사용자가 소유 그룹 권한으로 실행 가능케 한다.

실시간 처리 시스템

  • 운영체제 종류중 지정된 시간 내에 요구된 작업을 처리하는것

교착상태 조건

  • 상호배제
  • 점유대기
  • 비선점
  • 환형대기

선점 스케쥴링

  • SRT, RR

비선점 스케쥴링

  • FCFS, SJF

데이터베이스

  • 운영 데이터의 집합

개념 스키마

  • 논리적 관점에서 본 전체적 데이터 구조

제어어

  • 데이터 보안, 무결성 회복, 제어어 에 사용한다.

데이터 사전

  • 시스템이 필요로 하는 스키마와 여러 객체를 포함하는 시스템 데이터베이스

관계 데이터 모델

  • 표 데이터 모델, 구조가 단순해 쓰기 편하다

데이터 모델

  • 현실 세계 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술한다.

관계

  • 인스턴스 사이의 매핑

데이터베이스 설계

  • 요구조건에서 데이터베이스의 구조를 도출한다.

개념적 설계

  • 요구사항을 쉬운 형식으로 간단하게 기술

데이터 웨어하우스

  • 의사결정 지원을 위한 주제지향, 통합 영속적이고 시간에 따라 변하는 값이 유지된다.

OLAP

  • 대규모 다차원 데이터를 동적으로 온라인에서 분석, 통합, 보고서 생성

데이터베이스의 특징

  • 실시간 접근성
  • 계속적 변화
  • 동시 공유
  • 내용에 따른 참조

데이터 독립성

  • 데이터 구조가 변경되어도 항목을 쓰는 프로그램만 변경하면 된다.

네트워크 데이터 모델

  • 논리적 데이터 모델 중 하나, 그래프로 표기된다.


데이터

  • 측정을 통해 수집한 사실, 개념, 명령

패킷 교환망

  • 전송로가 전용으로 할당되지 않아 데이터를 패킷 조각으로 나누어 전송한다.

버스형 네트워크

  • 한개의 통신회선에 여러대의 터미널이 연결된다.

해밍코드

  • 1비트의 에러를 찾아 고칠수 있다.
  • 전진 오류 수정 방식

도메인이름

  • IP와 달리 문자를 이용한 주소 방식

URL

  • 인터넷에 있는 정보의 위치를 표기하기 위한 방법

스타 네트워크 / 성형 네트워크

  • 중앙의 서버가 모든 클라이언트를 관리한다.
  • 중앙 컴퓨터의 변경 및 확장이 어렵다.

Presentation Layer

  • 데이터 암호화, 데이터 압축

IP Class

  • 0.0.0.0 ~ 127.255.255.255 : A Class
  • 128.0.0.0 ~ 191.255.255.255 : B Class
  • 192.0.0.0 ~ 223.255.255.255 : C Class

시분할 시스템

  • 시스템을 여러 사용자에게 일정시간씩 나누어줌

라운드 로빈

  • 모든 프로세스에 동일한 시간 할당량을 부과해 실행한다.

C-SCAN

  • 단방향으로만 스캔한다.
  • 끝에 도달하면 다시 반대편 끝으로 이동한다.

DBA 역할

  • 스키마 정의
  • 무결성 유지

스키마

  • 외부 > 개념 > 내부

모델링

  • 개념 > 논리 > 물리

릴레이션 특징

  • 중복된 튜플이 없다
  • 속성의 순서가 없다
  • 튜플의 순서가 없다
  • 속성은 원자값을 가진다.

데이터마이닝

  • 대량의 데이터로부터 관련 정보를 찾는다.

프로토콜

  • 구문 : 데이터 형식, 부호화
  • 의미 : 전송의 조작이나 오류제어 위한 제어정보
  • 타이밍 : 통신 속도나 메시지의 순서 제어

후진 오류 수정 방식

  • 송신시 오류 검출 부가정보를 전송
  • 수신측에서 오류 검출시 송신측에 재전송 요청
    • 직접 고치지 않는다.

데이터 단위

  • 트랜스포트 : 세그먼트
  • 네트워크 : 패킷
  • 데이터링크 : 프레임

배포

소프트웨어 패키징

  • 실행 파일을 묶어 배포용 설치파일 만들기

헤더

  • 각종 정보를 포함한다.

애플리케이션 모니터링 도구

  • 성능을 모니터링 해 장애를 미리 예방

릴리즈노트

  • 제품의 주요 변경 사항, 버전 관리

애플리케이션 성능 관리

  • 트랜잭션 수량, 처리시간, 응답시간 모니터링

DRM 컴틀돌러

  • 배포된 컨텐츠 이용 통제

Tamper Resistance

  • 크랙에 의한 콘텐츠 사용 방지 기술

무결성

  • 허가되지 않은 사람의 소프트웨어나 데이터에 접근을 통제한다.

Check in

  • 작업 디렉토리 변경 사항을 새 버전으로 저장

Check out

  • 저장소의 선택된 파일 혹은 디렉토리를 현재 작업 환경으로 복사

Maven

  • 빌드 자동화 도구
  • 적은 설정으로 사용 가능

애플리케이션 변경 영향 관리

  • 변경시 변경의 영향도 파악
  • 애플리케이션 종속관계 모니터링

패키저

  • 콘텐츠를 메타데이터와 함께 배포 가능한 데이터로 묶는 기능

시스템 문서

  • 시스템 자체와 그 세부사항을 설명하는 문서

제품 소프트웨어 관리

  • 사용 종료 및 관리에 대한 내용

공유 폴더 방식

  • 개발 완료시 공유 폴더에 복사
  • 담당자 한명이 자기 PC로 복사해 동작 여부 확인
  • 이후 각 개발자들이 정상작동 또 확인.

오답노트

FLSM 방식 서브넷 분할

  • 192.168.1.0/24 를 세개의 서브넷으로 분할
  • 192.168.1.0 ~ 192.168.0.63 - 00
  • 192.168.1.63 ~ 192.168.0.127 - 01
  • 192.168.1.128 ~ 192.168.1.191 - 10
  • 192.168.1.192 ~ 192.168.1.255 - 11
  • 브로드캐스트는 분할에 사용된 비트를 제외한 나머지를 1로 채우면 된다.

  • 셀렉트 > 시그마
  • 프로젝트 > 파이
  • 조인 > 나비넥타이
  • 디비전 > 나누기
  • 합집합, 교집합, 차집합, 교차곱은 이산수학 그대로

Bridge 패턴

  • 기능과 구현을 분리, 독립적으로 변형과 확장이 가능하다.

DISTINCT 와 COUNT

  • COUNT(DISTINCT 속성)
    • 속성의 중복을 제외하고 카운팅한다.
  • DISTINCT COUNT(속성)
    • DISTINCT 는 영향을 끼치지 않는다.

트러스트존

  • 프로세서 안에 독립적인 보안구역을 두어 보호

타이포스쿼팅

  • 유명 도메인과 유사한 도메인을 미리 선점하는것

SIEN

  • 가트너, 보안정보 관리와 보안이벤트 관리 통합

사회공학

  • 개인적 인간관계, 업무적 인간관계로 정보를 수집

다크 데이터

  • 정보 수집후 사용하지 않고 방치되어 보안 위협을 차지

SRT 스케쥴링

  • SJF의 선점형 방식
  • 실행시간 추정치가 가장 짧은 것을 먼저 실행한다.

UML 구성요소

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

클래스 다이어그램

  • 사용되는 객체를 정의하고 이들의 정적인 관계를 다양하게 표현

인터페이스

  • UML 모델링에서 컴포넌트가 구현해야 하는 오퍼레이션 세트

IDEA

  • DES 대체 위해 스위스에서 개발한 알고리즘

SKIPJACK

  • Clipper칩에 내장되는 블록알고리즘, NSA 개발

COUNT

  • *가 아닐시 NULL을 포함하지 않는다.

ISP - Interface Segregation Principle

  • 여러개의 특화 인터페이스가 하나의 범용 인터페이스보다 낫다

EGP

  • 시스템 사이 경로 설정 정보를 교환하기 위해 사용
  • AS간 라우팅 정보 교환

Hypertext

  • 구조화 되어있는 텍스트

RAID 0

  • 데이터 분산저장
  • 복구 불가능

RAID 1

  • 데이터 중복 저장
  • 복구 가능

UNDO

  • 변경 연산의 취소

REDO

  • 장애 발생 전으로 복구

TKIP

  • 무선랜 암호표준
  • 임시 키 무결성 프로토콜

JUnit

  • 자바 유닛테스트

Black Box Testing

  • Equivalence Partitioning
  • Boundary Value Analysis
  • Cause-Effect Graph

ISDS

  • 정보보호 관리 체계의 영문 약어

워터링 홀

  • 합법적 사이트에 잠복하다 취약점 찾아 아이피 접속시 공격

유일성

  • 슈퍼키와 후보키가 가짐

테스트 순서

  • 단위 테스트 > 통합 테스트 > 시스템 테스트 > 인수 테스트

Aggregation

  • 하나의 사물이 다른 사물에 포함
  • 전체와 부분으로 구분 및 독립적

인덱스 파일 구조

  • 값-주소 쌍으로 구성되는 보조기억장치의 데이터 구조

애드혹 통신

  • AP 없이 무선으로 통신이 가능한 노드 간 통신

패킷 교환 방식

  • 가상 회선 방식 : 목적지 호스트와 미리 연결 후 통신
  • 데이터그램 방식 : 출발지에서 목적지까지 경로를 위한 정보를 헤더에 붙혀 비연결적으로 보냄

행위 패턴

  • 객체의 행위를 조직화

로킹

  • 데이터의 연산이 수행될때까지 상호배타적

개념적 설계

  • ERD, 트랜잭션 모델링

논리적 설계

  • 테이블 설계 및 정규화화

WSDL

  • 웹 관련 서식이나 프로토콜을 표준적인 방법으로 기술 및 개제
  • XML로 구성

파이썬 클래스 변수

  • 객체에서도 접근 가능하다.

동등분할 테스트

  • 입력 데이터의 영역을 유사한 도메인 별로 유효/무효 클래스로 그룹화 해 나누어 검사

테스트 단위

단위 테스트

  • 개별 코드, 함수, 클래스 테스트

통합 테스트

  • 다양한 코드 유닛간 통합 및 인터페이스 테스트

시스템 테스트

  • 모든 컴포넌트와 모듈이 통합되어 동작하는지 테스트

인수 테스트

  • 최종 사용자 혹은 요구사항에 따라 테스트

IPC

  • 모듈간 통신 구현위한 인터페이스 집합
  • 소켓, 메시지큐 등

데이터 모델 구성요소

  • 연산, 구조, 관계

패키지 다이어그램

  • <<import>> 사용

샘플링 오라클

  • 특정한 몇개의 입력 값에 대해서만 기대하는 결과를 제공하는 오라클

형상 통제

  • 변경 사항 반영 및 통제

DB 스키마

  • 데이터베이스의 구조, 제약조건

Point-to-Point

  • EAI 에서 1:1 방식으로 애플리케이션 통합

RTO

  • 서비스가 중단되어 업무가 중단된 시점으로 부터 업무가 다시 시작할때까지의 시간

Python set Update

  • 요소를 추가하는것이지 바꾸는것이 아니다.

인덱스 생성

CREATE INDEX _인덱스이름_ ON _테이블이름_(속성명)

UI 유효성

  • 사용자의 목적을 정확하고 완벽하게 달성

Linked Open Data

  • 데이터 공유 및 재사용 가능한 데이터로 새로운 가치를 창출

데이터마이닝

  • 많은 데이터간 숨겨진 유용한 상관관계를 밝혀내 의사결정에 활용

릴리즈 노트의 헤더

  • 문서이름, 제품이름, 버전번호, 릴리즈 날짜, 노트 버전
  • 기본적인 정보를 포함한다.

릴리즈 노트

  • 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서

UDDI

  • 비즈니스 목록에 자신을 등재하기 위한 XML 기반 레지스트리

kill 명령어

  • UNIX/LINUX 에서 프로세스를 강제종료하기 위해 사용한다.

트랜잭션 모니터

  • 분산 트랜잭션 구현 위해 필요한 미들웨어
  • 클라이언트와 서버 사이에서 통신 부하를 효과적으로 분배한다.

부모의 기본 생성자

  • 자식 생성시 부모의 기본 생성자는 자동으로 실행된다.
    • 패러미터를 받지 않는 생성자

SELECT REVOKE

REVOKE SELECT on 테이블명 FROM 유저명

XP

  • 구현 우선이 아니라 테스트 우선

XSS

  • 검증되지 않은 외부 입력에 의해 브라우저에서 악의적인 코드가 실행

프로토타이핑

  1. 요구사항 분석
  2. 신속한 설계
  3. 프로토타입 작성
  4. 사용자 평가
  5. 프로토타입 정제
  6. 공학적 제품화

약한 개체

  • 선이 두겹인 사각형

Private API

  • 비공개 API

오류부재의 궤변

  • 사용자 요구사항을 만족 못할시 오류가 없어도 품질이 높은것이 아니다.

스푸핑

  • IP, MAC, DNS 등의 자신의 식별정보를 속여 다른 시스템을 공격하는 기법

Incremental Backup

  • 백업 대상 영역중 변경되거나 증가된 데이터만들 백업한다.

Check out / in

  • out : 최신 버전 소스코드를 가져온다.
  • in : 소스코드의 변경을 반영한다.

RIP

  • 최소 Hop Count 를 파악하여 라우팅
  • Distance Vector를 사용
  • 최대 15hop 으로 제한되어 내부망에 주로 사용

OSPF

  • 최소시간 경로를 최적 라우팅 경로로 결정
  • 최단거리 우선 알고리즘 ( Dijikstra ) 사용
  • 내부 게이트웨이 프로토콜로 사용

BGP

  • 외부 라우팅 프로토콜
  • AS와 AS간 사용되는 라우팅 프로토콜

오버라이딩

  • 오버라이딩이 되어 있지 않으면 부모의 함수를 그대로 사용한다.
  • 오버라이딩 시 반드시 받는 패러미터와 반환값이 같아야 한다.

테스트 커버리지

  • 기능 기반 커버리지 : 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정
  • 라인 커버리지 : 애플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수를 측정
  • 코드 커버리지 : 소프트웨어 테스트 충분성 지표 중 하나. 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정하는 방법

코드 커버리지

  • 구문 커버리지 : 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지
  • 결정 커버리지 : 프로그램 내의 모든 결정의 분기가 한번씩 실행된다.
  • 조건 커버리지 : 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 커버리지
  • 조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 커버리지
  • 변경 조건/결정 커버리지 : 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
  • 다중 조건 커버리지 : 결정 조건 내 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 커버리지

루트킷

  • 일반적으로 펌웨어, 가상화 계층 등의 다양한 시스템 영역에서 작동하며, 운영체제의 시스템콜을 해킹하여 악성코드의 실행여부를 숨겨 안티바이러스 탐지를 우회
  • 인터넷 공격자의 존재를 숨기면서 이 공격자에게 시스템에 대한 무제한 접근 권한을 부여하는 악성 프로그램
  • 백도어와 달리 시스템의 여러계층에 침투해 자신의 존재를 감춤

APT 공격 기법

  • 특정 목표를 노려 제로데이등을 이용해 지속적으로 공격을 시도
  • 은밀하게

재정의

public class main{
    public static void main(String[] args) {
        A b = new B();
        b.paint();
        b.draw();
    }
}
 
class A {
    public void paint() {
        System.out.print("A");
        draw();
    }
    public void draw() {
        System.out.print("B");
        draw();
    }
}
 
class B extends A {
    public void paint() {
        super.draw();
        System.out.print("C");
        this.draw();
    }
    public void draw() {
        System.out.print("D");
    }
}
  • B 클래스에 draw가 재정의 되어 있기에 A 클래스에서 draw를 호출해도 B의 draw가 실행된다.
  • this 가 없으면 정의된 타입을 따라간다.

완전수

  • 자기자신을 제외한 모든 약수의 합과 자기 자신이 같은 숫자
  • 1 ~ 100 사이엔 6과 28이 있다.

ATM

  • 자료를 일정한 크기로 정해 순서대로 전송하는 자료 전송 방식
  • 셀 ( 53바이트 패킷 )을 사용한다.

static 메소드

  • 반드시 static 변수만을 사용해야 한다!!

패키지 다이어그램

패키지 다이어그램

  • 목적: 시스템을 논리적인 그룹(패키지)으로 나누고, 패키지 간의 의존성을 나타냄.
  • 구성 요소: 패키지, 의존 관계(Dependency).
  • 사용 수준: 고수준(system-level) 설계.

클래스 다이어그램

  • 목적: 시스템의 객체 지향 설계를 시각화하고, 클래스 간의 관계, 속성, 메서드를 나타냄.
  • 구성 요소: 클래스, 인터페이스, 속성, 메서드, 관계(상속, 연관, 집합 등).
  • 사용 수준: 상세 수준(detail-level) 설계.

참조 무결성

  • 관계 DB에서 관계 테이블간의 무결성
  • 외래키는 반드시 NULL이거나 다른 테이블의 기본 키 여야 한다.

탬퍼 프루핑

  • 소프트웨어가 불법으로 변경시 정상 수행되지 않게 한다.

Visitor 패턴

  • 호스트 객체의 내부 상태에 접근하여 객체에 연산을 추가한다.

FEC

  • 송신측이 전송할 프레임에 부가적 정보를 첨가, 수신측에서 이를 이용해 에러 검출 및 정정

BED

  • 공격자가 전자메일로 금전 갈취 혹은 비밀 누설

CRC

  • 네트워크 등으로 데이터 전송시 데이터에 오류 확인 위한 체크값을 결정하는 방식

자바 String vs string

  • String 은 레퍼런스 객체
  • string 은 primitive 타입

L2TP

  • 데이터링크에서 구현되는 터널링
  • L2F와 PPTP가 결합된 프로토콜, VPN 과 ISP가 사용한다.

트로이 목마

  • 정상적 프로그램으로 가장해 직접 설치 유도
  • 백도어를 만들어 침입 경로를 만들거나 시스템을 파괴

프록시 패턴

  • 실제 객체 호출시 중간에 가로채 다른 동작을 수행하는 객체로 변경

HAVING 절

  • 집계함수를 사용해야 한다!

변수는 오버라이딩 되지 않는다.

class Parent {
    int x = 100;
 
    Parent() {
        this(500);
    }
 
    Parent(int x) {
        this.x = x;
    }
 
    int getX() {
        return x;
    }
}
 
class Child extends Parent {
    int x = 4000;
    
    Child() {
        this(5000);
    }
 
    Child(int x) {
        this.x = x;
    }
}
 
public class Main {
    public static void main(String[] args) {
        Child obj = new Child();
        System.out.println(obj.getX());
    }
}
  • Parent의 기본 생성자가 실행되어 Parent 의 x가 500이 되고
  • Parent의 getX() 가 실행되어 500이 리턴된다.

조인

세미조인

  • 두 테이블을 조인해 한 테이블의 결과만 반환
  • 주로 서브쿼리

동등조인

  • 동등 조인은 두 테이블 간의 열 값이 같은 경우에만 데이터를 반환합니다. 비교 연산자로 = 만 사용합니다.

세타조인

  • 세타 조인은 두 테이블 간의 열 값을 임의의 비교 연산자로 비교하여 데이터를 반환합니다. 동등 조인도 세타 조인의 한 종류입니다.

자연조인

  • 자연 조인은 두 테이블 간에 같은 이름을 가진 모든 열을 기반으로 조인을 수행하며, 중복된 열을 제거하여 결과를 반환합니다.
profile
만능 컴덕후 겸 번지 팬

0개의 댓글