[정보처리기사 실기] 헷갈리는 개념 요약 정리 part1
my code archive
article thumbnail
반응형

📌XP의 주요 실천 방법

Pair Programming(짝 프로그래밍)

-다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠갖는 환경을 조성함

 

Collective Ownership(공동 코드 소유)

-개발 코드에 대한 권한과 책임을 공동으로 소유함

 

Test-Driven Develpment(테스트 주도 개발)

-개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야 할지를 정확히 파악함

 

Whole Team(전체 팀)

-개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야함

 

Continuous Integration(계속적인 통합)

-모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨

 

Refactoring(리팩토링)

-프로그램 기능의 변경 없이 시스템을 재구성함

-목적 : 프로그램을 쉽게 이해하고 쉽게 수정하여 빠르게 개발할 수 있도록 하기 위함

 

Small Release(소규모 릴리즈)

-릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있음

 

📌애플리케이션 테스트 기본 원리

▪️완벽한 테스트 불가능

 

▪️파레토 법칙

-애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙

 

▪️살충제 패러독스

-동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상

 

▪️테스팅은 정황 의존

 

▪️오류-부재의 궤변

-소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없는 것.

 

▪️테스트와 위험은 반비례

 

▪️테스트의 점진적 확대

 

▪️테스트의 별도 팀 수행

 

📌테스트 오라클의 종류

▪️참 오라클

-모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클

-발생된 모든 오류를 검출할 수 있음

 

▪️샘플링 오라클

-특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클

-전수 테스트가 불가능한 경우 사용

 

▪️추정 오라클

-특정 테스트 케이스 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력값들에 대해서는 추정으로 처리하는 오라클

 

▪️일관성 검사 오라클

-애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클

 

📌애플리케이션 성능 지표

▪️처리량

-일정 시간 내에 애플리케이션이 처리하는 일의 양

 

▪️응답 시간

-애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간

 

▪️경과 시간

-애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

 

▪️자원 사용률

-애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률

 

📌클린 코드 작성 원칙

▪️가독성

▪️단순성

▪️의존성 배제

▪️중복성 최소화

▪️추상화

 

📌SQL - DDL

▪️CREATE

-스키마, 도메인, 테이블, 뷰, 인덱스를 정의함

 

▪️ALTER

-테이블에 대한 정의를 변경하는 데 사용함

 

▪️DROP

-스키마, 도메인, 테이블, 뷰, 인덱스를 삭제함

 

📌SQL - DCL

▪️COMMIT

-명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌

 

▪️ROLLBACK

-데이터베이스 조작 작업이 비정상적으로 종료되었을 때, 원래의 상태로 복구함

 

▪️GRANT

-데이터베이스 사용자에게 사용 권한을 부여함

 

▪️REVOKE

-데이터베이스 사용자의 사용 권한을 취소함

 

📌SQL - DML

▪️SELECT

-테이블에서 튜플을 검색함

 

▪️INSERT

-테이블에서 새로운 튜플을 삽입합

 

▪️DELETE

-테이블에서 튜플을 삭제함

 

▪️UPDATE

-테이블에서 튜플의 내용을 갱신함

 

📌관계형 데이터베이스의 제약 조건 - 키(key)

▪️후보키

-속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

-유일성최소성을 모두 만족시켜야 한다.

 

▪️기본키

-후보키 중 특별히 선정된 주키

 

▪️대체키

-후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

 

▪️슈퍼키

-한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

-유일성은 만족하지만, 최소성은 만족하지 못한다.

 

▪️외래키

-다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

 

📌정규화

-테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정

 

📌반정규화

-정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위

-테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가

 

📌트랜잭션의 특성

▪️원자성

-트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야함

 

▪️일관성

-트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환됨

 

▪️독립성

-둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음

 

▪️영속성

-성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야함

 

📌분산 데이터베이스의 목표

▪️위치 투명성

-엑세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있다.

 

▪️중복 투명성

-동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.

 

▪️병행 투명성

-분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.

 

▪️장애 투명성

-트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.

 

📌접근 통제 기술

▪️임의 접근통제(DAC)

-데이터베이스에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식

 

▪️강제 접근통제(MAC)

-주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식

 

▪️역할기반 접근통제(RBAC)

-사용자의 역할에 따라 접근 권한을 부여하는 방식

-임의 접근 통제와 강제 접근통제의 단점을 보완하였음

 

📌입력 데이터 검증 및 표현

▪️SQL 삽입(Injection)

-웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점

 

▪️경로 조작 및 자원 삽입

-데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점

 

▪️크로스사이트 스크립팅

-웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈튀하거나 비정상적인 기능 수행을 유발하는 보안 약점

 

▪️운영체제 명령어 삽입

-외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점

 

▪️위험한 형식 파일 업로드

-악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점

 

▪️신뢰되지 않는 URL 주소로 자동접속 연결

-입력값으로 사이트 주소를 받는 경우, 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점

 

▪️메모리 버퍼 오버플로

-연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 취약점

 

📌최다 빈출 공격 유형

▪️Ping of Death(죽음의 핑)

-패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시키는 서비스 거부 공격 방법

 

▪️SMURFING(스머핑)

-IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법

 

▪️SNIFFING(스니핑)

-네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형

-'킁킁거리며 냄새를 맡는 이라는 뜻을 가진 용어

 

▪️SPOOFING(스푸핑)

-승인받은 사용자인 것처럼 시스템에 접근하여 접근 제어를 우회하는 공격 행위

-'속이다'라는 뜻을 가진 용어

 

▪️SYN Flooding

-TCP 3-Way-Handshake 과정을 의도적으로 중단시킴으로써 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법

 

▪️LAND Attack

-패킷을 전송할 때 송신 IP주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 자신에 대해 무한히 응답하게 하는 공격

 

▪️DDoS 공격

-여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것

 

📌소프트웨어 개발 보안 요소

기밀성

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

 

무결성

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

 

가용성

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

 

인증(Authorization)

-시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위

 

부인 방지

-데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함

 

📌운영 체제의 목적

처리 능력

-일정 시간 내에 시스템이 처리하는 일의 양

 

반환 시간

-시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

 

사용 가능도

-시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

 

신뢰도

-시스템이 주어진 문제를 정확하게 해결하는 정도

 

📌Windows의 주요 특징

그래픽 사용자 인터페이스(GUI)

-키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식

 

선점형 멀티태스킹

 

PnP

-컴퓨터에 하드웨어를 설치했을 때 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능

 

OLE

-다른 프로그램에서 작성된 개체를 현재 작업 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능

 

255자의 긴 파일명

 

Single-User 시스템

 

📌UNIX

-1960년대 AT&T 벨 연구소, MIT, General Electronic이 공동 개발한 운영 체제

-커널 : 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당, UNIX의 가장 핵심적인 부분

-쉘 : 시스템과 사용자간의 인터페이스를 담당함

-유틸리티 프로그램 : 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용함

 

📌페이지 교체 알고리즘

OPT

 

FIFO

 

LRU

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

 

LFU

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

 

LUR

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

 

📌Windows 주요 환경 변수

%ALLUSERPROFILE%

-모든 사용자의 프로필이 저장된 폴더

 

%APPDATA%

-설치된 프로그램의 필요 데이터가 저장된 폴더

 

%COMSPEC%

-기본 명령 프롬포트로 사용할 프로그램명

 

%HOMEDRIVE%

-로그인한 계정의 정보가 저장된 드라이브

 

%HOMEPATH%

-로그인한 계정의 기본 폴더

 

%LOGONSERVER%

-로그인한 계정이 접속한 서버명

 

%PATH%

-실행 파일을 찾는 경로

 

%PROGRAMFILES%

-기본 프로그램의 설치 폴더

 

%USERPROFILE%

-로그인한 유저의 프로필이 저장된 폴더명

 

📌OSI 참조 모델

물리 계층

-전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의

 

데이터 링크 계층

-2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료 담당

-송신 측과 수신 측의 속도 차이 해결을 위한 흐름 제어 기능을 한다.

 

네트워크 계층

-개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능

 

전송 계층

-논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 한다.

 

세션 계층

-송, 수신 간의 관련성을 유지하고 대화 제어를 담당

 

표현 계층

-응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능

 

응용 계층

-사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공

 

📌TCP/IP

TCP

-OSI7 계층의 전송 계층에 해당함

-신뢰성 있는 연결형 서비스를 제공함

 

가상회선 : 연결형 통신에서 주로 사용되는 방식
데이터그램 : 비연결형 통신에서 주로 사용되는 방식

 

IP

-OSI7 계층의 네트워크 계층에 해당함

-데이터그램을 기반으로 하는 비연결형 서비스를 제공함

 

📌응용 계층의 주요 프로토콜

FTP

-컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜

 

SMTP

-전자 우편을 교환하는 서비스

 

TELNET

-멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스

 

SNMP

-TCP/IP 네트워크 관리 프로토콜로 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는데 사용되는 표준 통신 규약

 

DNS

-도메인 네임을 IP 주소로 매핑하는 시스템

 

HTTP

-월드 와이드 웹(WWW)에서 HTML 문서를 송수신하기 위한 표준 프로토콜

 

📌네트워크 관련 신기술

IoT

-정보 통신을 기반으로 실세계와 가상 세계의 다양한 사물들을 인터넷으로 서로 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 기술

 

M2M

-무선 통신을 이용한 기계와 기계 사이의 통신

 

모바일 컴퓨팅

-휴대용 기기로 이동하면서 자유로이 네트워크에 접속하여 업무를 처리할 수 있는 환경

 

클라우드 컴퓨팅

-각종 컴퓨터 자원을 중앙 컴퓨터에 두고, 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행할 수 있는 가상화된 환경

 

그리드 컴퓨팅

-지리적으로 분산되어 있는 컴퓨터를 초고속 인터넷망으로 연결하여 공유함으로써 하나의 고성능 컴퓨터처럼 활용하는 기술

 

모바일 클라우드 컴퓨팅

-소비자와 소비자의 파트너가 클라우드 서비스를 이용하여 모바일 기기로 클라우드 컴퓨팅 인프라를 구성하여 여러 가지 정보와 자원을 공유하는 ICT 기술

 

인터클라우드 컴퓨팅

-각기 다른 클라우드 서비스를 연동하거나 컴퓨팅 자원의 동적 할당이 가능하도록 여러 클라우드 서비스 제공자들이 제공하는 클라우드 서비스나 자원을 연결하는 기술

 

메시 네트워크

-차세대 이동 통신, 홈네트워킹, 공공 안전 등 특수 목적을 위한 새로운 방식의 네트워크 기술

 

와이선

-스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 사물 인터넷 서비스를 위한 저전력 장거리 통신 기술

 

NDN

-콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송을 수행하는 기술

 

NGN

-ITU-T에서 개발하고 있는 유선망 기반의 차세대 통신망

 

SDN

-네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어로 네트워킹을 가상화하여 제어하고 관리하는 네트워크

 

NFC

-고주파를 이용한 근거리 무선 통신 기술

 

UWB

-짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술로 무선 디지털 펄스라고도 함

 

피코넷

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

 

WBAN

-웨어러블 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술

 

GIS

-지리적인 자료를 수집, 저장, 분석, 출력할 수 있는 컴퓨터 응용 시스템

 

USN

-각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크

 

SON

-주변 상황에 맞추어 스스로 망을 구성하는 네트워크

 

애드 혹 네트워크

-재난 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트망을 이용하여 구성한 네트워크

 

네트워크 슬라이싱

-네트워크에서 하나의 물리적인 코어 네트워크 인프라를 독립된 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스를 제공하는 것을 목적으로 하는 네트워크 기술

 

저전력 블루투스 기술

-일반 블루투스와 동일한 2.4GHz 주파수 대역을 사용하지만 연결되지 않은 대기 상태에서는 절전 모드를 유지하는 기술

 

지능형 초연결망

-스마트시티, 스마트 스테이션 등 4차 산업 혁명 시대를 맞아 새로운 변화에 따라 급격하게 증가하는 데이터 트래픽을 효과적으로 수용하기 위해 시행되는 과학기술정보통신부 주관 사업

 

파장 분할 다중화

-광섬유를 이용한 통신 기술의 하나로, 파장이 서로 다른 복수의 신호를 보냄으로써 여러 대의 단말기가 동시에 통신 회선을 사용할 수 있도록 하는 것

 

소프트웨어 정의 데이터 센터

-데이터 센터의 모든 자원을 가상화하여 인력의 개입 없이 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터

 

개방형 링크드 데이터

-Linked Data와 Open Data의 합성어로, 누구나 사용할 수 있도록 웹상에 공개된 연계 데이터를 의미함

 

📌SW 관련 신기술

 

📌HW관련 신기술

 

📌DB 관련 신기술

 

📌회복

데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업

 

연기 갱신 기법

-트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법

 

즉각 갱신 기법

-트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법

 

그림자 페이지 대체 기법

-갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지를 별도 보관해 놓고, 실제 페이지를 대상으로 갱신 작업을 수행하다가 장애가 발생하여 트랜잭션 작업 Rollback 시킬 때는 갱신 이후의 실제 페이지 부분을 그림자 페이지로 대체하여 회복시키는 기법

 

검사점 기법

-트랜잭선 실행 중, 특정 단계에서 재실행할 수 있도록 갱신 내용이나 시스템에 대한 상황 등에 관한 정보와 검사점을 로그에 보관해 두고, 장애 발생 시 트랜잭션 절체를 철회하지 않고 검사점부터 회복 작업을 수행하여 회복 시간을 절약하도록 하는 방법

 

📌교착 상태 발생의 필요 충분 조건

상호 배제

-한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야함

 

점유와 대기

-최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야함

 

비선점

-다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야함

 

환형 대기

-공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야함

 

📌교착 상태 해결 방법

예방 기법

-교착 상태가 발생하지 않도록 사전에 시스템을 제어하는 방법

 

회피 기법

-교착 상태가 발생할 가능성을 배제하지 않고 교착 상태가 발생하면 적절히 피해나가는 방법

-주로 은행원 알고리즘이 사용됨

 

발견 기법

-시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것

 

회복 기법

-교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

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

반응형