자격증/정보처리기사

[정보처리기사_실기] 기타 정리&암기

ZZJJing 2020. 10. 7. 16:42

■ GoF의 디자인 패턴 

- 생성 패턴 (객체를 생성하는 여러 방법을 알려주는 패턴)

: Singleton, Builder, Prototype, Factory Method, Abstract Factory 

* Singleton 싱글톤 패턴 : 클래스 인스턴스가 하나임을 보장, 전역적인 접근점을 제공하는 패턴 / 디자인패턴의 가장 기초

* Abstract 추상 팩토리 패턴 : 구체적인 클래스를 지정하지않고 독립적인 객체들을 생성하기 위해 인터페이스를 제공하는 패턴

* Builder 빌더 패턴:   복학 객체의 생성과정과 표현과정을 분리시켜 동일한 생성 과정에서 다양한 표현을 생성할 수 있는 패턴

* Factory Method 팩토리 메서드 패턴: 인스턴스를 만드는 클래스를 서브 클래스에서 결정하도록 하는 패턴

* Prototype 프로토타입패턴 :  생성할 객체의 종류를 명시하는데 원형이 되는 예시물을 이용하고 새로운 객체를 이 원형들을 복사함으로써 생성하는 패턴  

 

- 구조 패턴 (클래스를 확장할 수 있는 구조로 만드는 방법을 알려주는 패턴)

    : Adapter, Bridge, Composite, Decorator, Flyweight, Facade, Proxy 

* Adapter (or Wrapper) 적응자 패턴 : 호환성이 없는 인터페이스 떄문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해주는패턴 

* Bridge 브릿지 패턴 : 구현부에 추상층을 분리하여 각자 독립적으로 변형할 수 있도록 하는 패턴 

* Composite 컴포지트 패턴 : 객체들의 관계를 트리구조로 구성하여 부분 -전체 계층을 표현하는 패턴

* Decorator 데코레이터 패턴 : 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴, 기능확장이 필요 시 서브 클래스 대신 쓸 수 있는 대안이 됨 

* Facade 패턴 : 서브시스템에 있는 인터페이스 집합에 통합된 하나의 인터페이스를 제공 

* Proxy 프록시 패턴 : 어떤 다른 객체로 접근하는 것을 통제하기 위해 그 객체의 매니저 또는 자리 채움자를 제공하는 패턴

 

- 행동 패턴 (기존 객체를 저장하거나 다른 객체와 연결시키는 것에 집중)

    : Observer, Command, Interpreter, State, Strategy, Template Method, Visitor, Iterator, Memento, Mediator, Chain of Responsibility

* Observer  (2020 2회실기 영문) 

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다 의존성을 가지는 디자인 패턴과 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야한다.

* Chain of Responsibility 패턴 : 요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴

* Command 패턴 : 요청을 객체로 캡슐화하여 서로 다른 사용자의 매개변수화, 요청 저장 또는 로깅, 연산의 취소를 지원하게 만드는 패턴

* Interpreter 패턴 : 주어진 언어에 대해서 문법을 표현수단으로 정의하고, 해당 언어로 된 문장을 해석하는 해석기를 사용하는 패턴

* Mediator 패턴: 한 집합에 속해 있는 객체들의 상호 작용을 캡슐화하는 객체를 정의하는 패턴 

* State 상태 패턴 : 객체의 내부 상태가 변경될 때 행동을 변경하도록 허락합니다. 객체는 자신의 클래스가 변경되는 것처럼 보임

* Strategy 전략 패턴 : 동일 계열의 알고리즘들을 정의하고 각각 캡슐화하며 이들을 상호교환 가능하도록 만드는 것, 사용자로부터 독립적으로 알고리즘이 변경 될 수 있도록 하는 패턴 

* Template 템플릿 패턴 : 객체의 연산에서 알고리즘의 뼈대만 정의하고, 나머지는 서브클래스에서 이루어지게하는 패턴 

* Visitor 비지터패턴 : 객체 구조를 이루는 원소에 대해 수행할 연산을 표현합니다. 

 

■ MVC 패턴 

사용자 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향없이 쉽게 고칠 수 있는 패턴 

+ 공통모듈 구현에 활용되는 MVC패턴의 개념을 약술하시오 

-> 애플리케이션을 모델 Model, 뷰 View, 컨트롤러 Controller의 3가지 역할로 구분한 패턴


 

■ 폭포수 모형 

- 가장 오래되고 폭넓게 사용된 전통적인 소프트웨어 생명주기

- 개발 과정 중 발생하는 새로운 요구나 경험을 설계에 반영하기 어려움 (요구사항 변경X) 

- 고전적 생명주기 모형으로 선형 순차적 모델이라고도 하며, 타당성 검토, 계획, 요구사항 분석, 구현, 테스트, 유지보소의 단계를 통해 소프트웨어를 개발하는 모형 

 

■ 나선형 모형 (폭포수 장점 + 트로토타입 장점) 

- 점증적 생명주기 모델 

- 보헴(Bohem)이 제안 

- 비용이 많이 들고, 시간이 많이 소요되지만 완성도가 높으므로 대규모 프로젝트에 유리 

 

■ 애자일 (Agile) 기법

소프트웨어 개발방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과 달리

개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법론이다. 

- 절차와 도구보다 개인과 소통을 중요하게 생각

- 소프트웨어가 잘 실행되는데 가치를 두며 고객과의 피드백을 중요하게 생각한다. 

 

[ 종류 ]

- 스크럼 (Scrum) 

스프린트 백로그 (Sprint backlog)기반으로 짧은 스프린트 단위로 반복 점증적으로 Time - to - market을 실현하는 애자일 개발

방법론

스프린트(30일 단위 iteration)로 분리 / 팀은 매일 스크럼 미팅으로 계획 수립 / Iteration 계획과 Tracking 에 중점

- XP (eXtreme Programming) 

수시로 발생하는 사용자 요구사항 (User Story)를 지속적으로 반영하고, 신속하게 개발 및 피드백을 수행하여 개발 생산성을 향상시키는 애자일 방법론 

의사소통 개선, 즉각적인 피드백에 의해 단순하게 코딩하여 SW 품질을 높이기 위한 방법론 / 테스팅 강조 / 5가지 가치와 12개 실천항목 / 1~3주 iteration 

 

■ 소프트웨어 생명주기 

개발 방법론에 따라 소프트웨어 개발 공정을 단계별로 나눈 것 

비용산정과 개발 계획을 수립할 수 있는 기본 골격 

 

상향식 비용산정 모델 

- COCOMO : 보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정

- LOC(원시코드수)를 기반으로 비용을 추정하는 모델 / 소프트웨어  개발비 견적에 널리 통용

- 유형으로는 규모에 따라 

(1) Organic : 5만 라인 이하 규모 (소규모) 

(2) Semi-Detached : 30만 라인 이하 규모 (중규모)  

(3) Embedded : 30만 라인 이상의 최대형 (대규모) 

+ 보헴은 원래 나선형 모델 제안했음 

 

- 그 외 비용산정 모델 

- Putnam 모형 : 소프트웨어 개발주기의 각 단계별로 요구할 인력의 분포를 가정하는 모형 / 생명주기 예측 모형이라고도 함 / 보통 대형 프로젝트의 노력 분포 산정에 이용 

- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력분포도를 기초로 한다.

+ Putnam 모형을 기초로 해서 만든 자동화 추정도구 : SLIM 

- FP (Function-Point) 모형 (기능점수) 

SW의 규모를 측정 및 예측하는 기법으로 1979년 미국 IBM의 Allen J.Albrecht(알브레히트)에 의해 제안됨 

최초 SW개발 프로젝트의 규모측정(SIZING)을 위해 고안되었으나, 현재는 SW공학적 접근을 통한 다양한 방법으로 활용되고 있다. 

 

■ 하향식 비용산정 모델 

- 전문가 감정 기법 

- 델파이 기법 : 전문가 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법

 


■ 데이터 마이닝 (Data Mining)

대규모 자료를 토대로 새로운 정보를 찾아내는 것

+ 빅테이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 내재되어있는 변수 사이의 상호관레를 규명하여 일정한 패턴을 찾아내는 기법.

 

- 군집분석 : 데이터 간의 거리를 기준으로 군집화를 유도 

데이터 마이닝에서 각 객체의 유사성을 측정하여 높은 대상 집단을 분류하고 집단의 특성을 도출하는 분석방법 

 

 

■ 빅데이터 

빅데이터는 시스템, 서비스, 조직(회사) 등에서 주어진 비용, 시간 내에 처리가 불가능한 데이터 범위를 넘어서는 

수십 페타바이트(PB) 크기의 데이터이다. 

 

■ 블록체인

관리 대상 데이터를 '블록'이라고하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경으로 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기반의 원장 관리 기술 

 

 

■ 데이터베이스 종류 [ 통 저 운 공 ] 

합된 / 장된 / 영 / 영 

 

■ 프로토콜 3요소 [ 구 의 시 ] 

- 문 (Syntax) - 데이터의 형식, 구체적인 코딩 방법, 신호레벨 등의 형식을 규정 

- 미 (Semantics) - 데이터를 구체적으로 어떻게 제어, 처리 방법, 에러발생시 처리에 대한 정보를 규정 

- 간 (Timing) - 통신이 이루어질 때 주고받을 속도와 동시통신 시 순서 관리를 위한 기법을 규정

 

 

데이터 모델 표시요소 [ 구 연 제 ] 

조 / 산 / 약조건

 

■ 웹의 3요소 [ 호 접 표 ] 

웹의 환성 / 웹 근성 / 웹

 

■ 분산 데이터베이스  [ 위 중 병 장 지 분 ] 

치 투명성 / 복 투명성 / 행 투명서 / 애 투명성 / 역사상 투명성 / 할 투명성 

 

■ 개발언어 선정 기준 [ 적 효 이 친 범 ] 

정성 / 율성 / 식성 / 밀성 / 용성 

 

 

■ 시큐어 코딩 가이드 보안약점 [ 입 보 시 에 코 캡 아 ]

* 시큐어 코딩 정의 : 시스템 개발 단계에서 주요 보안 취약점을 고려하여 소스 코드 레벨에서 사전에 제거하여 안전한 소프트웨어를 개발하는 기법 

- 력 데이터 및 검증 

- 안 취약점 

- 간 및 상태 

- 드 

- 슐화 

- API 오용 

 

■ 테스트케이스 (Test Case) 개념 

요구사항을 준수하는지 검증하기 위해 테스트 조건, 입력 값, 예상 출력 값 및 수행한 결과 등의 테스트 조건을 명세한 것 

 

■ 주식별자 특징 [ 유 최 불 존 ] 

일성 / 소성 / 변성 / 재성 

 

■ 무결성 종류 [ 개 도 참 사 ] 

- 체 무결성 : 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없다. 

- 메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다. 

- 조 무결성 : 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야한다. 

- 용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족해야한다. 

 

■ 웹 접근성 원칙 [ 인 운 이 견 ] 

식의 용이성 : 모든 컨텐츠는 사용자가 인식할 수 있어야한다 + 장애인도 인식가능한 명확한 콘텐츠 

용의 용이성 : 웹사이트 이동, 입력 등 운용에 있어 불편함이 없어야한다는 원칙 + 키보드 접근, 쉬운 네비게이션, 광과민성 발작예방 등 

해의 용이성 : 가독성, 예측 가능성, 입력도움(오류방지), 컨텐츠 논리성, 접근정보의 수용의 어려움X 

고성 : 웹 콘텐츠는 미래의 기술로도 접근할 수 있도록 견고하게 만들어야함 + 마크업언어 문법준수(오류방지), 웹어플리케이션 접근 준수(접근성)

 

■ 사용자 정의 자료형 [ 구 열 공 ]

- 조체 (Structure) : 사용자가 기본 타입으로 새롭게 정의할 수 있는 사용자 정의 자료형, 멤버변수를 사용한다.

- 거형 (Enumeration) : 서로 연관된 정수형 상수들의 집합으로 정수형 상수에 이름을 붙여 코드를 이해하기 쉽게 해준다.  연속적인 값이 들어가는 자료형. 특정값을 넣어주지 않으면 1씩 늘어나기 때문에 상수배열이라고 부르기도 함 

- 용체 (Union) : 모든 멤버변수가 하나의 메모리 공간을 공유하는 사용자 정의 자료형 

 

■ 클린코드 작성 원칙 [ 가 단 의 중 추 ] 

독성 / 순성 / 존성 / 복성 / 상화 

 

■ 재해 복구 관련  [ R T-타임 or P-포인트(시점) O ]  

- RTO (Recovery Time Objective) : 재해 복구 시간 목표

재해로 인하여 서비스가 중단 되었을 때, 서비스를 복구하는데 걸리는 최대 허용시간 

- RPO (Recovery Point Objective) : 재해 복구 시점 목표 

재해로 인하여 서비스가 중단 되었을 때, 유실을 감내할 수 있는 데이터 손실 허용시점이다.  

- BCP (Business Continuity Planning) : 기업이 재해로 타격을 입은 뒤 업무 운명을 어떻게 복구 재개하는지에 대한 계획

 

■ 형상관리 절차 4단계 [ 식 통 감 기 ]

형상 별 -> 형상 제 -> 형상 사 -> 형상 록/보고 

 


 

■ 브룩스(Books) 법칙 

소프트웨어 개발 일정이 지연된다고 해서 새로운 개발 인력을 진행 중인 프로젝트에 투입할 경우 작업 적응 기간과 부작용으로 인해 일정이 더욱 지연된다는 법칙 

 

■ 파레토 법칙

전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상

 

■ Rest 

Rest는 HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성 ,조회 ,갱신, 삭제 등의 명령을적용하는 기술이다.

 

■ LDAP (Lightweight Directory Access Protocol) 

사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 개발한 인터넷 프로토콜 

 

■ 시멘틱 웹 (Semantic Web) 

"의미론적인 웹"이라는 뜻으로 기계가 이해할 수 있는 형태로 제작된 웹을 뜻하는 용어 

 

■ DLP (Data Loss Prevention) = 데이터 유출 방지 

내부 정보 유출 방지를 의미하여, 기업 내에서 이용하는 다양한 주요 정보인 기술정보, 프로젝트 계획, 사업 내용, 영업 비밀, 고객 정보 등을 보호하고 외부 유출을 방지하기 위해서 사용하는 보안기술 

 

■ 방화벽 (Firewall)

미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템

외부로부터 불법 침입과 내부의 불법 정보유출을 방지하고, 내/외부 네트워크 상호간 영향을 차단하기 위한 보안 시스템/장비

+ 미리 정의된 보안 규칙에 기반하여, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템  

 

■ ITIL (IT Infrastructure Library) 

IT 서비스 관리 분야에서 전세계적으로 검증 및 적용되는 Best Practice

영국 정부기관인 CCTA(Central Computer & Telecommunications Agency)에서 공공기관 사용자들을 위해 개발한 IT관리에 대한 지짐서로 IT서비스 관리 업계의 모범사례를 집대성한 IT 서비스 관리 프레임워크이다.

 

■ RAID (Redundant Array of Independent Disks) 

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

 

■ AJAX (Asynchronous Javascript and XML) 

브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터로 로드하는 기법 (비동기처리) 

 

■ 가비지 콜렉션 (GC : Garbage Collection) 

메모리 관리 기법의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능

 

■쿠버네티스 (Kubernetes) 

파일럿을 뜻하는 그리스어에서 유래한 용어로 리눅스 재단에 의해 관리되는 컨테이너화된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 오픈소스 기반의 관리시스템 

 

■ 도커 (Docker) 

하이퍼 바이저(Hypervisor) 없이 리눅스컨테이너(LXC) 기술을 바탕으로 애플리케이션을 격리된 상태에서 실행하는 가상화 솔루션

 

■ 포렌식(forensic)

포렌식은 범죄 사실의 전자적 증거물에 대해서 수집, 분석, 보고서를 작성하는 일련의 과정 

 

■ 코드 난독화 (Code Obfuscation) 

역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술로, 소스코드 자체를 알아보기 힘들게 바꾸거나 컴파일 후에 생성된 바이너리를 분석하기 힘들게 변조하는 유형으로 크게 구분되는 저작권 크랙방지 기술 

 

■ 리치 클라이언트 (Rich Client) 

서버는 클라이언트에서 요청한 소프트웨어의 실행코드를 스트림 형태로 제공하고,

클라이언트는 서버로부터 스트리밍되는 소프트웨어 코드를 클라이언트 PC의 자원을 이용하여 실행하는 방법으로 소프트웨어의 실행을 클라이언트에서 책임지는 기술을 이르는 용어

 

■ 고가용성 (HA- High Availability)

서버와 네트워크, 프로그램 등의 정보 시스템의 장애에 대응하여 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 이르는 용어

 


 

■ 파일 접근 권한 관리 

https://cafe.naver.com/soojebi/14647

 

파일 접근 권한 관리(chmod)

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

■ 오버레이 네트워크 (Overlay Network)

물리적으로 구성된 네트워크 위에 구성하는 가상의 네트워크 

 

■ 파티셔닝 (Partitioning) 

대용량 테이블이나 인덱스를 동일한 논리적 속성을 가진 여러 개의 단위(partition)로 나누는 기법 

 

■ PIA (Privacy Impact Assessment) 개인정보 영향평가 제도 

개인정보 침해가 우려되는 경우(시스템 신규개발 또는 중대 변경 시)에 그 위험 요인의 분석과 개선사항 도출을 위한 평가 제도.

 

■ PICONET 피코넷 

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

 

■ PKI (Public Key Infrastructure) 공개키 기반주고 

인증서 기반의 사용자 인증과 데이터 암호화를 통해 신뢰성을 보장하는 공개키 기반 인프라 스트럭처

 

■ POJO (Plain Old Java Object) : 오래된 방식의 간단한 자바 객체 

 

■ RPA(Robotic Process Automation)  로봇처리자동화

사람이 반복적으로 처리하는 업무를 지능적인 소프트퉤어를 통해 디지털 프로세스 혁신을 구현하는 기법

 

■ 세션 session : 프로그램이 구동되는 서버측에 사용자의 정보를 저장하는 작은 파일 

 

■ SLA (Service Level Aggrement)

IT 아웃소싱 서비스를 제공하는 업체와 사용하는 업체 간의 서비스에 대한 책임과 의무사항을 기술한 협약서 

 

■ 스레싱(Thrashing) 과다상태

멀티 프로세싱 환경에서 CPU가 프로세스 실행보다 페이지 교체에 더 많은 시간을 소요하는 비정상적인 현상

 

■ 토큰화 (Tokenization) 

보호할 데이터를 토큰으로 치환하여 원본데이터 대신 토큰을 사용하는 기술 

 

■ 워터마킹 Watermarking 

모든 디지털 콘텐츠에 동일한 저작권 정보와 같은 비밀 정보를 삽입하여 관리하는 기술