스터디/웹개발
221010 TIL : 정보처리기사 실기 요약하기
샤멀파린
2022. 10. 12. 22:48
- ECC : 유한체 위에서 정의된 타원 곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘으로 키의 비트수를 적게하면서 동일한 성능을 제공한다.
- 응집도의 유형 (우논시절 통순기, 우연적 → 기능적 순으로 응집도 높음. 좋은 품질)
- 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도
- 논리적 응집도(Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
- 시간적 응집도(Temporal Cohesion) : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
- 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 통신적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
- 순차적 응집도(Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
- 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도
- 결합도의 유형 (내공 외제 스자, 내용 → 자료 결합도로 갈수록 결합도 낮음, 좋은 품질)
- 내용 결합도(Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도. 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있는 경우의 결합도.
- 공통 결합도(Common Coupling) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우의 결합도. 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도.
- 외부 결합도(External Coupling) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우의 결합도. 외부 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도.
- 제어 결합도(Control Coupling) : 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도. 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하는 결합도.
- 스탬프 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도. 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도이며, 자료 구조의 어떠한 변화는 모든 모듈에 영향을 미치게 됨.
- 자료 결합도(Data Coupling) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도. 한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직한 결합도.
- 가상사설망(VPN; Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
- 데이터베이스 정규화 단계 (원부이 결다조)
- 1정규형(1NF) : 원잣값으로 구성
- 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
- 3정규형(3NF) : 이행함수 종속 제거
- 보이스-코드 정규형(BCNF) : 결정자 함수이면서 후보 키가 아닌 것 제거
- 4정규형(4NF) : 다치(다중 값) 종속성 제거
- 5정규형(5NF) : 조인 종속성 제거
- 병행 제어 미보장 시 문제점 (갱현모연)
- 갱신 손실(Lost Update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
- 현황 파악오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
- 모순성(Inconsistency) : 두 트랜잭션이 동시에 실행되어 데이터베이스의 관성이 결여되는 오류
- 연쇄복귀(Cascading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류
- JSON : JSON은 “속성-값 쌍”, “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- DoS 공격 : Dos 공격은 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 자원을 소진시켜서 원래 의도된 용도로 사용하지 못하게 하는 공격이다.
- 피코넷(PICONET) : 여러 개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
- 데이터 마트(Data Mart)
- 데이터의 한 부분으로서 특정 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스
- 즉, 일반적인 데이터베이스 형태를 갖고 있는 다양한 정보를 사용자의 요구 항목에 따라 체계적으로 분석하여 기업의 경영활동을 돕기 위한 시스템
- 전체적인 데이터 웨어 하우스에 있는 일부 데이터를 가지고 특정 사용자를 대상으로 함.
- 데이터 웨어하우스(Data Werehouse)
- 급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스
- 다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장, 필요한 인덱스를 생성하고, 데이터의 다차원 분석 도구로 분석하여 효율적인 의사결정에 필요한 자료를 얻을 수 있음
- 로킹(Locking) : 로킹 기법이란 트랜잭션이 사용하는 데이터 항목에 대하여 잠금(Lock)을 설정한 트랜잭션이 해제(Unlock)할 때까지 독점적으로 사용할 수 있게 상호배제 기능을 제공하는 기법이다.
- 병행 제어 기법의 종류에는 로킹(Locking) 기법, 낙관적 검증(Validation) 기법, 타임 스탬프 순서(Timestampl ordering) 기법, 다중버전 동시성 제어(MVCC) 기법이 있다.
- MQTT(Message Queuing Telemetry Transport)
- MQTT는 IoT 장치, 텔레메트리 장치 등에서 최적화되어 사용할 수 있도록 개발된 프로토콜로, 브로커를 사용한 Publish/Subscribe 방식의 라이트 메시징을 전송하는 프로토콜이다.
- MQTT는 저전력 센서, 스위치, 밸브 등의 기기에 대한 표준적 인터넷 환경을 지원하고, 프로토콜 리소스 점유 최소화, 한정된 자원 시스템 지원, Topic 기반 MQ 매커니즘 수용, 오버헤드 최소화하는 특징이 있다.
- 데이터 삽입 INSERT
- 속성과 데이터 개수, 데잉터 타입 일치해야함.
- 속성명 생략 가능
- 속성의 타입이 숫자인 경우 데이터는 따옴표 붙이지 않아도 되며, 문자열인 경우 따옴표 붙여야함.
- INSERT INTO 테이블명(속성명1, ...) VALUES (데이터1,...)
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection; 반송파 감지 다중접속/충돌탐지) : IEEE802.3 유선 LAN의 반이중방식(Half Duplex)에서, 각 단말이 신호 전송 전에 현재 채널이 사용 중인지 체크하여 전송하는 매체 액세스 제어(MAC) 방식
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance; 반송파 감지 다중접속/충돌회피) : 무선 LAN의 반이중방식(Half Duplex)에서, 사전에 가능한 충돌을 회피(Collision Avoidance)하는 무선전송 다원접속 방식
- 스팸 차단 솔루션(Anti-Spam Solution) : 스팸(Spam)은 이메일이나 휴대폰 등 정보통신 서비스를 이용하는 이용자에게 본인이 원치 않음에도 불구하고 일방적으로 전송되는 영리목적의 광고성 정보를 의미하며, 스팸 차단 솔루션을 통해 사용자를 보호한다.
- 주요 비즈니스 연속성 계획 관련 주요 용어
- BIA(Business Impact Analysis) : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
- RTO(Recovery Time Objective) : 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간. 재해 시 복구 목표 시간의 선정
- RPO(Recovery Point Objective) : 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터 손실 허용 시점. 재해 시 복구 목표 지점의 선정
- DRP(Disaster Recovery Plan) : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS(Disaster Recovery System) : 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터
- 라우팅 알고리즘 유형
- 거리 벡터 알고리즘(Distance Vector Algorithm)
- 거리 벡터 알고리즘은 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘
- 벨만-포드(Bellman-Ford) 알고리즘 사용
- 각 라우터가 업데이트될 경우마다 전체 라우팅 테이블을 보내라고 요청하지만 수신된 경로 비용 정보는 이웃 라우터에게만 보내짐
- 링크 상태 알고리즘(Link State Algorithm)
- 링크 상태 알고리즘은 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘
- 다익스트라(Dijkstra) 알고리즘 사용
- 링크 상태 알고리즘을 사용하면 네트워크를 일관성 있게 파악할 수 있으나 거리 벡터 알고리즘에 비하여 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달
- 거리 벡터 알고리즘(Distance Vector Algorithm)
- 디지털 저작권 관리(DRM)를 위한 구성요소
- 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자
- 콘텐츠 분배자(Contents Distributor) : 쇼핑몰 등으로써 암호화된 콘텐츠 제공
- 패키저(Packager) : 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 기능
- 보안 컨테이너(Security Container) : 원본을 안전하게 유통하기 위한 전자적 보안 장치
- DRM 컨트롤러(DRM Controller) : 배포된 콘텐츠의 이용 권한을 통제
- 클리어링 하우스(Clearing House) : 디지털 라이선싱 중계 및 발급을 수행하는 정산소
- 절차형 SQL
- 프로시저(Procedure) : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 사용자 정의함수(User-Defined Function) : 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
- 트리거(Trigger) : 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
- 뷰를 생성하는 명령
- CREATE VIEW 뷰이름 AS 조회쿼리;
- 객체지향 설계 원칙(SOLID)
- 단일 책임의 원칙(Single Responsibility Principle) : 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙. 객체지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙
- 개방 폐쇄 원칙(Open Close Principle) : 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다는 원칙
- 리스코프 치환의 원칙(Liskov Substitution Principle) : 서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스) 으로 교체할 수 있어야 한다는 원칙
- 인터페이스 분리의 원칙(Interface Segregation Principle) : 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙. 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다는 원칙
- 의존성 역전의 원칙(Dependency Inversion Principle) : 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙
- 방향 그래프(Directed Graph) : 정점을 연결하는 선에 방향이 있는 그래프로 n개의 정점으로 구성된 방향 그래프의 최대 간선 수는 n(n-1)인 그래프
- Git
- 주요 기능
- Branch, Check-Out, Commit 등 로컬 환경에서의 형상 관리 기능
- Push, Fetch, Pull 등 원격 환경에서의 변경 전송기능
- SVN 저장소에 대한 이관(Migration) 기능
- 장점
- 저장소(Repository)의 완전한 복사본을 로컬(Local) 저장 가능
- 로컬 저장을 통해 오프라인(Offline) 작업 기능
- 일시적인 작업에 대한 이력 관리가 쉬움
- 단점
- 대용량 코드 관리에 부적절
- 한번에 diff 명령어를 통한 변경사항을 보기 어려움
- CVS, SVN과 개념이 상이하여 학습시간이 요구
- 주요 기능
- 지역성의 유형
- 시간(Temporal) 지역성
- 최근 사용되었던 기억장소들이 집중적으로 액세스하는 현상
- 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높은 특성
- 사례) Loop(반복, 순환), 스택(Stack), 부프로그램(Sub Routine), Counting(1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)
- 공간(Spatial) 지역성
- 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
- 참조된 메모리 근처의 메모리를 참조하는 특성
- 사례) 배열 순회, 프로그래머들이 관련된 변수(데이터 저장 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수 참조
- 순차(Sequential) 지역성
- 데이터가 순차적으로 액세스 되는 현상
- 프로그램 내의 명령어가 순차적으로 구성된 특성
- 공간 지역성에 편입되어 설명되기도 함
- 사례) 순차적 코드 실행
- 시간(Temporal) 지역성