오답노트(2020.8.22 기출문제)

강신찬·2023년 6월 24일
0

협약에 의한 설계(Design by Contract)

  • 클래스에 대한 여러 가정을 공유하도록 명세한 것을 협약에 의한 설계(Design by Contract)라 함.
  • 소프트웨어 컴포넌트에 대한 정확한 인터페이스 명세를 위하여 선행조건, 결과조건, 불변조건을 나타내는 설계 방법.

협약에 의한 설계의 세 가지 타입

선행조건(precondition)

  • 오퍼레이션이 호출되기 전에 참이 되어야 할 조건

결과조건(postcondition)

  • 오퍼레이션이 수행된 후 만족하여야 하는 조건

불변조건(invariant)

  • 클래스 내부가 실행되는 동안 항상 만족하여야 하는 조건(예: 리스트에 있는 노드가 항상 오름차순으로 되어야 함)

행위(Behavioral) 다이어그램

  1. 유스케이스(UseCase) 다이어그램
  2. 시퀀스(Sequence) 다이어그램
  3. 커뮤니케이션(Communication) 다이어그램
  4. 상태(State) 다이어그램
  5. 활동(Activity) 다이어그램
  6. 상호작용 개요(Interaction Overview) 다이어그램
  7. 타이밍(Timing) 다이어그램

일반화 관계

  • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현함
  • 일반적인 개념을 상위(부모), 구체적인 개념을 하위(자식)이라고 함
  • 하위 사물에서 상위 사물인 쪽으로 속이 빈 화살표를 연결함

자료 사전 표기법

= : 자료의 정의
+ : 자료의 연결
() : 자료의 생략
[] : 자료의 선택
{} : 자료의 반복
** : 자료의 설명(주석)

선택정렬

  • 선택정렬은 가장 작은 값을 찾아 첫번째 값과 교환합니다.
  • 이후 정렬된 값을 제외한 나머지 인덱스 중 가장 작은 값을 찾아 정렬되지않은 인덱스 중 가장 처음 값과 자리를 교환해 나아갑니다.

물리데이터 저장소의 파티션 설계에서 파티션 유형

범위 분할(Range Partitioning)

  • 지정한 열의 값을 기준으로 분할

해시 분할(Hash Partitioning)

  • 해시 함수를 적용한 결과 값에 따라 데이터 분할

조합 분할(Composite Partitioning)

  • 범위 분할 후 해시 함수를 적용하여 다시 분할

리스트 파티셔닝

인수 테스트(Acceptance Test) 종류

  • 사용자 인수 테스트
  • 운영상의 인수 테스트
  • 계약 인수 테스트
  • 규정 인수 테스트
  • 알파 테스트
  • 베타 테스트

트리의 차수

  • 전체 트리 중에서 가장 많은 차수
  • 최상단은 루트로 차수로 포함되지 않음

뷰(View)

  • 하나 이상의 테이블로부터 유도되는 가상 테이블
  • 논리적 독립성이 제공
  • 특정사용자가 볼 필요가 없는 다른열들을 배제하고 뷰를 만든 후 해당 사용자에게 뷰에 대한 권한을 할당하면 테이블 전체에 대한 권한을 부여하지 않아도 됨
  • 자체적으로 인덱스를 가지지 않음
    • 삽입, 삭제, 수정이 제한적

분산데이터베이스 투명성(6가지)

분할 투명성(Division Transparency)

  • 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장

위치 투명성(Location Transparency)

  • 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함

지역사상 투명성

  • 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능

중복 투명성(Replication Transparency)

  • DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질

장애 투명성(Failure Transparency)

  • 구성요소(DBMS 등)의 장애에 무관한 트랜잭션의 원자성 유지

병행 투명성(Concurrency Transparency)

  • 다수 트랜잭션 동시 수행시 결과의 일관성 유지, Time Stamp, 2PL 구현

회복(Recovery)이란

  • 트랜잭션 도중에 손상된 데이터베이스를 이전 상태로 복귀하는 작업
  • 트랙잭션의 연산을 수행할 때 데이터베이스를 변경하기 전에 로그 데이터를 생성합니다.
  • 취소(Undo) 연산으로 이미 데이터베이스에 쓰여진 것도 수정할 수 있습니다.

장애의 유형

  • 트랜잭션 장애, 시스템 장애, 미디어 장애

즉각 갱신 기법(Immediate Update)

  • 트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터 베이스에 반영하는 기법
  • 갱신한 모든 내용을 로그(Log)에 보관합니다.
  • 회복 작업을 위해 취소(Undo)와 재시도(Redo) 모두 사용할 수 있습니다.

연기 갱신 기법(Deffered Updatae)

  • 트랜잭션을 완료할 때까지 데이터베이스에 갱신을 연기하는 기법
  • 트랜잭션 수행으로 갱신할 내용은 로그(Log)에 보관합니다.
  • 트랜잭션이 부분 완료 시점에 Log의 기록을 실제 데이터 베이스에 반영합니다.
  • 트랜잭션 수행 중에 장애가 발생하여 Rollback하여도 취소(Undo)할 필요가 없습니다.
  • 재시도(Redo) 작업을 통해 최근의 정상적인 데이터베이스로 회복한 후에 트랜잭션을 재실행할 수 있습니다.

검사점 기법(Check Point)

  • 트랜잭션 중간에 검사점을 로그에 보관하여 트랜잭션 전체를 취소하지 않고 검사점까지 취소할 수 있는 기법

그림자 페이지 대체 기법(Shadow Paging)-로그가 필요없음

  • 트랜잭션의 연산으로 갱신할 필요가 있을 때 복사본인 그림자 페이지를 보관하는 기법
  • 트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복.
  • 로그(Log), 취소(Undo), 재시도(Redo)할 필요가 없습니다.

정규화 작업

  • 1NF
    • 도메인이 원자값만으로 구성된 정규형
  • 2NF
    • 기본 키가 아닌 모든 속성이 기본 키에 대해 완전 함수적 종속을 만족하는 정규형
  • 3NF
    • 기본 키가 아닌 모든 속성이 기본 키에 대해 이행적 종속을 만족 안하는 정규형
  • BCNF
    • 모든 결정자가 후보 키인 정규형
  • 4NF
    • 다치 종속 A->B가 성립하는 경우 A에 함수적 종속 관계를 만족하는 정규형
  • 5NF
    • 모든 조인 종속이 후보 키를 통해서만 성립되는 정규형

순수 관계 연산자

  • select
  • project
  • join
  • division

일반 집합 연산자

  • 합집합
  • 교집합
  • 차집합
  • 카티션 프로덕트

소프트웨어 취약점

FTP 바운스 공격(네트워크 공격)

  • FTP 프로토콜 구조의 허점을 이용한 공격

SQL 삽입(웹 공격)

  • SQL의 논리적 에러를 이용한 공격

디렉토리 접근공격(웹 공격)

  • 웹 루트 디렉토리 외부에 저장된 파일 또는 디렉토리에 접근하는 공격 방법

버퍼 오버플로(어플리케이션 공격)

  • 메모리를 다루는 데 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점

HRN 방식의 우선순위 산정 공식

  • (대기시간+서비스시간)/서비스 시간 (값이 클 수록 우선순위가 높다.)
  • 위 계산식의 값이 클수록 우선순위가 높은 것임. 값이 큰 순서대로 실행

파이썬 슬라이스

  • [:]
    • 처음부터 끝까지
  • [start:]
    • start오프셋부터 끝까지
  • [:end]
    • 처음부터 end-1 오프셋까지
  • [start : end]
    • start오프셋부터 end-1 오프셋까지
  • [start : end : step]
    • step만큼 문자를 건너뛰면서, 위와 동일하게 추출

디지털 트윈(digital twin)

  • 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상의 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델
  • 미국 제너럴 일렉영(GE)이 주창한 개념으로, 컴퓨터에 현실 속 사물의 쌍둥이를 가상화하여 만들고, 현실에서 발생할 수 있는 상황을 컴퓨터로 시뮬레이션함으로써 결과를 미리 예측하는 기술

Quantum Key Distribution

  • 양자암호관련된거

Digital Rights Management

  • DRM이라고도 하며, 저작권관리 관련 기술

Grayware

  • 바이러스, 트로잔등 악성프로그램과는 다르게 사용자 동의를 받아 설치하는 프로그램
  • (ex 원격제어 프로그램, 애드웨어 등)

Mashup

  • 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술

Putnam

  • 소프트웨어 생명주기 전 과정 동안 사용될 곡선의 노력 분포를 가정해주는 모형
  • Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.

SLIM

  • Putnam 기법 모형을 기초로 개발된 자동화 추정 도구

훈남(Putnam)이 노력(노력분포도)해서 슬림(SLIM)해졌네

Mesh Network

  • 기존 무선 랜의 한계 극복을 위해 등장하였으며, 대규모 디바이스의 네트워크 생성에 최적화되어 차세대 이동통신, 홈네트워킹, 공공 안전 등의 특수목적을 위한 새로운 방식의 네트워크 기술

Software Defined Perimeter

  • 소프트웨어 정의 경계

Virtual Private Network

  • 가상 사설망

Local Area Network

  • 근거리 통신망

DDoS는

  • 네트워크 취약점이 있는 호스트들을 탐색한 후 이를 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트(agent)로 만든 후 DDoS공격에 이용

분산 서비스 공격용 툴의 종류

1.Trin00
2.TFN(Tribe Flooding Network)
3.TFN2K
4.Stacheldraht

Secure shell

  • 네트워크 상의 다른 컴퓨터에서 제어 가능한 프로그램 또는 해당 프로토콜

Nimda

  • 바이러스 중 하나

Deadlock

  • 교착상태

합성 중심(Composition-Based)

  • 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 한다.

생성 중심(Generation-Based)

  • 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 한다.

CLASP - Comprehensive, Lightweight Application Security Process.

  • 소프트웨어 개발 생명주기(SDLC) 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스로써, 활동중심·역할기반의 프로세스로 구성된 집합체로, 이미 운영중인 시스템에 적용하기 적합합니다.

CWE - Common Weakness Enumeration.

  • 주요 보안 취약점, 보안 문제를 정리하는 프로젝트입니다.

PIMS - Personal Information Management System.

  • 개인정보 보호관리체계입니다.

Seven Touchpoints

  • 소프트웨어 개발 생명주기(SDLC)의 각 단계에 관련된 7가지의 보안 강화 활동을 개발자에게 집중적으로 관리하도록 요구하여 실무적으로 검증된 개발보안 방법론입니다.

RPC(Remot Procedure Call)

  • 응용 프로그램이 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어

ORB(Object Request Broker)

  • 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현함
  • 최근에는 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품도 있음

IPSec

  • 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공

SSL

  • TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜

S-HTTP

  • 클라이언트와 서버 간 전송되는 모든 메시지를 암호화하는 프로토콜

SMTP(Simple Mail Transfer Protocol)

  • 전자 우편을 교환하는 서비스를 제공하는 프로토콜

McCabe의 cyclomatic 수

V(G) = Edge - Node + 2

Edge = 6 (화살표)
Node = 4 (동그라미)

V(G) = 6 - 4 + 2 = 4

< 이진 트리 운행법 >

  • Preorder 운행 : Root → Left → Right 순으로 운행
  • Inorder 운행 : Left → Root → Right 순으로 운행
  • Postorder 운행 : Left → Right → Root 순으로 운행

Divide and Conquer(분할 정복 알고리즘)

  • 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 알고리즘

Greedy(탐욕 알고리즘)

  • 현재 시점에서 가장 최적의 방법을 선택하는 알고리즘

brute force 알고리즘 (완전탐색 알고리즘

  • 모든 조합을 시도하여 문제의 답을 찾는 알고리즘

백트래킹(backtracking)이란?

  • 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 최적화 문제와 결정 문제를 푸는 방법

로킹 꿀팁

  • 로킹 단위가 크면 나머지가 다 작아짐.
  • 로킹 단위가 작으면 나머지가 다 커짐

배치 프로그램의 필수 요소로

  • 대용량 데이터, 자동화, 견고성, 안정성, 성능

기능점수(Functional Point)모형에서 비용산정에 이용되는 요소

  • 자료 입력(입력 양식)
  • 정보 출력(출력 보고서)
  • 명령어(사용자 질의수)
  • 데이터 파일
  • 필요한 외부 루틴과의 인터페이스

블록 암호화 방식

  • DES, SEED, AES, ARIA

스트림 암호화 방식

  • LFSR, RC4

임계 경로

  • 작업의 시작 및 종료 구간이 동시에 이루어질 때 가장 오래 걸리는 경로
profile
꾸준히 공부하는 풀스텍 개발자

0개의 댓글