[정보처리기사 실기공부] 총 정리

보안

DDoS 공격 툴

  • Trin00 -> TFN -> TFN2K -> Stacheldraht

DoS

취약점 공격형
  • 보잉크, 봉크, 티어드롭 공격
    • TCP가 제공하는 오류 제어 기능 / 시퀀스 넘버를 속인다
  • 랜드 공격 (land)
    • 출발지 IP 주소와 목적지 IP 주소의 값을 똑같이 만들어 공격 대상에게 보내는 것
자원 고갈 공격형
  • 죽음의 핑 공격
    • 네트워크에서 패킷을 전송하기 적당한 크기로 잘라서 보내는 특성을 이용한 공격
    • ICMP의 ping을 최대한 길게 보낸다.
  • SYN 플러딩 공격
    • 동시 사용자 수 제한을 이용한 공격
    • 3-way hand shaking에서 SYN 패킷만 보내고 ACK 패킷을 보내지 않음
  • HTTP GET 플러딩
    • 정상적으로 3-way hand shaking을 수행하고 특정 페이지를 HTTP의 GET 메소드를 통해 무한대로 실행
  • HTTP CC 공격
    • HTTP 요청 및 응답을 요구하기 위해 캐시 기능을 사용하지 않도록 하는 공격
  • 동적 HTTP 리퀘스트 플러딩 공격
    • 지속적으로 요청 페이지를 변경하여 웹 페이지를 요청하는 기법
  • 슬로 HTTP 헤더 DoS 공격
    • 개행 문자 빼먹는 등 웹 서버가 헤더 정보를 완전히 수신할 때까지 연결을 유지하도록 하는 공격
  • 슬로 HTTP POST 공격
    • HTTP POST 메소드를 사용할 때, 헤더의 Content-Length 필드에 임의의 큰 값을 설정하여 전송
  • 스머프 공격
    • 다이렉트 브로드캐스트 사용 / 네트워크 망에 브로드캐스트를 주고 넘어오는 응답을 공격 대상에 넘기는 방식
    • (src:공격 대상 IP, des:172.16.0.255)
  • 메일 폭탄 공격
    • 메일 디스크 공간을 가득 채우면 정작 받아야 할 메일을 받을 수 없는 것을 이용
  • DRDoS (분산 반사 서비스 거부 공격)
    • 출발지 IP를 공격대상 IP로 위조(스푸핑)하여 다수의 반사 서버로 요청 정보를 전송, 공격대상은 반사 서버로부터 대량의 응답을 받아 서비스 거부가 됨

스턱스넷(Stuxnet)

  • 폐쇄망인 핵시설 주변에 악성코드가 담긴 USB를 유포하고, 엔지니어가 내부 PC에 USB를 꽂으면서 핵시설 시스템을 공격 / SCADA, PLC

디지털 저작권 관리 (DRM, Digital Right Management)

  • 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에서 사용되는 디지털 콘텐츠 관리 및 보호 기술
  • 클리어링 하우스 (Clearing House)
    • 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행하는 곳
  • 콘텐츠 제공자 (Contents Provider)
    • 콘텐츠를 제공하는 저작권자
  • 패키저 (Packager)
    • 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
  • 콘텐츠 분배자 (Contents Distributor)
    • 암호화된 콘텐츠를 유통하는 곳이나 사람
  • 콘텐츠 소비자 (Customer)
    • 콘텐츠를 구매해서 사용하는 주체
  • DRM 컨트롤러 (DRM Controller)
    • 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
  • 보안 컨테이너 (Security Container)
    • 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

암호화 방식

  • DES -> AES

해시 암호화

  • 단방향

네트워크

OSI 7 Layer

  • Physical -> Data-Link -> Network -> Transport -> Session -> Presentation -> Application
전송 단위
  • 비트 -> 프레임 -> 패킷 -> 세그먼트 -> 데이터
physical layer
  • 허브 -> 가까운 거리의 컴퓨터를 연결하는 장치
  • 리피터 -> 전송되는 신호를 증폭하는 장치
  • 브릿지 -> LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 기능 수행
  • 스위치 -> LAN과 LAN을 연결해 훨씬 더 큰 LAN을 만드는 장치
Network layer
  • 라우터 -> LAN과 LAN 연결기능에 데이터 전송의 최적경로를 선택할 수 있는 기능이 추가된 것
Transport layer
  • 게이트웨이 -> 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
    • LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아 들이는 출입구 역할

라우팅 프로토콜 (보리 (BORI))

  • BGP -> 규모가 큰 네트워크, 사업자
  • OSPF -> 링크 상태 알고리즘, 최적경로
  • RIP -> 최초의 라우팅 프로토콜, 거리 벡터 알고리즘
  • IGRP -> RIP 업그레이드

IPv4

  • 32bit / 헤더 크기 가변적 / 전송방식 멀티캐스트, 유니캐스트, 브로드캐스트

IPv6

  • 128bit / 헤더 크기 고정적 / 전송방식 멀티캐스트, 유니캐스트, 애니캐스트

CSMA

  • CSMA/CD는 유선랜에서 채널이 사용 중인지 체크하여 사용중이지 않을 때 전송하는 방식이구요,
  • CSMA/CA는 무선랜에서 사전에 충돌 탐지 가능성이 있으면 회피, 널널할 때 보내는 방식이예요.

IP 클래스

A 0 ~ 127 B 128 ~ 191 C 192 ~ 223 D 224 ~239 E 240 ~ 255

B 시작값 = A 시작값 + 128 C 시작값 = B 시작값 + 64 D 시작값 = C 시작값 + 32 E 시작값 = D 시작값 + 16

DB

DML

  • INSERT INTO (테이블명) VALUES (값);
  • DELETE FROM (테이블명) [WHERE 조건];
  • UPDATE (테이블명) SET (속성명=값[, 속성명=값, ...]) [WHERE 조건];
  • SELECT (속성명) [AS 별칭] FROM (테이블명) [. 테이블명2] [WHERE 조건] [GROUP BY 속성명, 속성명2..] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]];
    • ALL, DISTINCT,

LIKE 연산자

  • 칼럼에 들어가 있는 값들 중 특정 문자(들)가 포함되어 있는 값을 조회
  • WHERE (칼럼명) [NOT] LIKE (%) 검색할 값 (_, %)
  • % => 모든 값, _ => 값 하나

GROUP BY

  • ROLLUP
    • GROUP BY ROLLUP(DEPTNO, JOB)

      • 부서별, 직업별 뿐만 아니라, 전체 급여의 합, 부서별 급여의 합도 출력한다.
    • GROUP BY ROLLUP((DEPTNO, JOB))

      • 전체 급여 합만 출력
    • GROUP BY DEPTNO, ROLLUP(JOB)

      • 부서별 급여 합만 출력

      ROLLUP 잘 정리된 블로그

UNION

  • 두 개의 SELECT 결과를 합칠 수 있다.
  • 합친 결과에서 중복행은 하나만 표시한다.
  • 단. 컬럼의 개수가 같아야하고, 각 컬럼의 데이터타입이 같아야한다.

UNION ALL

  • 중복을 제거하지 않는다.

CREATE 조건

  • NOT NULL -> NULL값 허용 x
  • PRIMARY KEY -> 기본 키
  • FOREIGN KEY -> 참조 키
  • UNIQUE -> 중복값 없음
  • CHECK -> IN()으로 제한한다.

DCL

  • GRANT (권한 리스트) ON (개체(테이블)) TO (사용자); / ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
  • REVOKE [GRANT OPTION FOR] (권한 리스트) ON (개체(테이블)) FROM (사용자) [CASCADE];

DDL

  • CREATE {SCHEMA | DOMAIN | TABLE | VIEW | INDEX} {AUTHORIZATION | | | AS SELECT | ON}
  • ALTER TABLE (테이블명) {ADD | MODIFY | DROP COLUMN} {속성명 데이터_타입 | 속성명 | 속성명}
    • ADD, MODIFY, DROP
  • DROP {SCHEMA | DOMAIN | TABLE | VIEW | INDEX | CONSTRAINT}
  • TRUNCATE

트랜잭션의 특성

  • 원자성(Atomicity)
  • 일관성(consistency)
  • 독립성(Isolation)
  • 지속성(Durability)

데이터 조작 프로시저

저장된 프로시저(Stored Procedure)
  • 배치 작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장하는 기능 제공 프로그램
저장된 함수(Stored Function)
  • 실행결과를 되돌려 받을 수 있는 프로그램
저장된 패키지(Stored Package)
  • 프로시저나 함수를 효과적으로 관리하기 위해 패키지 단위로 배포할 때 사용 프로그램
트리거(Trigger)
  • 특정 테이블에 삽입, 수정, 삭제 등의 변경 이벤트 발생 시 DMBS에서 자동 실행되도록 구현된 프로그램

데이터베이스 설계 순서 (요개논물구)

  1. 요구조건 분석
    • 데이터 및 처리 요구조건 분석, 정보내용 및 요구수집, 경영목표 및 제약조건 식별, 요구명세 작성 및 검토
  2. 개념적 설계
    • DBMS 독립적 개념 스키마 설계, 트랜잭션 모델링, View 통합방법 고려, Attribute 합성
  3. 논리적 설계
    • 목표 DBMS에 맞는 스키마 설계, 트랜잭션 I/F 설계, 스키마 평가 및 정제
  4. 물리적 설계
    • 목표 DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계, 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, Access Path 설계
  5. 구현
    • 데이터베이스 생성, 트랜젝션 작성

스키마

  • 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
  • DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조
외부 스키마
  • 실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인가
내부 스키마
  • 물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한 것
  • 내부 스키마에 의해 DB의 실행속도가 결정적으로 영향을 받기 때문에 DB의 구축목적에 따라 내부 스키마를 결정해야 한다
개념 스키마
  • 조직 전체를 관장하는 입장에서 DB를 정의한 것
  • DB 전체를 기술한 것이기 때문에 한 개만 존재한다.

로킹(locking)

  • 트랜잭션이 실행 중일 때 다른 트랜잭션이 사용하지 못하게 데이터 항목을 잠궈서 상호배제를 제공하는 기법

소프트웨어 공학

디자인패턴

생성패턴
  • factory method
    • 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하는 방식
  • singleton
    • 특정 클래스의 객체가 오직 한 개만 존재하도록 보장
  • prototype -기존의 것을 복사하여 일부만 바꿔 인스턴스 생성
  • builder
    • 복잡한 인스턴스를 조립하여 만드는 구조
  • abstract factory
    • 여러 개의 concrete product를 추상화시킨 것, 구체적인 구현은 concrete product 클래스에서 이루어짐
구조패턴
  • adapter
    • 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
  • composite
    • 부분-전체의 상속 구조로 표현
  • bridge
    • 두 장소를 연결하는 역할
  • decorator
    • 기존에 구현되어 있는 클래스에 그때그때 필요한 기능을 추가해나가는 설계 패턴
  • facade
    • 클라이언트 클래스와 서브시스템의 클라이언트 사이에 Facade라는 객체를 세워놓음으로써 복잡한 관계를 정리
  • flyweight
    • 메모리 사용량을 줄이기 위한 방법, 공유 객체
  • proxy
    • 대리인, 뭔가를 대신해서 처리
행위패턴
  • template method
    • 상위 클래스에서는 추상적으로 표현하고, 구체적인 내용은 하위 클래스에서 결정
  • interpreter
    • 무언가를 번역하는 데 사용
  • iterator
    • 반복이 필요한 자료구조를 모두 동일한 인터페이스를 통해 접근할 수 있도록 iterator 객체의 메소드를 이용해 자료구조로 활용할 수 있도록 하는 것
  • observer
    • 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것
  • strategy
    • 소프트웨어 개발에서 전략이나 전술은 알고리즘으로 구현
  • visitor
    • 객체의 구조와 기능을 분리하고, 별도의 visitor 클래스를 만들고, 해당 클래스의 메소드가 각 클래스를 돌아다니며 특정 작업을 수행
  • chain of responsibility
    • 책임들이 연결되어 있어, 내가 책임을 못 질 것 같으면 다음 책임자에게 자동으로 넘어가는 구조
  • command
    • 명령어를 추상 클래스와 구체 클래스로 분리, 명령어에 따른 취소(undo) 기능 포함
  • mediator
    • 중간에서 연결하고 통제하는 역할
  • state
    • 동일한 동작을 객체 상태에 따라 다르게 처리해야 할 때 사용
  • memento
    • 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용

코드 표현

스파게티 코드
  • 복잡하게 얽힌 소스코드
외계인 코드
  • 상당히 오래되어 알아보기 힘든코드
클린코드
  • 가독성이 좋아 읽기 좋은 코드

~법칙

브룩스의 법칙 (Brook's law)
  • 지체되는 소프트웨어 개발 프로젝트에 인력을 더하는 것은 개발을 늦출 뿐이다.
무어의 법칙
  • 반도체 집적회로의 성능이 24개월마다 2배로 증가한다는 법칙
파레토 법칙 (Pareto Principle)
  • 전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상
롱테일 법칙 (Long Tail)
  • 사소해 보이는 80%의 다수가 20%의 소수 핵심보다도 뛰어난 가치를 창출해낸다는 이론
요르돈 법칙 (Snowball Effect)
  • 소프트웨어 개발 초기에 체계적인 분석 및 설계가 수행되지 못하면 그 결과가 프로젝트 후반에 영향을 미치게되어 비용이 커진다는 법칙
리틀의 법칙 (Little's law)
  • 시스템에 오랜 시간 동안 머물러 있는 고객의 평균 수치는 오랜 시간 동안에 걸친 평균 실제 도착률과 시스템에서 고객이 머문 평균 시간을 곱한 값과 동일하다는 법칙

UI 품질요구사항

  • 기능성 (Functionality)
  • 신뢰성 (Reliability)
  • 사용성 (Usability) (사이학운)
  • 이해성, 학습성, 운용성
  • 효율성 (Efficiency)
  • 유지보수성 (Maintainability)
  • 이식성 (Portability)

코드 커버리지 유형(구결조 조변다)

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

요구사항 분석기법 (인체설델브)

인터뷰
  • 사용자 면담을 통해 연계 요구사항 도출
체크리스트
  • 기준에 대한 점검을 통한 분석기법
설문지
  • 설문지를 통한 분석기법
델파이 기법
  • 전문가의 경험적 지식
브레인스토밍
  • 소속 인원들이 자발적으로 자연스럽게 제시한 아이디어 목록을 통해 분석

결합도 (내공 외제 스자)

내용
  • 직접 참조
공통
  • 공유
외부
  • 외부환경
제어
  • 논리적 흐름 제어
스탬프
  • 자료구조 (배열, 리스트, 구조체)
자료
  • 단순 자료

응집도 (우논시절 통순기)

우연적
  • 관계없음
논리적
  • 논리적 유사한 기능
시간적
  • 특정 시간
절차적
  • 순서대로 수행
통신적
  • 동일한 입출력 자료 다음 요소의 입력 자료
순차적
  • 한 요소의 출력 자료 다음 요소의 입력 자료
기능적
  • 모듈 내 모든 요소 단일 기능 수행

관계

연관 관계

집합 관계

포함 관계

일반화 관계

의존 관계

실체화 관계

UML 다이어그램(Diagram)

  • 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에 도움을 준다
정적 모델링 (Structural, 구조적)
  • 구조적 다이어그램을 사용
    • 클래스 다이어그램(Class Diagram)
      • 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
    • 객체 다이어그램(Object Diagram)
      • 인스턴스(instance)를 특정 시점의 객체와 객체 사이의 관계로 표현
    • 컴포넌트 다이어그램(Component Diagram)
      • 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
      • 구현 단계에서 사용
    • 배치 다이어그램(Deployment Diagram)
      • 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
      • 노드와 의사소통(통신) 경로로 표현
      • 구현 단계에서 사용
    • 복합체 구조 다이어그램(Composite Structure Diagram)
      • 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
    • 패키지 다이어그램(Package Diagram)
      • 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
동적 모델링(Behavioral, 행위)
  • 행위 다이어그램을 사용
    • 유스케이스 다이어그램(Use Case Diagram)
      • 사용자의 요구를 분석하는 것
      • 사용자(Actor)와 사용 사례(Use Case)로 구성
    • 시퀀스 다이어그램(Sequence Diagram)
      • 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
        • 구성 항목
          • 액터
          • 활성 객체(object)
          • 라이프라인(생명선)
          • 메세지
          • 제어 삼각형
    • 커뮤니케이션 다이어그램(Communication Diagram)
      • 동작에 참여하는 객체들이 주고받는 메시지를 표현
      • 객체들 간의 연관까지 표현
    • 상태 다이어그램(State Diagram)
      • 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현
    • 활동 다이어그램(Activity Diagram)
      • 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
    • 상호작용 개요 다이어그램(Interaction Overview Diagram)
      • 상호작용 다이어그램 간의 제어 흐름을 표현
    • 타이밍 다이어그램(Timing Diagram)
      • 객체 상태 변화와 시간 제약을 명시적으로 표현

인운이견

  • 인식, 운영, 이해성, 견고성

사이학운

  • 사용성, 이해성, 학습성, 운용 용이성

스토리보드

  • 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물

UML (4+1)

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

블랙박스 테스트

  • 동등 분할 테스트
    • 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을 그룹핑하여 대표 값을 테스트 케이스로 도출하여 테스트하는 기법

CRUD Matrix

  • 프로세스와 데이터 사이에 관계 의존성을 Create, Read, Update, Delete로 표현한 매트릭스

구조적 개발 방법론은 정형화된 분석 절차에 따라 사용자 요구사항을 파악, 문서화하는 체계적인 분석방법으로 자료흐름도, 자료 사전, 소단위 명세서의 특징을 갖고 있다. 특히 소단위 명세서는 데이터 흐름도에 나타나 있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서로 요구사항 분석 시에 많이 활용된다.

릴리즈 노트

  • 사용자 영향도
    • 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술
  • 면책조항
    • 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지 사항

성능 분석 도구

  • 성능 테스트 도구는 애플리케이션에 부하나 스트레스를 적용하여 애플리케이션의 성능 측정 지표를 점검하는 도구로 종류에는 JMeter, LoadUI, OpenSTA 등이 있다
  • 시스템 모니터링 도구는 애플리케이션이 실행되었을 때 시스템 자원 사용량을 확인하고, 분석이 가능한 도구로 종류에는 Scouter, Zabbix 등이 있다.

구조적 방법론은 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론으로 프로세스 중심의 하향식 방법론이다. 나씨-슈나이더만 차트를 사용한다 컴포넌트 기반 방법론은 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론이다. 제품 계열 방법론은 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론으로 임베디드 소프트웨어를 작성하는데 유용한 방법론이다.

프로그래밍

C언어

atoi() -> 문자열을 숫자로 변환하는 함수

  • 문자가 먼저 나올 경우 => 0 반환 ex) so120 => 0, sob = 0
  • 숫자가 먼저 나올 경우 => 숫자만 반환 ex) 2010sob => 2010 itoa() -> 숫자를 문자로 변환하는 함수 ceil() -> 소수점을 올림

신기술동향

재해복구 시스템

복구목표시간 (RTO, Recovery Time Objective)
  • 재해로 인하여 서비스가 중단되었을 때, 서비스를 복구하는데까지 걸리는 최대 허용시간
복구목표시점 (RPO, Recovery Point Objective)
  • 재해로 인하여 중단된 서비스를 복구하였을 때, 유실을 감내할 수 있는 데이터의 손실 허용시점
업무연속성계획 (BCP, Business Continuity Planning)
  • 정보기술부문뿐 아니라, 인력-설비-자금 등 제반 자원을 대상으로 장애 및 재해를 포괄하여 조직의 생존을 보장하기 위한 예방 및 복구활동 등을 포함하는 보다 광범위한 계획
재해복구계획 (DRP, Disaster Recovery Planning)
  • 정보기술서비스기반에 대하여 재해가 발생하는 경우를 대비하여, 이의 빠른 복구를 통해 업무에 대한 영향을 최소화하기 위한 제반 계획
재해복구시스템 (DRS, Disaster Recovery System)
  • 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적-물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 것
주센터
  • 현재 사용중인 전산 인프라를 운영하는 전산센터로써, 주전산센터 혹은 주사이트라 일컫기도 함.
재해복구 (DR, Disaster Recovery)
  • 재해로 인하여 중단된 정보기술 서비스를 재개하는 것
재해복구센터
  • 주 센터에 반하여 재해에 대비하여 업무 연속성을 보장할 수 있도록 원격지에 구축한 전산 센터로써, 원격지센터 혹은 백업 센터라 일컫기도 함

재해복구시스템의 복구수준별 유형 비교

Mirror Site
  • 주 센터와 동일한 수준의 정보기술 자원을 원격지에 구축, Active-Active 상태로 실시간 동시 서비스 제공
Hot Site
  • 주 센터와 동일한 수준의 정보기술 자원을 원격지에 구축하여 Standby 상태로 유지 (Active-Standby)
Warm Site
  • 중요성이 높은 정보기술자원만 부분적으로 재해복구센터에 보유
  • 데이터는 주기적(약 수시간~1일)으로 백업
Cold Site
  • 데이터만 원격지에 보관하고, 이의 서비스를 위한 정보자원은 확보하지 않거나 장소 등 최소한으로만 확보
  • 주센터의 데이터는 주기적(수일~수주)으로 원격지에 백업

클라우드 컴퓨팅

IaaS
  • 인프라(infra)
    • 정보기술이나 인터넷에서 컴퓨터와 사용자를 연결하는데 사용되는 물리적 하드웨어를 지칭. IT서비스를 제공하기 위한 서버와 스토리지 같은 H/W와 각 장비들을 연결하고 외부 인터넷망과 연결하기 위한 네트워크(장비 및 S/W), 나아가 이런 장비들을 유지관리하기 위해 필요한 데이터센터(랙, 공조, 항온항습, 전기, 변압, UPS, 소화설비를 포함하는)까지도 의미한다.
PaaS
  • 플랫폼(platform)
    • IT에서 플랫폼은 어플리케이션을 작동시키기 위한 "기반 OS"나 "기술환경"을 의미
SaaS

데이터 마이닝

  • 대규모로 저장된 데이터로부터 체계적이고 자동적으로 통계적인 규칙이나 패턴을 찾는 방법

데이터 웨어하우스

  • 조직이나 기업체의 중심이 되는 업무시스템에서 모아진 정보를 일관된 스키마로 저장한 저장소

온톨로지

  • 실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서

가상화(Virtualization)

  • 하나의 물리적 리소스를 여러개인 것처럼 사용하거나, 여러개의 물리적 리소스를 하나인 것처럼 사용하는 기술

REST (Representational State Transfer)

  • HTTP URI를 통해 자원(Resource)을 구분하고 POST, GET, PUT, DELETE를 통해 상태를 주고 받는 기술

알고리즘

정렬

버블정렬
  • 인접한 두 숫자를 바꾸면서 정렬 if(a[j] > a[j+1]){ temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; }
선택정렬
  • 한 텀 돌때마다 가장 작은 값을 찾음 for( ){ if(array[i] < array[min]){ min = j; } }
삽입정렬
  • 기준값을 정하고 정렬하여 쉬프트 for( ){ a[j+1] = a[j]; }

운영체제

프로세스 스케줄링 알고리즘

선점형
  • 라운드 로빈
    • 시간 할당량 / 시간 내 안되면 뒤로 돌림 ( 회전목마 ) / 균등하게 시간 주어짐
  • SRT Shortest Remaining Time First
    • 가장짧은 처리 우선수행
  • 다단계 큐
    • 독립적. 독자적 다단계
  • 다단계 피드백 큐
    • FCFS와 라운드 로빈 혼합.우선순위 단계
비선점형
  • 우선순위 프로세스별 우선 순위 / Priority
  • 기한부 명시시간 내 / Deadline
  • FCFS / FIFO
    • 도착 순서
  • SJF / Shortest Job First
    • 최소시간 우선
  • HRN / Highest Response Ratio Next
    • 응답률 순서
    • (대기시간 + 서비스시간) / (서비스시간)

Quartz Cron Trigger

초(Seconds)
분(Minutes)
시(Hours)
일(Day-of-Month)
월(Months)
요일(Days-of-Week)
연도(Year) - optional
  • 와일드카드 문자

    • 이 필드에서 가능한 “매번”을 표현합니다. 그러므로, 앞의 예제에서 “월(Month)”필드의 ‘’표시는 단순히 “매월”을 의미합니다. 요일(Day-of-Week)필드에 ‘’는 “한주동안 매일”을 의미합니다.
  • 월(Months)

    • 숫자 0에서 11, 또는 물자열 JAN, FEB, MAR, APR, MAY, JUN. JUL, AUG, SEP, OCT, NOV, 그리고 DEC를 사용할 수 있습니다. 요일(Days-of-Week)은 1과 7(1=일요일)사이의 숫자를 사용하거나, 문자열 SUN, MON, TUE, WED, THU, FRI, 그리고, SAT를 사용할 수 있습니다.
  • “/” 문자

    • 값의 증가 표현에 사용될 수 있습니다. 예를들어, 분(Minutes) 필드에 ‘0/15’ 를 사용한다면, 이것은 “0분 부터 시작하여 (시간의) 매 15분 마다”를 의미합니다. 만약, 분(Minutes) 필드에 ‘3/20’을 사용한다면, “3분부터 시작하여 매 20분 마다”를 의미하므로, ‘3,23,43’을 분 필드에 나열한것과 같습니다. 미묘하게 주목할 점은 “/35”의 경우 “매 35분 마다”를 의미하지 않는다는 것입니다. 이것은, “0분부터 시작하여 매 35분 마다”이므로, 달리 표현하면 ‘0,35’를 나열한 것과 같습니다.
  • “?”문자

    • 일(day-of-month)와 요일(day-of-week) 필드에서만 허용됩니다. 이것은 “설정 값 없음”에 사용됩니다. “?”문자는 두 필드(일, 요일)중 하나만 설정할 경우에 나머지 필드에 유용하게 사용됩니다. 다음 섹션의 예제를 보면 이해가 쉬울 것입니다.
  • “L”문자

    • 일(day-of-month)과 요일(day-of-week) 필드에서만 허용됩니다. 이 문자는 “마지막(last)”의 첫글자에서 따왔습니다. 하지만, 두 필드에서 조금 다른 의미로 해석됩니다. 예를들어, “L”이 일(day-of-month) 필드에서 사용되었을 경우 “이달의 마지막 날”을 의미합니다. 1월이면 31일이 되고, 2월은 (윤년이 아닌경우)28일이 됩니다. 요일(day-of-week) 필드에서 사용될 경우에는 단순히 “7” 또는 “SAT”를 의미합니다. 하지만, “L”이 특정값의 뒤에 올경우, 이것은 “이달의 마지막 x요일”이 됩니다. 예를들어, “6L” 또는 “FRIL”은 “이달의 마지막 금요일”을 의미합니다. 또한, 마지막 날에서 특정 기간(offset)을 설정할 수도 있습니다. “L-3”과 같이 설정하면 “(이달의 마지막일로부터)3일전부터 마지막날 까지”의 기간을 의미합니다. “L”옵션을 사용할때, 값의 목록이나 범위를 명확히 하지 않을 경우 예상밖의 결과를 낳을 수 있으므로 주의가 필요합니다.
  • “W”

    • 주어진 날로부터 가장 가까운 평일(월요일~금요일)을 가르킵니다. 만일, “15W”라는 값을 일(day-of-month)필드에 설정하면, “이달의 15번째날에서 가장 가까운 평일”을 의미합니다.
  • “#”

    • “이달의 n번째 X요일”을 가르킵니다. 예를들어, “6#3” 또는 “FRI#3”을 요일(day-of-week) 필드에 설정할 경우 이것은 “이달의 세번째 금요일”을 의미 합니다.

참고문헌

github 블로그, "Quartz CronTrigger", http://chanlee.github.io/2014/01/18/cron-expression-with-quartz-cron-trigger/, (2021.04.22) 네이버 카페, "정보처리기사 실기", https://cafe.naver.com/soojebi?, (2021.04.25) tistory 블로그, "ROLLUP", https://myjamong.tistory.com/191, (2021.04.25)

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.