정보처리기사 실기 정리 (2023. 03~)
my code archive
반응형

CSMA/CA

- 무선 LAN

 

CSMA/CD

-유선 LAN

 

서비스 지향 아키텍쳐 (Service Oriented Architecture)

프로세스 수행을 지원하는 정보 시스템의 구현을 위해 가장 선진화된 소프트웨어 아키텍처로, 서비스라고 정의되는 분할된 애플리케이션 조각들을 Loosely-copuled하게 연결해 하나의 완성된 Application을 구현하기 위한 아키텍쳐이다.

 

피코넷 (PICONET)

여러 개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선네트워크 기술

 

지그비 (Zigbee)

저속 전송 속도를 갖는 홈 오토메이션 및 데이터 네트워크를 위한 표준 기술

 

TCP 세션 하이재킹

-TCP 3-Way-Handshake 과정에 끼어듦으로써 클라이언트와 서버 간의 동기화된 시퀀스 번호를 가로채 서버에 무단으로 접근

-케빈 미트닉이 사용했던 공격 방법의 하나로 TCP 세션 관리 취약점을 이용한 공격 기법

 

트리거란?

데이터베이스 시스템에서 삽입, 삭제, 갱신 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL

 

자료 사전 사용 목적 ?

조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 이용하는지 알려주기 위해

 

요구사항 개발 프로세스

요구사항 도출 소프트웨어가 해결해야 할 문제를 이해하고 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법 결정, 수집된 요구사항을 구체적으로 표현하는 단계
요구사항 분석 도출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 단계
요구사항 명세 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계
요구사항 확인 및 검증 분석가가 요구사항을 이해했는지 확인하고 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며 일관성이 있고 완전한지 검증하는 단계

 

요구사항 검토

-동료검토

요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료들이 이를 들으며 결함을 발견하는 형태의 검토 방법

-워크스루

검토 회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 결함을 발견하는 형태

-인스펙션

요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견하는 형태

 

RAID

여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술

 

JSON

속성-값 쌍, 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

 

XML

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

 

릴리즈노트

최종 사용자인 고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서

 

트랜잭션이란

데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

 

트랜잭션 특성

원자성, 일관성, 격리성, 영속성

 

더보기

하나의 트랜잭션이 성공적으로 끝나고 데이터베이스가 일관성 있는 상태에 있거나 하나의 트랜잭션이 끝났을 때 사용하는 연산?

- 커밋

 

하나의 트랜잭션이 비정상적으로 종료되어 트랜잭션 원자성이 깨질 경우 처음부터 다시 시작하거나, 부분적으로 취소하는 연산?

- 롤백

 

트랜잭션 제어 언어(TCL)

-커밋(COMMIT) : 트랜잭션을 메모리에 영구적으로 저장하는 명령어

-롤백(ROLLBACK) : 트랜잭션 내역을 저장 무효화시키는 명령어

-체크포인트(CHECKPOINT) : ROLLBACK을 위한 시점을 지정하는 명령어

 

고립화 수준

Read Uncommitted 한 트랜잭션에서 연산 중인(아직 커밋되지 않은) 데이터를 다른 트랜잭션이 읽는 것을 허용하는 수준
Read Committed 한 트랜잭션에서 연산(갱신)을 할 때 연산이 완료될 때까지 연산 대상 데이터에 대한 읽기를 제한하는 수준
Repeatable Read 선행 트랜잭션이 특정 데이터를 읽을 때 트랜잭션 종료 시까지 해당 데이터에 대한 갱신, 삭제를 제한하는 수준
Serializable Read 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때 해당 데이터 영역 전체에 대한 접근을 제한하는 수

 

키의 종류

1. 기본키 : 테이블 각 튜플을 고유하게 식별하는 컬럼

2. 대체키 : 후보키 중에서 기본키로 선택되지 않은 키

3. 후보키 : 테이블 각 튜플을 구별하는데 기준이 되는 컬럼

4. 슈퍼키 : 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못하는 키

5. 외래키 : 테이블 간 참조 데이터 무결성을 위한 제약조건, 한 릴레이션 컬럼이 다른 릴레이션의 기본키로 이용되는 

 

애플리케이션 성능 측정 지표

처리량 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
응답시간 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
경과시간 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료될 때까지 걸리는 시간
자원 사용률 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

 

OLAP

-다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사 결정에 활용하는 방식

 

OLAP 연산

Roll-up 분석할 항목에 대해 한 차원 계층 구조를 따라 단계적으로 상세 데이터->요약 데이터 접근
Drill-down 분석할 항목에 대해 한 차원 계층 구조를 따라 단계적으로 요약 데이터->상세 데이터 접근
Drill-through 데이터 웨어하우스나 OLTP에 존재하는 상세 데이터에 접근
Drill-across 다른 데이터 큐브의 데이터에 접근
Pivoting 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능
Slicing 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교
Dicing Slicing을 더 세분화하는 기능

 

리팩토링

유지보수 생산성 향상을 목적으로 기능을 변경하지 않고 복잡한 소스 코드를 수정, 보완하여 가용성 및 가독성을 높이는 기법

 

고가용성 유형

-상시 대기 방식

-상호 인수

-동시적 접근

 

프로토콜의 기본 요소

구문, 의미, 타이밍

 

프로세스 교착 상태 관련 용어

교착상태 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태
상호배제 프로세스가 자원을 베타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
점유와 대기 한 프로세스가 자원을 점유하고 있으면서 또다른 자원을 요청하여 대기하고 있는 상

 

응집도

- 모듈의 독립성을 나타내는 정도로 모듈 내부 구성요소 간 연관정도이다.

우연적 응집도 모듈 내부의 각 구성 요소가 연관이 없을 경우의 응집도
논리적 응집도 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
시간적 응집도 연관된 기능이라기보단 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 응집도
절차적 응집도 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우 응집도
교환적(통신적) 응집도 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 응집도
순차적 응집도 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우 응집도
기능적 응집도 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도

 

디자인 패턴

  • 생성 패턴
추상 팩토리 ▪️ 구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현함.
▪️ 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능함
빌더 ▪️ 작게 분리된 인스턴스를 건축하듯이 조합하여 객체를 생성함
▪️ 객체의 생성 과정과 표현 방법을 분리하고 있어 동일한 객체 생성에서도 서로 다른 결과를 만들어 낼 수 있음
팩토리 메소드 ▪️ 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
▪️ 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당
프로토타입 ▪️ 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
▪️ 일반적인 방법으로 객체를 생성하며 비용이 큰 경우 주로 이용함
싱글톤 ▪️ 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만 여러 프로세스가 동시에 참조할 수는 없음
▪️ 클래스 내에서 인스턴스가 하나 뿐임을 보장하며 불필요한 메모리 낭비를 최소화할 수 있음
  • 구조 패턴
어댑터 ▪️ 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
▪️ 기존의 클래스를 이용하고 싶지만 인터페이스가 일치하지 않을 때 이용함
브리지 ▪️ 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴
▪️ 기능과 구현을 두 개의 별도 클래스로 구현함
컴포지트 ▪️ 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴
▪️ 객체들을 트리 구조로 구성하여 디렉터리 안에 디렉터리가 있듯이 복합 객체 안에 복합 객체가 포함되는 구조를 구현할 수 있음
데코레이터 ▪️ 객체간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
▪️ 임의의 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현함
퍼싸드 ▪️ 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴
플라이웨이트 ▪️ 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴
프록시 ▪️ 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴
▪️ 네트워크 연결, 메모리의 대용량 객체로의 접근 등에 주로 이용함
  • 행위 패턴
책임 연쇄 ▪️ 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴
▪️ 고리(Chain)로 묶여 있어~
커맨드 ▪️ 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
▪️ 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화함
인터프리터 ▪️ 언어에 문법 표현을 정의하는 패턴
반복자 ▪️ 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
▪️ 내부 표현 방법의 노출 없이 순차적 접근이 가능함
중재자 ▪️ 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
메멘토 ▪️ 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공
옵서버 ▪️ 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴, 상호 작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 패턴
▪️ 일대다의 의존성을 정의함
상태 ▪️ 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
전략 ▪️ 동일한 계열의 알고리즘을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴
템플릿 메소드 ▪️ 상위 클래스에서 골격을 정의하고 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴
방문자 ▪️ 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴

내가 외우려고 메모

구체적인 클래스에 의존하지 않고 ~ 추상적
-추상팩토리(Abstract Factory)

건축하듯이
-빌더(Builder)

상위클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당
-팩토리메소드(Factory Method)

하나의 객체를 생성하면 어디서든 참조
-싱글톤(Singleton)

생성 패턴 : 추빌팩프싱

호환성 없는 ~ 변환
-어댑터(Adapter)

구현부, 추상층 분리
-브리지(Bridge)

트리 구조, 복합 객체를
-컴포지트(Composite)

객체간의 결합을 통해 능동적으로 기능들을 확장
-데코레이터(Decorator)

복잡한 시스템에 대해 단순한 인터페이스 제공
-퍼싸드(Facade)

클래스의 경량화!
-플라이웨이트(Flyweight)

실체 객체에 대한 대리 객체, 정보 은닉
-프록시(Proxy)

구조 패턴 : 어브컴데퍼플프

고리로 묶여 있어~
-책임 연쇄(Chain of Responsibility)

요청에 사용되는 각종 명령어~
-커맨드(Command)

언어에 문법 표현 정의
-인터프리터(Interpreter)

접근이 잦은 객체에 대해 동일한 인터페이스 사용
-반복자(Iterator)

수많은 객체들 간 복잡한 상호작용을 캡슐화
-중재자(Mediator)

특정 시점에서 객체 내부 상태를 객체화, Ctrl+Z !!
-메멘토(Memento)

느슨한~
-옵서버(Observer)

상태에 따라 동일 동작을 다르게 처리
-상태(State)

동일 계열 알고리즘을 개별적으로 캡슐화
-전략(Strategy)

유사 서브 클래스를 묶어 공통 내용을 상위 클래스로 정의함->코드 양 줄이고 유지보수를 용이하게함
-템플릿 메소드(Template Method)

데이터 구조 처리 기능 분리, 분리된 처리 기능은 각 클래스를 방문하여 수행
-방문자(Visitor)

행위 패턴 : 책커인반중매옵상전템방

 

UI 시나리오의 문서 작성 요건

완전성 UI 시나리오는 누락이 없어야 하고 최대한 빠짐없이 가능한 한 상세하게 기술
일관성 서비스에 대한 목표, 시스템 및 사용자의 요구사항이 일관성이 있어야 하고 모든 문서의 UI 스타일을 일관적으로 구성
이해성 처음 접하는 사람도 이해하기 쉽도록 구성하고 설명해야 하고 이해하지 못하는 추상적인 표현이나 이해하기 어려운 용어는 사용하지 않아야 함
가독성 문서를 쉽게 읽을 수 있어야 하고 표준화된 템플릿을 작성하여 적용
추적 용이성 쉽게 추적 가능해야 하고 변경 사항들이 언제 어디서 어떤 부분들이 왜 발생했는지 추적이 쉬어야함
수정 용이성 쉽게 변경이 가능해야 하고 수정 또는 개선 사항을 시나리오에 반영하는 데 있어 쉽게 적용할 수 있어야 함

 

UI 설계 원칙

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

 

제품 계열 방법론

구조적 방법론 -전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 접근 방식의 방법론
정보공학 방법론 -정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
객체지향 방법론 객체라는 기본 단위로 시스테을 분석 및 설계하는 방법론
컴포넌트 기반 방법론 -소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
애자일 방법론 -절찹다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하며 효율적으로 개발할 수 있는
신속 적응적 경량 개발바법론
제품 계열 방법론 -특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

객체지향 설계 원칙

1. 단일 책임의 원칙 : 객체는 단 하나의 책임만 가져야 한다.

2. 개방 폐쇄 원칙 : 소프트웨어 구성요소는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.

3. 리스코프 치환 원칙 : 서브 타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다.

4. 인터페이스 분리 원칙 : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다.

5. 의존 역전 원칙 : 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 한다.

 

데이터베이스 장애 유형

1. 실행장애 : 데이터를 발견하지 못하거나 연산 실패

2. 트랜잭션 장애 : 트랜잭션 내의 오류 or 내부조건 (입력 데이터의 불량, 데이터 불명, 시스템 자원 과다 사용)

3. 시스템 장애 : 하드웨어 오작동으로 메인 메모리에 있는 정보 손실 or 교착(메모리)

4. 미디어 장애 : 디스크 헤드 붕괴 or 저장 장치의 데이터베이스 손상

 

병행 제어

다수 사용자 환경에서 여러 트랜잭션을 수행할 때 데이터의 일관성 유지를 위해 상호 작용을 제어하는 기법

 

병행 제어 미보장 시 문제점

-갱신손실

먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류

-현황 파악 오류

트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류

-모순성

두 트랜잭션이 동시에 실행되어 DB 일관성 결여되는 오류

-연쇄복귀

복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 부분을 취소하지 못하는 오류

 

관계대수 : 원하는 정보가 무엇인가를 정의하고 원하는 정보를 유도하기 위한 과정을 정의한 절차적 언어

관계해석 : 원하는 정보가 무엇인지만을 정의하는 비절차적인 언어

 

스키마의 유형

외부 스키마 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 스키마
개념 스키마 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 스키마
내부 스키마 데이터베이스의 물리적 구조를 정의한 스키마로 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재

 

데이터베이스 특성

-실시간 변화 : 쿼리에 대해 실시간 응답이 가능해야함

-계속적인 변화 : 새로운 데이터 삽입, 삭제, 갱신으로 항상 최신 데이터를 유지함

-동시 공용 : 다수 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야함

-내용 참조 : 데이터베이스에 있는 데이터 참조 시 데이터 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾음

 

데이터베이스 정규화

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

 

DBMS 특징

데이터 무결성 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
데이터 일관성 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
데이터 회복성 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
데이터 보안성 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
데이터 효율성 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질

 

데이터베이스 고립화 수준

-Read Uncommitted : 한 트랜잭션에서 연산 중인(아직 커밋되지 않은) 데이터를 다른 트랜잭션이 읽는 것을 허용하고 연산 중인 데이터에 대한 연산은 불허

-Read Committed : 연산이 완료될 때까지 데이터에 대한 읽기를 제한하고 연산이 완료된 데이터는 다른 트랜잭션이 읽는 것을 허용

-Repeatable Read : 선행 트랜잭션이 특정 데이터를 읽을 때 트랜잭션 종료 시까지 해당 데이터에 대한 갱신, 삭제를 제한

-Serializable Read : 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때 해당 데이터 영역 전체에 대한 접근을 제한

 

데이터베이스 암호화 기법

  • API 방식 : 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식
  • Plug-in 방식 : 암/복호화 모듈이 DB 서버에 설치된 방식
  • TDE 방식 : DBMS 커널이 자체적으로 암/복호화 기능을 수행하는 방식
  • Hybrid 방식 : API 방식과 Plug-in 방식을 결합하는 방식

 

DRS 유형

Mirror Site 주 센터와 데이터 복구센터 모두 운영 상태, 실시간 동시 서비스가 가능한 재해복구센터
Hot Site 주 센터와 동일한 수준의 자원을 대기 상태로 보유, 동기&비동기 방식의 방식 미러링을 통하여
최신 상태를 유지하고 있는 재해복구센터
Warm Site Hot Site와 유사하나 재해복구센터에 주 센터와 동일 수준 자원을 보유하는 대신
중요성이 높은 자원만 부분적으로 보유하고 있는 재해복구센터
Cold Site 데이터만 원격지에 보관, 재해 시 데이터를 근간으로 필요 자원으로 조달하여 복구할 수 있는 재해복구센터
⭐⭐⭐⭐⭐
mirror sie : 즉시
hot site : 수시간
warm site : 수일~수주
cold site : 수주 ~ 수개월

RTO : 업무중단시점부터 복구될 때 까지 걸린시간
RPO : 손실허용시점
⭐⭐⭐⭐⭐

 

IPv6 전송방식

유니캐스트, 멀티캐스트, 애니캐스트

 

IPv4 전송방식

유니캐스트, 멀티캐스트, 브로드캐스트

 

소프트웨어 품질 특성

기능성 소프트웨어가 특정 조건에서 사용될 때 명시된 요구와 내재된 요구를 만족하는 기능을 제공하는지
신뢰성 옳고 일관된 결과를얻기 위해 요구된 기능을 수행할 수 있는 정도,
주어진 시간 동안 주어진 기능을 오류 없이 수행하는 정도
사용성 사용자와 컴퓨터 사이에 발생하는 어떤 행위에 대해 사용자가 정확하게 이해하고 사용하며,
향후 다시 사용하고 싶은 정도
효율성 사용되는 자원의 양에 따라 요구된 성능을 제공하는 소프트웨어 제품의 능력,
얼마나 빠르게 처리할 수 있는지?
유지보수성 소프트웨어 제품이 변경되는 능력
이식성 한 환경에서 다른 환경으로 전이될 수 있는 소프트웨어 제품의 능

 

응용 계층 프로토콜

HTTP 텍스트 기반의 통신 규약, 인터넷에서 데이터를 주고받을 수 있는 프로토콜
FTP TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
SMTP 인터넷에서 TCP 포트 번호 25번을 사용하여 이메일을 보내기 위해 이용
POP3 TCP 110번, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 데 사용
IMAP TCP 143번, 이메일을 가져오고 온라인 및 오프라인 모두 지원
Telnet 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜

네트워크 계층 프로토콜

IP 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신규약
ARP IP 네트워크상에서 IP 주소를 MAC 주소(물리주소)로 변환하는 프로토콜
RARP IP 호스트가 자신의 물리 네트워크 주소(MAC)는 알지만 IP 주소를 모르는 경우,
서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
ICMP -IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
-수신자 도달 불가 메시지는 수신지 또는 서비스에 도달할 수 없는 호스트를 통지하는 데 사용
IGMP 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데
사용하는 통신 프로토콜
라우팅 프로토콜 내부 라우팅 프로토콜에는 RIP, OSPF가 대표적
외부 라우팅 프로토콜에는 EGP, BGP가 대표적

+ 대표적인 라우팅 프로토콜

프로토콜 설명 특징
RIP -거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
-Bellman-Ford 알고리즘을 사용
-최대 홉 수를 15개로 제한
OSPF -RIP 단점을 개선하기 위해 링크 상태 알고리즘을 적용
-링크 상태 라우팅 기반 메트릭 정보를 한 지역 내 모든 라우터에 변경 발생 시에만 보내고 라우팅 테이블을 구성, 계산하는 데 다익스트라 알고리즘을 사용
 
BGP -자치 시스템 상호 간 경로 정보를 교환하기 위한 라우팅 프로토콜
-변경 발생 시 가장 짧은 경로를 경로 벡터 알고리즘을 통해 선정, TCP 연결을 통해 자치 시스템으로 라우팅 정보를 신뢰성 있게 전달
-ISP 사업자들 상호 간에 주로 사용

 

서버 접근통제 유형

임의적 접근통제 (DAC) 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한하는 방법
강제적 접근통제 (MAC) 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
역할기반 접근통제 (RBAC) 중앙 관리자가 사용자와 시스템 상호 관계를 통제하며 조직 내 맡은 역할에 기초하여 접근을 제한하는 방법

 

접근 통제 관련 용어

식별 (Identification) 자신이 누구라고 시스템에 밝히는 행위로 객체에게 주체가 자신의 정보를 제공하는 활동
인증 (Authentication) 주체의 신원을 검증하기 위한 활동으로 주체의 신원을 객체가 인정해 주는 행위
인가 (Authorization) 인증된 주체에게 접근을 허용하는 활동으로 특정 업무를 수행할 권리를 부여하는 행위

 

XP 12가지 기본 원리

짝 프로그래밍 개발자 둘이서 짝으로 코딩하는 원리
공동 코드 소유 시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
지속적인 통합 매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원래
계획 세우기 고객이 요구하는 비즈니스 가치를 정의하고 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리
작은 릴리즈 작은 시스템을 먼저 만들고 짧은 단위로 업데이트 한다는 원리
메타포어 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사 소통을 원활하게 한다는 원리
간단한 디자인 현재 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리
테스트 기반 개발 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램 코드를 작성해야 한다는 원리
리팩토링 프로그램 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성한다는 원리
40시간 작업 개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아야 한다는 원리
고객 상주 개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리
코드 표준 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다는 원리

 

소프트웨어 개발 방법론

구조적 방법론 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 접근 방식의 방법론
정보공학 방법론 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
개발 주기를 이용해 대형 프로젝트를 수행
객체지향 방법론 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론
컴포넌트 기반 방법론 소프트웨어를 구성하는 컴포넌트를 조립해 하나의 새로운 응용 프로그램을 작성하는 방법론
애자일 방법론 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하며 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
제품 계열 방법론 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

방화벽

미리 정의된 보안 규칙을 기반으로 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고 내/외부 네트워크의 상호간 영향을 차단하기 위한 보안 시스템

 

페이지 교체 알고리즘

OPT : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법

LRU : 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법

LFU : 사용 빈도가 가장 적은 페이지를 교체하는 기법

NUR : 최근에 사용하지 않은 페이지를 교체하는 기법

SCR : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지

 

RTO / RPO

RTO
(Recovery Time Objective, 목표 복구 시간)
비상 사태 또는업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간
RPO
(Recovery Point Objective, 목표 복구 시점)
비상 사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점

 

CMMI(I) - 소프트웨어 개발 능력/성숙도 평가 및 프로세스 개선 활동의 지속적인 품질 개선 모델

1 초기화 단계 정의된 프로세스가 없고 작업자 능력에 따라 성과가 좌우되는 단계
2 관리 단계 특정 프로젝트 내의 프로세스가 정의되고 수행되는 단계
3 정의 단계 조직 표준 프로세스를 활용하여 업무 수행 단계
4 정량적 관리 단계 정량적 기법을 활용하여 핵심 프로세스를 통제하는 단계
5 최적화 단계 프로세스 역량 향상을 위해 신기술 도입, 프로세스 혁신 활동 수행 단계

 

고급 데이터베이스

-데이터 웨어하우스

급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효과적으로 사용할 수 있도록 한 데이터베이스,

다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장, 필요한 인덱스를 생성하고 분석하여 효율적인 의사 결정에 필요한 자료를 얻을 수 있음.

-데이터 마트

데이터의 한 부분으로서 특정 사용자가 관심을 갖는 데이터들을 담은 비교적작은 규모의 데이터 웨어하우스

전시적으로 구축된 데이터 웨어하우스로부터 특정 주제나 부서 중심으로 구축된 소규모 단일 주제의 데이터 웨어하우스

-데이터 마이닝

데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는정보를 발견하기 위한 기법

 

라우팅 알고리즘

-거리백터 알고리즘

벨만-포드,

인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘

-링크 상태 알고리즘

다익스트라 알고리즘,

링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜

 

단위 모듈 핵심 원리

정보 은닉 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
분할과 정복 복잡한 문제를 분해, 모듈 단위로 문제 해결
데이터 추상화 각 모듈 자료 구조를 액세스하고 수정하는 함수 내에 자료 구조의 표현 내역을 은폐
모듈 독립성 낮은 결합도와 높은 응집도를 가짐

 

테스트 레벨 종류

-단위 테스트

사용자 요구사항에 대한 단위 모듈, 서브 루틴 등을 테스트하는 단계

-통합 테스트

단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계

-시스템 테스트

통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지

-인수 테스트

계약상의 요구사항을 만족했는지 확인

 

성능 테스트 유형

-부하 테스트 : 시스템에 부하를 계속 증가시키면서 시스템 임계점을 찾는 테스트

-스트레스 테스트 : 시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트

-스파이크 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트

-내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트

 

-동적분석도구

애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고 발생한 스레드의 결함 등을 분석하기 위한 도구

 

분석 자동화 도구

상위 CASE -계획수립, 요구 분석, 기본 설계 단계를 다이어그램으로 표현
-자료 흐름도, 프로토타이핑 작성 지원 및 UI 설계 지원
하위 CASE -구문 중심 편집 및 정적, 동적 테스트 지원
-시스템 명세서 생성 및 소스 코드 생성 지

 

 

블랙박스 / 화이트박스 테스트

  • 블랙박스 테스트

각 기능이 완전히 작동되는 것을 입증하기 위한 테스트 (=기능 테스트)

프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트

동등분할 테스트
(= 동치 분할, 균등 분할, 동치 클래스 분해)
(Equivalence Partitioning Testing)
-입력 데이터의 영역을 유사한 도메인별로 유효값/무효값을 그룹핑하여 대표값 테스트 케이스를 도출하여 테스트
경곗값 분석 테스트
(Boundary Value Analysis Testing)
-등가 분할 후 경계값 부분에서 오류 발생 확률이 높으므로 경계값을 포함하여 테스트 케이스를 설계하여 테스트
결정 테이블 테스트
(Decision Table Testing)
-요구사항 논리와 발생 조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트
상태 전이 테스트
(State transtion Testing)
-테스트 대상, 시스템이나 객체 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트
유스케이스 테스트
(Use Case Testing)
-시스템이 실제 사용되는 유스케이스로 모델링되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트
분류 트리 테스트
(Classification Tree Method Testing)
-SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트
페어와이즈 테스트
(Pairwise Testing)
-테스트 데이터값 간 최소한 1번씩 조합하는 방식, 커버해야 할 기능적 범위를 모두 조합해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트
원인- 결과 그래프 테스트
(Cause-Effect Graphing Testing)
-그래프를 홀용해 입력 데이터 간 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법
비교 테스트
(Comparison Testing)
-여러 버전의 프로그램에 같은 입력값을 넣어 동일한 결과 데이터가 나오는지 비교해 보는 테스트
오류 추정 테스트
(Error Guessing Testing)
-개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트
-특정 테스트 대상이 주어지면 테스트 경험, 직관을 바탕으로 개발자가 범할 수 있는 실수를 나열하고 해당 실수에 따른 결함을 노출 -> 다른 블랙박스 테스트 기법 보완 시 사용
  • 화이트박스 테스트

원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

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

 

-파티션 종류

-범위 분할 : 분할 키값이 범위 내에 있는지 여부를 구분하는 분할 기법

-해시 분할 : 해시 함수의 값에 따라 파티션에 포함할지 여부를 결정하는 분할 기법

-목록 분할 : 값 목록에 파티션을 할당하고 분할 키값을 그 목록에 맞게 분할하는 기법

-조합 분할 : 범위 분할, 해시 분할, 목록 분할 중 2개 이상의 분할 기법을 결정하는 기법

 

페이징 기법 문제점, 해결방법

-스레싱 : 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상

-워킹 세트 : 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 완벽한 페이지 교체 현상을 줄이고자 하는 기법

-페이지 부재 빈도 : 페이지 부재율 상한과 하한을 정해서 직접적으로 페이지 부재율을 예측하고 조절하는 기법

 

교착상태

-상호 배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

 

교착상태 필요 충분 조건

-상호 배제

-점유와 대기

-비선점

-환형 대기

 

교착상태 해결방법

-예방 기법 

-회피 기법 : 주로 은행원 알고리즘이 사용됨

-발견 기법

-회복 기법

 

프로세스 스케줄링

  • 비선점

 -FCFS

준비 상태 큐에 도착한 순서에 따라 차례로 CPU 할당

공평성은 유지되지만 중요한 작업이 중요하지 않은 작업을 기다리게 되는 경우 발생

-SJF

실행 시간이 짧은 프로세스에 먼저 CPU 할당

가장 적은 평균 대기시간을 제공함

-HRN

실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 기법

대기 시간과 실행 시간을 이용함, 우선 순위 계산 결과값이 높은 것부터 우선 순위를 부여

 

  • 선점

-RR (라운드 로빈, Round Robin)

FCFS를 선점 형태로 변형한 기법

-SRT

SJF 알고리즘을 선점 형태로 변형한 기법

-MLQ

프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비 상태 큐를 사용

 

⭐️소프트웨어 아키텍처 4+1 뷰 구성요소

-유스케이스 뷰

유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는 데 사용되는 뷰

(사용자, 설계자, 개발자, 테스트 관점)

-논리 뷰

시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해 주는 뷰

(설계자, 개발자 관점)

-프로세스 뷰

시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰

(개발자, 시스템 통합자 관점)

-구현 뷰

개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰

-배포 뷰

컴포넌트가 물리적인 아키텍처에 어떻게 배치되는지를 매핑해서 보여주는 뷰

 

TCP 흐름 제어, 정지-대기 기법

-흐름 제어

전송 계층에서 데이터 패킷 전송 시 수신 한도를 넘는 과잉 패킷 입력으로 패킷 분실이 일어나지 않도록 패킷 흐름 조절

-정지-대기

프레임 손실 시 손실된 프레임 1개를 전송하고 수신자의 응답을 기다리는 방식으로 한 번에 프레임 1개만 전송 가능

 

TCP 특징

1. 신뢰성 보장

2. 연결 지향적 특징

3. 흐름 제어

4. 혼잡 제어

 

OSI 7계층

응용 계층 사용자와 네트워크 간 응용 서비스 연결, 데이터 생성
표현 계층 데이터 형식 설정, 부호 교환, 암/복호화
세션 계층 송수신 간의 논리적인 연결, 연결 접속, 동기 제어
전송 계층 송수신 프로세스 간의 연결, 신뢰성 있는 통신 보장, 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어
네트워크 계층 단말기 간 데이터 전송을 위한 최적화된 경로 제공
데이터링크 계층 인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화, 오류 제어, 흐름 제어, 회선 제어
물리 계층 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환

 

암호화 알고리즘

-대칭키 암호 방식

1.DES : 1975년 미국 NBS에서 발표

2.AES : 2001년 미국 표준 기술 연구소 NIST에서 발표, DES의 한계를 느낀 후 발표

3.SEED : 한국인터넷진흥원(KISA)에서 개발

4.ARIA : 국가정보원과 산학 연구협회가 개발

5.RSA : 큰 숫자를 소인수분해하기 어렵다는 것에 기반하여 만들어짐

스트림 암호 평문과 같은 길이의 키 스트림을 연속적으로 생성하여 평문과 이진 수열을 비트 단위로 XOR 연산, 암호문을 생성
블록 암호 평문을 일정한 블록 단위로 나누어 블록마다 암호화 과정을 수행하여 고정된 크기의 블록 단위의 암호문 생성

 

⭐️비대칭 키 암호화 알고리즘

1.RSA : 1977년 3명의 MIT 수학 교수가 고안한 큰 인수의 곱을 소인수분해하는 수학적 알고리즘을 이용하는 공개키 알고리즘

2.ECC : 1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 제안,

유한체 위에서 정의된 타원곡선 군에서 이산대수의 문제에 기초

3.EIGamal : 1984년에 제안, 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며,

RSA와 유사하게 전자 서명과 데이터 암, 복호화에 함께 사용 가능

4.디피-헬만 : 최초의 공개키 알고리즘 (1976년)

 

-해시

1.SHA-1 : 1993년 NSA에서 미 정부 표준으로 지정

2.SHA-256/384/512 : SHA 알고리즘의 한 종류로서 256bit 해시값을 생성하는 해시 함수

3.MD5 : MD4를 대체하기 위해 고안

4.HAS-160 : 국내 표준 서명 알고리즘 KCDSA를 위해 개발된 해시 함수, MD5와 SHA1의 장점 취하여 개발

5.N-NASH : 일본 전신전화주식회사(NTT)에서 발표

6.SNEFRU:R.C.Merkle가 발표

 

빅데이터 수집 기술

-척와

비정형 데이터 수집 기술로 분산된 각 서버에서 에이전트를 실행하고 컬렉터가 에이전트로부터 데이터를 받아 HDFS에 저장하는 기술

-스쿱

정형 데이터 수집 기술로 커넥터를 사용하여 관계형 데이터베이스 시스템에서 HDFS로 데이터를 수집하는 기술

 

⭐️보안, 공격 관련

DoS 공격

시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

1.SYN 플러딩

TCP 프로토콜의 구조적 문제를 이용한 공격, 서버의 동시 가용 사용자 수를 SYN 패킷을 보내 점유, 다른 사용자가 서버를 사용 불가능하게

2.UDP 플러딩

대량의 UDP 패킷을 만들어 임의 포트 번호로 전송해 응답 메시지를 생성, 자원을 고갈

3.스머프

출발지 주소를 공격 대상의 IP로 설정

4.죽음의 핑

ICMP 패킷을 원래보다 엄청 크게 만들어 부하를 일으켜

5.랜드 어택

출발지와 목적지 IP를 같은 패킷으로 하여 가용성 침해

6.티어드롭

IP Fragment Offset 값을 중첩되도록 조작하여 기능을 마비

7.봉크/보잉크

오류 제어를 이용한 공격 기법, 패킷 재전송과 재조립 과부하 발생

8.스피어피싱

사회공학의 한 기법으로 특정 대상 선정 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송,

발송 메일의 본문 링크나 첨부 파일을 클릭하도록 유도하여 개인 정보를 탈취하는 공격 기법

 

사회 공학 컴퓨터 보안에 있어 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여서 정상 보안 절차를 깨트리기 위한 비기술적 시스템 침입 수단
스마트 그리드 바이러스나 명백한 악성 코드를 포함하지 않는 합법적 프로그램이면서도 사용자를 귀찮게 하거나 위험한 상황에 빠뜨릴 수 있는 프로그램
평범한 소프트웨어인지, 바이러스인지 구분하기 어려운 ~ 장난 프로그램~

 

스니핑 스푸핑 스누핑 차이

스니핑 공격 대상에게 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법
스푸핑 승인받은 사용자인 것처럼 시스템에 접근하거나 네트워크상에서 허가된 주소로 가장하여 접근 제어를 우회하는 공격 기법
스누핑 스니핑과 유사한 단어로 네트워크상의 정보를 염탐하여 불법적으로 얻는 행위

9.스미싱

SMS와 피싱의 합성어

문자 메시지를 이용해 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 비밀 정보 요구, 소액 결제를 유도하는 피싱 공격

10.큐싱

QR 코드와 피싱의 합성어

스마트폰으로 금융 업무를 처리하는 사용자에게 인증이 필요한 것처럼 QR코드를 통해 악성 앱을 내려받도록 유도하고 금융 정보를 빼내는 공격 기법

11.봇넷

악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터가 네트워크로 연결된 형태

12.APT 공격

특정 타깃을 목표로 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격

 

DDoS 공격

여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

 

DoS와 DDoS의 차이

DoS는 직접 공격, DDoS는 공격하도록 지시,

DoS는 한 사람에 의해 공격을 감행, DDoS는 수많은 감염 호스트를 통해 공격을 감행

 

애플리케이션 DDoS 공격

Slowloris HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열 \r\n\r\n을 전송하지 않고 \r\n만 전송하여 대상 웹 서버와 연결 상태를 장시간 지속, 연결 자원을 모두 소진시키는 서비스 거부 공격
RUDY 요청 헤더의 Content-length를 비정상저으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격 기법
Slow Read Attack TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹 서버의 연결 상태가 장시간 지속, 연결 자원을 소진시키는 서비스 거부 공격
HTTP GET 플러팅 과도한 GET 메시지를 이용하여 웹 서버 과부하를 유발시키는 공격
Hulk DoS 공격자가 공격 대상 웹사이트 웹 페이지 주소를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
Hash DoS 조작된 많은 수의 파라미터를 POST 방식으로 웹 서버로 전달하여 다수의 해시 충돌을 발생시켜서 자원을 소모시키는 서비스 거부 공격

 

네트워크 공격 기법

IP 스푸핑 타깃 시스템의 정보를 빼내기 위해 침입자가 속여 자신의 패킷 헤더를 인증된 호스트의 IP 주소로 위조하여 타깃에 전송하는 공격 기법
ARP 스푸핑 - ARP 메시지를 이용해 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법
- ARP 프로토콜 허점을 이용해 자신의 MAC 주소를 다른 컴퓨터 MAC인 것처럼 속
ICMP Redirect 공격 ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격 기법
트로이 목마 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램

 

패스워드 크래킹 유형

-사전 대입 공격

시스템 또는 서비스의 ID와 패스워드를 크랙하기 위해 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓고~

-무차별 대입 공격

패스워드로 사용될 수 있는 영문자, 숫자 등을 무작위로 대입하여~

-패스워드 하이브리드 공격

사전 공격과 무차별 대입 공격을 결합

-레인보우 테이블

패스워드별로 해시값을 미리 생성해서 테이블에 모아 놓고 크래킹하고자 하는 해시값을 검색~

 

데이터 암호화 전송을 위한 주요 기술

IPSec IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용하여 양 종단 간 구간에 보안 서비스를 제공하는 터널링 프로토콜
SSL/TLS 전송 계층과 응용 계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
S-HTTP 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든메시지를 각각 암호화하여 전송하는 프로토콜
더보기

IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용하여 보안 서비스를 제공하는 터널링 프로토콜?

 

답) IPSec

 

SW 개발 보안 3대 요소

  • 기밀성

시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨

  • 무결성

시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

  • 가용성

인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음

 

보안 관련 용어

-이블 트윈 공격(Evil Twin)

무선 Wifi 피싱 기법, 공격자는 합법적인 Wifi 제공자처럼 행세하며 노트북이나 휴대전화로 핫스팟에 연결한

무선 사용자들의 정보를 탈취하는 무선 네트워크 공격기법

 

-난독화

코드의 가독성을 낮춰 역공학에 대해 대비하기 위해 프로그램 코드 일부 또는 전체를 변경

 

-랜섬웨어

감염된 시스템 파일들을 암호화하여 복호화할 수 없도록 하고 피해자로 하여금 암호화된 파일을 인질처럼 잡고 몸값을 요구

 

-공급망 공격

소프트웨어 개발사 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격 기법

 

-제로데이 공격

보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격 기법

 

-사이버 킬체인

공격형 방위시스템으로 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별 공격 분석 및 대응을 체계화한 APT 공격 방어 분석 모델

 

-웜

스스로를 복제하여 네트워크 등의 연결을 통해 전파하는 악성 소프트웨어 컴퓨터 프로그램,

컴퓨터 바이러스와 비슷하지만 웜은 기생 X, 독자적으로 실행됨

 

-악성봇

스스로 실행되지 못하고 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드,

스팸 메일 전송, 분산 서비스 거부 공격(DDoS) 등에 악용됨

 

-Blind SQL Injection

오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법

 

-멀웨어

악의적인 목적을 위해 작성된 실행 가능한 코드로 악성코드 또는 악성 프로그램 등으로 불리고 실행 가능한 코드에는 프로그램 메크로, 스크립트가 아니라 취약점을 이용한 데이터 형태로 표현

 

-APT

특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법으로 특수목적의 조직이 하나의 표적에 대한 다양한 IT 기술을 이용하여 지속적으로 정보를 수집하고 취약점을 분석하여 피해를 주는 공격 기법

 

콘텐츠 보안 관련 기술 및 시스템

DLP 조직 내부 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 시스템으로 정보 유출방지를 위해 정보의 흐름에 대한 모니터링과 실시간 차단 기능을 제공
DRM 디지털 콘텐츠에 대한 권리 정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술 및 시스템

무선보안 관련 용어

SSID 무선 랜을 통해 전송되는 패킷들의 각 헤더에 덧붙여지는 32bit 길이의 고유 식별자
WPA Wi-Fi 얼라이언스에서 Wi-Fi 송출 신호에 대한 보안을 위해 고안된 물리 계층에서의 패킷 암호화 방식

 

주요 시스템 보안 공격 기법

포맷 스트링 공격 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격, 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법
레이스 컨디션 공격 실행되는 프로세스가 임시 파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격 기법
키로거 공격 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고 ID나 패스워드, 계좌번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
루트킷 시스템 침입 후 침입 사실을 숨긴 채 차후 침입을 위한 백도어, 트로이 목마 설치, 원격 접근 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음
크라임웨어 온라인상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램으로 공격용 툴 킷으로 불림

 

더보기

(   ) 은 시스템 침입 후 침입 사실을 숨긴 채 차후 침입을 위한 백도어, 트로이 목마 설치 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음이다.

답) 루트킷

 

(  ) 은 해커가 시스템의 민감한 정보를 수집하거나 네트워크 상의 다른 시스템을 공격 또는 추적 회피를 위한 중간 지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지하기 어려운 도구이다.

답) 크라임웨어

신기술 관련 용어

빅데이터 가공 기술

-피그

대용량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인

피그 라틴이라는 자체 언어를 제공하는 기술

-하이브

하둡 기반의 DW 솔루션으로 SQL과 매우 유사한 HiveQL이라는 쿼리를 제공하는 기술

 

하둡 관련 용어

-하둡 : 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼으로 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크

-하둡 분산파일 시스템 : 대용량 파일을 분산된 서버에 저장하고 그 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템

-맵리듀스 : 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크

 

-NDN

콘텐츠 기반 네트워킹, 데이터 중심 네트워킹 또는 정보 중심 네트워킹과 동일한 개념으로 인터넷에서 콘텐츠 자체의 정보와 라우터 기능만을 이용하여 목적지로 데이터를 전송하는 기술

 

딥러닝 주요 알고리즘

-합성곰 신경망

필터에 의한 컨볼루션과 서브 샘플링 과정을 반복하는 비지도 학습으로 입력 데이터의 특징을 극대화하면서 차원을 축소하는 딥러닝 알고리즘

-순환 신경망

연속된 데이터상에서 이전 순서의 은닉 노드의 값을 저장한 이후 다음 순서의 입력 데이터 학습 시 이전의 값을 이용, 연속적인 정보 흐름을 학습에 이용하는 딥러닝 알고리즘

-심층 신경망

입력 계층과 출력 계층 사이의 다단계의 은닉 계층을 통해 비선형 관계에 대한 모델링이 가능한 인공신경망

 

디지털 발자국

사람들이 PC나 모바일 기기, 인터넷을 사용하면서 남긴 흔적

 

소켓

IP address와 Port 넘버가 합쳐진 네트워크상에서 서버 프로그램과 클라이언트 프로그램이 통신할 수 있도록 해주는 교환 기술

 

다크 데이터

수집 후 저장은 되어 있지만 분석에 활용되지는 않는 다량의 데이터

 

MDM

OTA(휴대전화 무선 전송기술)를 이용해 언제, 어디서나 모바일 기기가 Power On 상태로 있으면 원격에서 모바일 기기를 관리할 수 있는 시스템으로 스마트폰, 태블릿과 같은 모바일 기기를 보호, 관리, 감시, 지원하는 기능의 시스템

 

MQTT

IoT 장치, 텔레메트리 장치 등에서 최적화~

저전력 센서, 스위치, 밸브 등의 기기에 대한 표준적 인터넷 환경을 지원하고 프로토콜 리소스 점유 최소화, 한정된 자원 시스템 지원하는 특징이 있음

 

NAT

사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 네트워크 주소 변환 기술

 

MEMS(초소형 전자 기계 시스템)

초정밀 반도체 제조 기술을 바탕으로 전자기계 소지를 육안으로는 보이지 않을 정도로 작은 수 ~ 에서 ~ 크기로 제작하는 초미세 장치

 

매시업

웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술

 

메시 네트워크

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

 

UWB (= 초광대역무선)

중심 주파수의 20% 이상의 점유 대역폭을 가지는 신호 또는 점유 대역폭과 상관없이 500MHz 이상의 대역폭을 갖는 신호와 수 GHz대의 초광역대역을 사용하는 초고속 무선 데이터 전송 기술

 

칼 스위치

스마트폰 이용자가 도난당한 스마트폰의 작동을 웹사이트를 통해 정지할 수 있도록 하는 일종의 자폭 기능

 

스마트 그리드

전기 및 정보통신기술을 활용하여 전력망을 지능화, 고도화함으로써 고품질 전력 서비스를 제공하고 에너지 이용 효율을 극대화하는 전력망

 

Wi-SUN

IEEE 802.15.4g 표준에 기반을 둔 기술로 900MHz 대역을 활용한 장거리 무선 통신 기술로 스마트 그리드와 연계하여 전기, 수도, 가스 등의 공급자가 무선 네트워크를 이용하여 에너지를 효율적으로 관리할 수 있도록 특화된 무선 통신 기술

 

핀테크

금융과 기술의 합성어로 모바일, 소셜 네트워크 등의 첨단 기술을 활용한 새로운 형태의 금융 기술

 

-시멘틱 웹

인터넷과 같은 분산 환경에서 리소스에 대한 정보, 자원 사이의 관계-의미 정보를 기계가 처리할 수 있는 온톨로지 형태로 표현하고 이를 자동화된 기계가 처리하도록 하는 지능형 웹

-온톨로지

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

 

서버리스 컴퓨팅

MSA, Baas, FaaS 등의 기술을 활용하여 서버가 없는 것과 같이 직접 해당 이벤트에 접근하여 처리하는 컴퓨팅 기술

 

엔 스크린

하나의 멀티미디어 콘텐츠를 N개의 기기에서 '연속적으로' 자유롭게 이용할 수 있는 서비스 및 기술

 

MEC

무선 기지국에 분산 클라우드 컴퓨팅 기술을 적용하여 서비스와 캐싱 콘텐츠를 이용자 단말에 가까이 전개함으로써 모바일 코어 망의 혼잡을 완화하는 기술

 

3D 프린팅 CAD 프로그램으로 설계한 파일, 산업용 스캐너, 의료용 스캐너 등 3차원 서례 데이터를 기반으로 실물 모형, 프로토타입 등 손으로 만질 수 있는 실제 물체로 만들어내는 기술
4D 프린팅 인간의 개입 없이 특정 시간이나 환경 조건이 갖춰지면 스스로 형태를 변화시키거나 제조되는 자가 조립 기술이 적용된 프린팅 기술로 다중적 3D 프린팅을 통해 복합 물질을 형성하고 자가 변환이라는 새로운 기능이 추가된 기술

 

트러스트 존

칩 설계회사인 ARM에서 개발한 기술로 하나의 프로세서 내에 일반 애플리케이션을 처리하는 일반 구역과 보안이 필요한 애플리케이션을 처리하는 보안 구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술

 

ITL

IT 서비스의 운영 및 관리를 돕기 위한 문서들의 집합

 

VTL

대용량 백업 및 데이터 소산에 강점이 있는 테이프 방식의 장점을 취하기 위해 디스크를 가상의 테이프 미디어로 모방하는 방식

 

가상화 백업

하이퍼바이저에서 관리되는 가상 서버의 이미지 파일을 백업하는 방식으로 백업 환경을 백업 에이전트 중심의 가상화 서버 또는 프록시 서버 레벨에서 SW와 HW를 일체형으로 통합 구축하는 방식

 

무선 관련 기술

-스몰셀

기존의 높은 전송 파워와 넓은 커버리지를 갖는 매크로 셀과 달리 낮은 전송 파워와 좁은 커버리지를 갖는 소형 기지국으로 안테나당 10W급 이하 소출력 기지국 장비나 피코, 셀 등을 통칭하는 용어

-애드 혹 네트워크

고정된 유선망을 가지지 않고 이동 호스트로만 이루어진 통신망으로 네트워크에서 각각의 이동 노드는 호스트가 아니라 하나의 라우터로 동작~ 동적으로 경로를 설정할 수 있기 때문에 기반구조 없이 동작하는 네트워크이다.

 

VR, AR, MR 기술

-가상현실(VR)

컴퓨터 등을 사용한 인공적인 기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 혹은 그 기술 자체를 의미

-증강현실(AR)

가상 현실의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 기술

-혼합현실(MR)

실세계 물리적 환경과 가상 환경을 혼합한 경험을 제공하는 하이브리드 현실

 

클라우드 관련 기술

-인터클라우드 컴퓨팅

단일 클라우드를 넘어서 타 클라우드 서비스에서 필요한 자원을 가져다 서비스하는 클라우드 내의 중첩 클라우드 서비스

-메타클라우드

클라우드 서비스를 위한 개발환경, 실행환경, 환경설정 등을 개발자의 요구 조건에 맞게 자유롭게 구성할 수 있도록 제시하는 통합 클라우드 시스템 모델

-멀티클라우드

2곳 이상의 클라우드 벤더가 제공하는 Public 클라우드를 조합하여 구성하는 클라우드 서비스 제공 모델

 

클라우드 컴퓨팅

-인프라형 서비스 (IaaS)

서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스

컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행

-플랫폼형 서비스 (PaaS)

인프라를 생성, 관리하는 복잡함없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스

SaSS의 개념을 개발 플랫폼에도 확장한 방식

-소프트웨어형 서비스 (SaaS)

소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용

 

-IT 업무 프로세스 관련 용어

https://tbvjrornfl.tistory.com/166

 

정보처리기사 실기 업무 프로세스 키워드 정리

정보처리기사 실기 업무 프로세스 키워드 정리 [정보 전략 계획 수립] ISP(Information Strategy Planning, 정보 전략 계획) 개념 : 기업의 목표, 방향을 효과적으로 지원하기 위해 정보 시스템이나 정보관

tbvjrornfl.tistory.com

-디자인패턴

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형