기타/정보처리기사실기

[정보처리기사 실기 / 공부] 2022 1회 대비 실기 막판 내용 정리 요약본

rinix_x 2022. 5. 7. 04:06
반응형

개인적으로, 안외워지거나 헷갈리는거 그냥 보이는 거 넣어봄.


* 디자인 패턴

- 생성

 + 빌더(Builder) : 동일 객체 생성에서도 다른 결과

 + 프로토타입(Prototype) : 원본 객체 복제

 + 팩토리메서드(Factory Method) : 생성할 객체의 클래스를 국한하지 않고 객체를 생성

 + 추상 팩토리(Abstract Factory) : 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성

 + 싱글톤(sington) : 한 클래스에 한 객체만 존재하여, 어디서든지 참조 가능

- 구조

 + 브리지(Bridge) : 서로 독립적으로 확장할 수 있도록 구성

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

 + 퍼사이드(Facade) : 통합 인터페이스 제공

 + 플라이웨이트(Flyweight) : 모두가 갖는 본질적 요소를 클래스화하여 공유함으로 메모리 절약

 + 프록시(Proxy) : 실제 객체에 대한 대리 객체 사용

 + 컴포지트(Composite) : 복합 객체와 단일 객체 구분없이 다루고자 할때 사용

 + 어댑터(Adapter) : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 인터페이스 패턴

- 행위

 + 중재자 (Mediator) : 복잡한 상호작용을 캡슐화

 + 인터프리터 (InterPreter) : 언어 구문을 해석할 수 있게 만드는 패턴

 + 이터레이터 (Iterator) : 컬렉션 구현방법을 노출하지 않으면서, 모든 항목에 접근할 수 있는 방법을 제공

 + 템플릿메소드 (Template Method) : 전체 수행 구조는 바꾸지 않으면서 특정 단계 수행 내역을 바꾸는 패턴

 + 옵저버 (Observer) : 한 객체의 상태가 바뀌면, 다른 객체에 연락이 가고, 자동으로 내용 갱신

 + 상태 (State) : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경 가능

 + 방문자 (Visitor) : 각 클래스를 돌아다니며 특정작업을 수행

 + 커맨드 (Command) : 요청을 객체 형태로 캡슐화

 + 전략 (Strategy) : 행위 객체를 클래스로 캡슐화 해 동적으로 자유롭게 변환

 + 메멘토 (Memento) : 객체를 이전 상태로 복구 

 + 책임연쇄 (Chain of Responsibility) : 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴

 

* 비트 연산자

 

* ALGOL : 수치 계산이나 논리 연산을 위한 과학 기술 계산용 언어, PASCAL과 C언어의 모체

* COBOL : 사무 처리용 언어

* FORTRAN : 과학 기술 계산용 언어, 공식이나 수식과 같은 형태로 프로그래밍 가능

* Smalltalk : 1세대 객체지향 프로그래밍 언어중 하나, 최초로 GUI를 제공한 언어

 

* 캡슐화 (Encapsulation) : 데이터와 데이터를 처리하는 함수를 하나로 묶는것.

* 정보은닉 (Information Hiding) : 다른 객체에서 자신의 정보를 숨기고, 자신의 연산만을 통하여 접근을 허용

* 추상화 (Abstraction) : 모델화하는 것.

* 상속성 (Ingeritance) : 하위클래스가 물려받는 것

* 다형성 (Polymorphism) : 고유한 방법으로 응답 가능

* ASP (Active Server Page) : 서버측에서 동적으로 수행되는 페이지를 만들기 위한 언어

* PHP (Professional Hypertext Preprocessor) : 서버용 스크립트 언어, 운영체제에서 사용 가능

* 함수형 언어 : 적용형 언어, 수학적 함수를 조합하여 문제를 해결하는 언어, 병렬처리에 유리하며, LISP가 있음

 + LISP : 인공지능 분야에 사용되는 언어

* 논리형 언어 : 기호 논리학에 기반을 둔 언어, 비절차적, PROLOG

 + PROLOG : 논리학을 기초로한 고급언어로, 인공지능 분야에서의 논리적인 추론이나 리스트 처리 등에 사용

* 자바 예외 객체

* 시스템 기능 파악 : 세부 기능으로 구분, 계층형 표시

* 시스템 인터페이스 파악 : 데이터의 종류, 형식, 프로토콜 등 명시

* 아키텍처 구성 파악 : 어떤 기술 요소를 사용하는 지 아키텍처 구성도 작성

* 소프트웨어 구성 파악 : 제품명, 용도, 라이선스 적용 방식 등 명시

* 하드웨어 구성 파악 : 서버의 주요 사양, 수량, 이중화 적용 여부 명시

 + 서버의 이중화 : 운용 서버의 장애 시 대기 서버로 서비스를 계속 유지할 수 있도록, 운용 서버의 자료 변경이 예비 서버에서도 동일하게 복제되도록 관리한는 것.

* 네트워크 구성 파악 : 서버의 위치, 서버 간의 네트워크 연결 방식을 네트워크 구성도로 작성.

* TCO (Total Cost of Ownership) : 총 소유 비용, 지정된 기간 동안 발생할 수 있는 모든 직간접 비용들

* ODBC (Open DataBase Con-nectivity) : 응용프로그램에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 응용 프로그램과 DB를 연결해 주는 표준 인터페이스

* WAS (Web Application Server) : 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어, Tomcat GlassFish, JEUS 등 

* 기능 요구사항 : 기획자 및 알고리즘 느낌

* 비기능 요구사항 : 개발자 느낌

* 요구사항 개발 프로세스 : 도출(Elicitation) - 분석(Analysis) - 명세(Specification) - 확인(Valisation)

* 델파이 기법 : 전문가의 경험적 지식을 통한 분석 기법, 업무 전문가 등 각 분야 전문가로 구성

* 요구공학 : 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문

* 유스케이스 : 사용자의 요구사항을 기능 단위로 표현

* 형상관리 : 개발 단계의 각 과정에서 만들어 지는 프로그램, 데이터 등의 변경 사항을 관리하는 일

* 정형분석 : 구문과 의미를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 과정

* 구조적 다이어 그램 : 클래스(Class) - 객체(Object) - 컴포넌트(Component) - 배치(Deployment) - 복합체 구조(Composite Structure) - 패키지(package)

* 클래스 다이어그램 접근 제어자

   + (public) → 클래스 외부 접근
   # (protected) → 동일 패키지, 파생 클래스 접근
   ~ (default) → 동일 패키지, 클래스 접근
   - (Private) → 클래스 내부 접근

* 행위 다이어그램 :

+ 유스케이스(UseCase) : 사용자의 요구를 분석

+ 시퀀스 (Sequence) : 상호작용하는 시스템이나 객체들이 주고받는 메시지

+ 커뮤니케이션(Communication) : 메시지뿐만 아니라 객체들 간의 연관까지 표현

+ 상태 (State) : 상태 변화 혹은 어떻게 변화하는지,

+ 활동 (Activity) : 시스템이 어떤 기능을 수행하는지

+ 상호작용 (Interaction Overview) : 제어흐름을 표현

+ 타이밍 (Timing) : 객체 상태 변화와 시간 제약을 명시적으로 표현

 

* 도메인이 원자값 - 부분적 함수 종속 제거 - 이행적 함수 종속 제거 - 결정자이면서 후보키가 아닌 것 제거 - 다치종속 - 조인 종속성 이용

* 직접 연계 방식 : DBLink , API(데이터를 송신 시스템의 DB에서 읽어와), DB Connection(수신 시스템의 WAS에서 수신시스템의 DB로 연결), JDBC

* 간접 연계 방식 : 연계 솔루션(EAI서버와 송수신 시스템에 설치되는 클라이언트를 이용하는 방식), ESB. Socket, Web Service

* WSDL(Web Services Description Language) : 웹서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술, 웹 서비스명, 서비스 제공 위치, 프로토콜 등 웹 서비스에 대한 상세 정보를 XML형식으로 구현

* UDDI(Universal Description Discovery and Integration) : 인터넷에서 전 세계의 ...확장성 생선 언어(XML)기반의 규격, WSDL을 등록하여 서비스와 서비스제공자를 검색하고 접근하는데 사용

* SOAP(Simple Object Access Protocol) : 웹 서비스를 실제로 이용하기 위한 객체 간의 통신 규약, HTTP, SMTP 등을 활용하여 XML기반의 메시지를 네트워크 상에서 교환하는 프로토콜

* REST : HTTP프로토콜로 데이터를 전달하는 소프트웨어 아키텍쳐의 한 형식, 데이터 포맷이JSON임

* VPN(Virtual Private Network; 가상 사설망) : 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

* EAI

 + Point-to-Point : 가장 기본적인 애플리케이션 통합방식

 + Hub&Spoke : 중앙집중형 방식

 + Message BUS(ESB방식) : 미들웨어를 두어 처리

 + Hybrid : 혼합 방식

* SGML (Stand Generalized Makup Language) : 텍스트, 이미지, 오디오 및 비디오 등을 포함하는 멀티미디어 전자문서들을 다른 기종의 시스템들과 정보의 손실 없이 효율적으로 전송, 저장 및 자동 처리하기 위한 언어

* 마크업 언어(Markup Language) : 다른 문서의 처리를 위해 문서의 논리 구조나 체계를 정의하는 언어

* 개발 언어의 선정 기준 : 

+ 적정성 : 목적에 적합

+ 효율성 : 코드의 작성 및 구현 효율

+ 이식성 : 다양한 시스템 및 환경에 적용 가능

+ 친밀성 : 이해도와 활용도가 높아야 함

+ 범용성 : 여러 분야에서 활용

 

* 결합도 : 자료(data) - 스탬프(Stamp) - 제어(Control) - 외부(External) - 공통(common) - 내용(Content)

* 응집도 : 우연적(Coincidental) - 논리적(Logical) - 시간적(Temporal) - 절차적(Procedural) - 교환[통신](Communication) - 순차적(Sequential) - 기능적(Functional)

* 공통 모듈 :

+ 정확성(Correctness) : 해당 기능이 필요하다는 것을 알 수 있음

+ 명확성(Clarity) : 중의적으로 해석 되지 않도록

+ 완전성(Completeness) : 시스템 구현을 위해 필요한 모든것

+ 일관성(Consistency) : 상호 충돌이 발생하지 않도록

+ 추적성(Traceability) : 관계를 파악할 수 있도록

* myBatis : JDBC코드를 단순화하여 사용할 수 있는 SQL Mapping기반 오픈 소스 접속 프레임 워크

* Django : 파이썬 기반 프레임 워크, 컴포넌트의 재사용과 플러그인화

* Codeigniter : PHP기반,인터페이스 간편

* Ruby on Rails : Ruby 기반, 개발 코드의 길이가 짧

* 프레임워크 특성

 + 모듈화(Modularity) : 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로서 소프트웨어의 품질을 향상

 + 재사용성(Reusability) : 재사용 가능한 모듈들을 제공함으로써 개발자의 생산성을 향상

 + 확장성(Extensibility) : 다형성을 통한 인터ㅔ이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능

 + 제어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어 권한을 프레임워크에 넘김으로써 생산성을 향상시킴

* 인터페이스의 기본원칙

+ 직관성 : 누구나 쉽게 이해 및 사용

+ 유효성 : 목적을 정확하고 완벽하게 달성

+ 학습성 : 누구나 쉽게 배우고 익힐 수 있음

+ 유연성 : 실수를 최소화

* UI설계도구 : 와이어프레임[뼈대설계], 목업[정적모형], 스토리보드[흐름추가], 프로토타입[인터렉션 적용], 유스케이스[요구사항 빠르게 파악]

 

* 결합 집중(Defect Clustering) : 20에서 80%결함 발견 ==> 파레토 법칙적용

* 살충제 패러독스(Pesticide Paradox) : 

* 오류-부재의 궤변(Absence of Errors Fallacy) : 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높지 X

* 목적에 따른 테스트 : 회복(recovert), 안전(Security), 강도(stress), 성능(Performance), 구조(struct), 회귀(Regression), 병행(Parallel)

* 화이트박스 테스트 : 기초 경로 검사, 제어 구조 검사(조건검사, 루프검사, 데이터 흐름검사) , [구조]

 + 문장검증 기준, 분기 검증기준, 조건검증 기준, 분기/조건 기준

* 블랙박스 테스트 : 기능 테스트, 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교검사, [명세]

* APP테스트 단계 : 단위(Unit) - 통합(Integration) - 시스템(System) - 인수(Acceptance)

* 하향식 통합 테스트 : 스텁

* 상향식 통합 테스트 : 드라이버, 클러스터로 결합

* 테스트 오라클 : 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법

 + 참(True)[결과 제공] - 샘플링(Sampling)[특정한 입력값의 결과값] - 추정(Heuristic)[특정한 결과값으로 부터 나머지 추정] - 일관성 검사(Consistent)[전 과 후 동일한지]

* 클린코드 작성 원칙 : 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화

 

* DDL -

 + CONSTRAINT : 제약 조건의 이름 지정

 + CHECK : 속성 값에 대한 제약 조건 정의

 + UNIQUE : 중복 값이 없는 속성으로 생성

 + CASCADE : 다른 모든 개체들도 함께

 + RESTRICTED : 참조중이면 제거 취소

* ARTER : +ADD , + ALTER, +DROP

* DCL -

 + GRANT [TO]: 권한부여

 + REVOKE [FROM] : 권한 취소

 + ROLLBACK : 이전 상태로 되돌림

 + SAVEPOINT : ROLLBACK할 지점 지정

* DML - 

 + INSERT INTO VALUES

 + DELETE FROM

 + UPDATE SET

 + SELECT FROM 

  = DISTINCT : 중복된 건 하나만

  = DISTINCTROW : 튜플 전체를 대상으로 

  = LIKE "%" : 모든 문자, _ : 문자 하나 , # : 숫자하나

 + ORDER BY : ASC[오름차순], DESC[내림차순]

 + JOIN ON : 조인

 + WINDOW : 속성 값을 집계할 합수

 + GROUP BY[속성]  HAVING[조건] : 그룹화하여 검색

더보기

-GROUP BY

* COUNT : 튜플 수

* SUM : 그룹 별 합계

* AVG : 평균

* MAX : 최대값

* MIN : 최소값

* STDDEV : 표준편차

* VARIANCE : 분산

* ROLLUP : 그룹별 소계

* CUBE : 인수로 주어진 속성으로 그룹별 소계(하위까지)

-WINDOW

* ROW_NUMBER : 레코드 일련번호

* RANK : 순위

* DENSE_RANK : 공동 순위 무시

 

* 보안요소 : 기밀성(인가된 사용자만 접근), 무결성(인가된 사용자만 수정), 가용성(인가된 사용자 사용), 인증, 부인방지

* 시큐어 코딩 : 소프트웨어의 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소를 고려하며 코딩하는 것

* 세선 ID : 서버가 클라이언트들을 구분하기 위해 부여하는 키로, 서버에 요청을 보낼때 이를 통해 인증

* 세션 하이재킹(Session Hijacking) : 서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격 기법

* 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조는 불가능

* 레이스컨디션 : 두 개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하고 있는 상태

* URL Rewrite : 쿠키를 사용할 수 없는 환경에서 세션ID전달을 위해 URL에 포함시키는 것.

* 크로사이트스크립트(XSS) : 웹에 악의적인 스크립트를 삽입하여, 정보를 탈취및 비정상적인 기능 수행을 유발

* 하드코드 : 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식

* 디폴트 패스워드 : 사용자를 등록하기 전에 설치 권한을 획득하기 위해 사용되는 초기 설정 암호

* TOCTOU경쟁 조건 : 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점

* DNS : 도메인 네임을 IP주소로 바꾸어주는 역할

* 양방향 알고리즘

 + SEED : 1999, 한국인터넷 진흥원, 128, 128 256

 + ARIA : 2004 국가 정보원, 128, 128, 192, 256

 + DES : 1975 미국 NBS 개인키 암호화, 64, 56

 + AES : 2001 미국 표준 기술 연구소(NIST) 위 보완 128,128,192,256

 + RSA : 1978 MIT 공개키 암호화 알고리즘, 소인수분해기반

* RC4 : 스트림 암호, 

* DSA : 이산대수의 어려움을 안정성의 바탕으로 개발

* 디피헬만 : 최초 공개키 알고리즘

* 해시, SHA시리즈, MD5, N-NASH, SNEFRU

* 운영체제 목적 : 처리 능력, 반환시간, 사용가능동, 신뢰도

* PnP : 자동 감지 기능

* OLE : 자유롭게 편집 할 수 있도록

 

* ER-모델 : 개체와 개체 간의 관계 등을 약속 된 기호로 표현하기 위한 기법.

* 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 유일성 만족, 최소성 만족 X

* 후보키 : 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합, 유일성 최소성 만족

* 외래키 : 다른 릴레이셔느이 키본키를 참조하는 속성 또는 속성들의 집합

* 대체키 : 후보키 중 선정된 기본키를 제외한 나머지 후보키

* 기본키 : 후보키 중 특별힌 선된 키, 중복 값, NULL값을 가질 수 없다.

* 트랜잭션

+ 원자성(Atomicity) → 연산시 반드시 모두 수행되거나 아니면 모두 수행되지 않아야 한다.
+ 일관성(Consistency) → 언제나 일관성 있는 데이터베이스 상태가 되어야 하며 결과에 모순이 생기면 안된다.
+ 격리성(Isolation) → 하나의 트랜잭션이 수행중일 때 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 한다.
+ 지속성(Durability) → 영속성이라고도 하며, 트랜잭션이 성공적으로 완료될 때 결과는 지속적으로 유지되어야 한다.

 

* IP주소 : 8bit씩 4=32 a-국가 ,b-중대형, c-소규모, d-멀티캐스트, e-실험적 주소

* IPv6 : 유니캐스트 -1:1, 멀티캐스트 -1:n, 애니캐스트- 가장 가까이 있는,, 1:1

* OSI : 물리[특성 정의 후 비트를 전송] - 데이터링크[노드와 노드사이 데이터 전송,물리계층 도와줌] - 네트워크[최적으로 데이터 전송] - 전송[오류수정, 흐름제어, 혼합제어 수행] - 세션[연결을 끊는 역할] - 표현[데이터의 변환, 압축, 암호화 담당] - 응용[인터페이스 담당]

* 브리지 : LAN 과 LAN연결, LAN안에서 컴퓨터 그룹 연결

* 스위치 : 더 큰 LAN을 만듬, 

 + L2 : MAC주소를 기반으로 프레임 전송

 + L3 : 라우터 기능 추가 및 IP주소를 기반 패킷 전송

 + L4 : 로드밸런서 추가 및 IP주소 및 TCP/UDP 기반으로 로드밸런싱 기능 제공

 + L7 : 위 다 참조하여 세밀하게 로드밸런싱

* 라우터 : 최적 경로를 선택할 수 있는 기능 추가, WAN의 연결도 수행

* 프로토콜 : 구문, 의미, 시간

* FTP(File Transfer Protocol) : 컴퓨터와 컴퓨터, 컴퓨터와 인터넷 사이 파일 주고 받을 수 있도록 하는 원격 파일 전송21

* SMTP(Simple Mail Transfer Protocol) : 전자 우편 교환25

* TELENT : ex) anyDesk 나 팀뷰어23

* SNMP(Simple Network Management Protocol) : TCP/IP의 네트워크 관리 프로토콜

* HTTP (Hyper Text Transfer Protocol) 80

* TCP(Transmision Control Protocol) : 양방향 연결, 스트림 위주의 전달(패킷단위)

* UDP(User Datagram Protocol)  : 비연결형 서비스, 오버헤드가 적음, 단순한 헤더 구조를 가지고 있어

* RTCP(Real-Time Control Protocol) : RTP패킷의 전송 품질을 제어하기 위한 제어 프로토콜

* RTP : 멀티캐스트나 유니캐스트 등의 통신 서비스를 통하여 비디오와 오디오 스트림 또는 시뮬레이션과 같은 실시간 특성을 가지는 데이터의 종단간 전송을 제공해주는 UDP기반의 프로토콜

* IP(Internet Protocol) : 전송할 데이터에 주소 지정 및 경로 설정

* ICMP(Internet Control Message Protocol) : IP와 조합하여 통신중 발생하는 오류 처리등을 위한 제어 메시지 관리

* IGMP(Internet Group Management Protocol) : 멀티캐스트를 지원하는 호스트나 라우터 사이에서 그룹유지 위해 사용

* ARP(Adress Resolution Protocol) : 호스트 IP주소를 물리적 주소로 바꿈

* RARP(Reverse Address Resolution Protocol) : 물리적 주소를 IP로 바꿈

* Ethernet(IEEE 802.3) : CSMA/CD방식의 LAN

* IEEE 802 : LAN을 위한 표준 프로토콜

* HDLC : 비트 위주의 데이터 링크 제어 프로토콜

* X.25 : 패킷교환망을 통한 DTE(데이터 터미널장치)와 DCE(데이터 회선 종단장치)간의 인터페이스를 제공하는 프로토콜

* RS-232C : 공중 전화 교환망(PSTN)을 통한 DTE와 DCE간의 인터페이스 제공

* 라우팅 프로토콜

 + RIP(Routing Information Protocol) : 소규모 동종의 네트워크 내에서 효율적

 + IGRP(Interior Gateway Routing Protocol) : 중규모 RIP단점 보완

 + OSPF(Open Shortest Path First Protocol) : 대규모, 모든 라우터에 알림

 + BGP(Border Gateway Protocol) : 자율 시스템(AS)간의 라우팅 프로토콜

 

* 디지털 저작권 관리(DRM) 구성요소
 + 클리어링 하우스(Clearing House) : 저작권에 대한 사용 권한, 라이선스 발급, 암호화된 키 관리, 사용량에 따른 결제 관리 등을 수행하는 곳
 + 콘텐츠 제공자(Content Provider) : 콘텐츠를 제공하는 저작권자
 + 패키저(Packager) : 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶은 도구
 + 콘텐츠 분배자(Contents Distributor) : 암호화된 콘텐츠를 유통하는 곳이나 사람
 + 콘텐츠 소비자(Content Customer ): 콘텐츠를 구매하여 사용하는 주체
 + DRM 컨트롤러(DRM Controller) : 배포된 디지털 콘텐츠의 이용 권한을 통제
 + 보안 컨테이너(Security Contatiner) : 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치
 + DRM 콘텐츠(DRM Content) : 서비스하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련된 메타데이터, 콘텐츠 사용정보를 패키징하여 구성된 콘텐츠

 

* 메타포어 : 공통 이름 체계와 시스템 서술서를 통해 고객과 개발자간 의사소통을 원활하게 해줌

* 세마포어 : 멀티 프로그래밍 환경에서 공유자원에 대한 접근을 제한하는 기법

* 블루투스 공격 기법 

 + 블루버그(BlueBug) : 장비사이의 취약한 연결관리를 악용한 공

 + 블루스나프(BlueSnarf) : 취약점을 활용해 장비의 파일에 접근하는 공격 OPP를 사용하여 정보를 열람

 + 블루재킹(BlueJacking) : 스팸처럼 명함을 익명으로 퍼뜨리는 것

 + 블루프린팅(BluePrinting) : 공격 장치의 검색 활동을 의미

* 접근 통제 방법 

 + 임의적 접근 통제(DAC; Discretionary Access Control) : 신분을 기준으로 제한

 + 강제적 접근 통제(MAC; Mandatory Access Control) : 허용 등급을 비교하여 접근을 통제

 + 역할 기반 접근 통제(RBAC; Role Based Access Control) : 조직내에서 맡은 역할에 기초하여 자원에 대한 허용 여부 결정

* 벨 라파듈라 모델(BLP) : 기밀 성을 강조, NoReaUp, No Write Down

* 비바 모델 : 무결성을 보장하는 최초의 모델, NoRead Down, No Write Up

* Land Attack : 출발지 IP포트를 목적지 IP포트와 동일하게 하여 동작 마비

* PoD : 큰 사이즈의 패킷을 의도적으로 목표시스템으로 발생

* Tear Drop : 잘못된 정보로 인해 수신 시스템이 문제

* 이블 트윈 공격 : 무선 Wifi피싱 기법

* 디지털 트윈 : 지능형 지속 위협, 특정 기업이나 조직 네트워크 대상으로 보안을 위협

* 봇넷 : 악성 프로그램에 감염, 다수의 컴퓨터가 네트워크로 연결 된 형태

* 스니핑 : 몰래 들여다 보는 수동적 공격 기법

* 스누핑 : 염탐하여 불법적으로 얻는 행위

* 스푸핑 : 승인받은 사용자 처럼 접근 제어를 위회

* 스머핑 ; 패킷을 직접 브로드 캐스팅 하여 타켓 시스템을 마비

* 스피어피싱(Spear) : 발송 메일의 본문 링크나, 첨부된 파일을 클릭하도록 유도

* syn 플러딩 : 3wayhandshake과정을 의도적으로 중단

* udp플러딩 : 대량의 UDP패킷을 만들어 자원을 고갈

* Pharming : 사용자의 도메인을 탈취

* 랜섬웨어 : 파일을 암호화하여 열지 못하게 하는

* Rudy : 메시지 바디 부분을 소량으로 보내 연결 상태 유지

* 난독화 : 역공학을 통한 공격을 막기 위해 코드식별을 어렵게 하는 작업

* 키로거 공격 : 키보드 움직을 탐지해 정보 빼가는거

* 사회공학 : 비기술적인 해킹 중 사람의 신뢰를 얻어 정보를 빼앗는것

* 살라미 : 이탈리아 소시지를 얇게 썬다는의미로 계좌를 불법으로 조금씩 옮기는 해킹

* 다크데이터 : 정보를 수집 후, 활용하지 않는 다량의 데이터

* 무차별 공격(Brutal force Attack) : 패스워드로 사용 되는 문자열 범위를 정해 하나씩 대입하여 일치 여부 확인

* 사전 공격(Dictionary Attack) : 패스워드로 주로 쓰이는 단어로 하나씩 대입

* 혼합 공격(Hybrid Attack) : 위 두개 합친거

* 레인보우 테이블 공격(Rainbow Table Attack) : 해시테이블과 R함수의 반복 수행을 통해 일치하는 해시값을 통해 찾는 방식

* 스택 가드(Stackguard) : canary라고 불리는 무결성 체크용 값을 복귀주소와 변수삽이에 삽입 => 복귀주소 호출 X

* 스택 쉴드(Stack Shield) : 복귀 주소를 특수 스택에 저장 후, 다를 경우 오버플로우로 간주

* ASLR(Address Space Layout Randomization) : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화

* DOI(Digital Object Identifier) : 디지털 저작물에 특정한 번호를 부여 하는 일종의 바코드 시스템

* URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 고유하게 식별

 

* 프로세스 상태 전이 

+ 디스패치 : 준비->실행

+ 타이머 런아웃 : 실행->준비

+ 블록 : 실행 -> 대기

+ 웨이크업 : 대기 ->준비

* 빅데이터 3V : 양(Volume), 데이터(Velocity), 다양성(Variety)

* SSH (Secure Shell) : 네트워크 상의 다른 디바이스에 로그인 or 원격 시스템에서 명령을 실행하는 등을 수행하는 응용 프로그램 혹은 프로토콜 ( 22 )
* SSL (Secure Sockets Layer) : HTTP 통신에 보안을 위해 만들어진 프로토콜 개인정보를 안전하게 통신하는데 사용됨 ( 443 )

* 온톨로지(Ontology) : 실세계에 존재하는 개념과 속성, 컴퓨터가 이해할 수 있는 언어로 서술한 지식베이스

* 시맨틱 웹(Semantic Web) : 정보와 자원의관계를 온톨로지로 표현, 컴퓨터에서 처리할 수 있는 지능형 웹

* SDN(Software Defined Network) : 네트워크 트래픽을 중앙 집중적으로 관리

* NFV(Network Function Virtualization) : 가상화 기술 적용하여 가상 기능으로 모듈화 후 필요한 곳에 제공

 

* xUnit : 다양한 언어를 지원하는 단위테스트 프레임워크

* STAF : 다양한 환경을 지원하는 테스트 프레임워크

* FItNess : 웹기반 테스트 케이스 설계, 실행, 결과 등을 지원

* NTAF : 위 두개 장점 통합한 NHN의 테스트 자동화

* Selenium : 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션

* watir : 루비 기반 웹애플리케이션

 

* 옵티마이저(Optimizer) : SQL을 빠르고 효율적으로 수행할 최적의 경로를 생성

+ 규칙 기반 옵티마이저(PBO)

+ 비용 기반 옵티마이저(CBO)

 

* 척와 : 비정형 데이터 수집기술, 데이터를 받아 HDFS에 저장

* 스쿱 : 정형 데이터 수집 기술, RDBMS에서 HDFS로 데이터를 수집

* 하둡 : 가상화된 대형 스토리지를 형성하고 병렬로 처리 할 수 있도록 개발된..

* 맵리듀스 : 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진

 

* COCOMO : 보헴이 제안한 프로그램 규모(조직형,반분리형,임베디드형)에 따라 비용 산정

* XP : 소프트웨어 품질을 높이기 위한 방법론

 

* 단일 책임의 원칙(SRP; Single Responsibilty Principle) : 하나의 클래스는 하나의 책임만 수행

* 개방 폐쇄 원칙(OPP; Open Close Principle) : 기능을 변경하거나 확장 가능하지만, 수정하지 않는다

* 리스코프 치환의 원칙(LSP; Liskov Substiution Principle) : 자식클래스는 최소한 부모클래스가 가능한 행위는 수행 할 수 있어야한다.

* 인터페이스 분리의 원칙(ISP; Interface Segregation Principle) : 한 클래스는 자신이 사용하지 않는 인터페이스와 의존관계를 맺거나 영향을 받지 않아야 한다.

* 의존성 역전의 원칙(DIP; Dependency Inversion Principle) : 의존 관계를 맺을 때 변화하기 쉬운 것보다 어려운 것에 의존하라는 원칙

 

* 인프라형 서비스(Iaas) → 서버 같은 시스템 자원을 클라우드로 제공하는 서비스 예) N드라이브
* 플랫폼형 서비스(Paas) → 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
* 소프트웨어형 서비스(Saas) → 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어을 서비스 형태로 이용하는 서비스

 

* 외부 스키마 → 데이터베이스의 논리적 구조를 정의한 것 (서브 스키마 라고도 한다.)
* 개념 스키마 → 개체 간의 관계나 제약 조건을 나타내고 데이터의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것, (전체적인 논리적 구조)
* 내부 스키마 → 데이터베이스 물리적 구조를 정의하고 전체 데이터 베이스의 명세로서 하나만 존재한다.

 

* 순수 관계 연산자
+ SELECT(σ) → 표에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산
+ PROJECT(π) → 표에서 수직적 부분 집합(속성 값)을 구하는 연산
+ JOIN(⋈) → 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산
+ DIVISION(÷) → A, B 두 테이블에 대해 ‘A DIVISION B’는 B테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산
*일반 집합 연산자 : 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(x)

 

 

반응형