데이터 조작
- SELECT (검색): SELECT~ FROM~ WHERE~
- INSERT (삽입): INSERT INTO~ VALUES~
- DELETE (삭제): DELETE~ FROM~ WHERE~
- UPDATE (변경): UPDATE~ SET~ WHERE~
SQL 뷰 제거
DROP VIEW __ ( )
- CASCADE: 제거할 요소 참조하는 다른 모든 개체 함께 제거
- RESTRICT: 다른 개체가 제거할 요소를 참조할 경우 제거를 취소
전송 오류
- 후진 오류 정정 (BEC, Backward Error Correction): 오류가 발생하면 역방향 채널을 통해 송신 측에 재전송을 요구하는 방식
- Parity, CRC 등을 사용해 오류 검출하고, 오류 정정은 자동 반복 요청(ARQ)으로 수행
- ack ➡️ 긍정 응답
- nak ➡️ 부정 응답
- ARQ (Automatic Repeat reQuest)
- 정지-대기 (Stop and Wait) ARQ: 송신 측에서 보내고 응답을 기다림
- 연속 (Continuous) ARQ: 연속으로 쭉 보냄
- Go-Back-N ARQ: 에러가 발생한 부분부터 재전송
- 선택적 재전송 (Selective Repeat) ARQ: 에러가 발생한 부분만 재전송
- 적응적 (Adaptive) ARQ: 블록의 크기가 채널의 상태에 따라 동적으로 변경됨
- 패리티 검사: 데이터 블록에 1비트 검사 비트인 패리티 비트를 추가해 오류 검출
- 간단하지만, 2개의 비트에 오류가 동시에 발생하면 검출이 불가능
- 우수(짝수)
- 기수(홀수)
- 홀수/짝수 수직 패리티와 수평 패리티 체크가 있음
- 간단하지만, 2개의 비트에 오류가 동시에 발생하면 검출이 불가능
- CRC (순환 중복 검사): 프레임 단위로 오류 검출을 위한 다항식 코드 (FCS)를 사용해 오류 검출
- HDLC 프레임의 FCS를 만드는 방법으로 사용
- 집단 오류 검출 가능하고, 검출률이 높음
- ARQ (Automatic Repeat reQuest)
- 전진 오류 정정 (FEC, Forward Error Correction): 데이터 전송 과정에서 발생한 오류를 검출하여 스스로 수정하는 방식
- Hamming Code를 사용하여 오류 검출/수정함
- 해밍 코드 (Hamming Code): 수신 측에서 오류가 발생한 비트 검출한 후 직접 수정
- 하나의 데이터 단위에 패리티 비트를 추가하여 오류를 검출하여 교정이 가능한 코드로, 2bit의 오류를 검출할 수 있으며 1bit의 오류를 교정
- 정보 비트 외에 잉여 비트가 많이 필요함
- 전송 비트 중 1, 2, 4, 8, ..., 2^n 번째를 오류 검출을 위한 패리티 비트로 사용
- 해밍 코드 (Hamming Code): 수신 측에서 오류가 발생한 비트 검출한 후 직접 수정
- Hamming Code를 사용하여 오류 검출/수정함
HDLC (High-level Data Link Control)
- 플래그: 프레임의 시작과 끝을 구분, 동기 유지, 비트 투과성을 이용한 기본적인 오류 검출 등의 기능 수행
- 주소부: 송/수신국 식별하기 위해 사용
- 제어부: 프레임의 종류를 식별하기 위해 사용
- 정보 프레임(I): 0
- 감독 프레임(S): 10
- 비번호 프레임(U): 11
- 정보부: 실제 정보 메세지가 들어있는 부분
- FCS (프레임 검사 순서 필드): 프레임 내용에 대한 오류검출을 위해 사용되는 부분
- 일반적으로 CRC 코드가 사용됨
- 비트 위주의 포로토콜
- 각 프레임에 데이터 흐름을 제어하고 오류를 보정할 수 있는 비트 열을 삽입하여 전송
- 포인트 투 포인트 및 멀티 포인트, 루프 방식 모두 사용 가능
- 단방향, 반이중, 전이중 통신을 모두 지원하며 동기직 전송 방식 사용
- 에러 제어를 위해 Go-Back-N ARQ와 선택적 재전송 ARQ 사용
- 흐름 제어를 위해 슬라이딩 윈도우 방식 사용
- 전송 제어상의 제한 받지 않고 자유로이 비트 정보 전송 가능
- 전송 효율과 신뢰성이 높음
- 데이터 전송 모드
- 표준(정규) 응답 모드 (NRM): 반이중 통신을 하는 Point-to-Point 또는 Multi-Point 불균형 링크에 사용, 종국은 주국의 허가가 있을 때만 송신
- 비동기 응답 모드 (ARM): 전이중 통신을 하는 Point-to-Point 불균형 링크 구성에 사용, 종국은 주국의 허가 없이도 송신이 가능, 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능
- 비동기 균형(평형) 모드 (ABM): Point-to-Point 균형 링크에서 사용, 주국/종국 관계가 없으며 혼합국끼리 허가 없이 언제나 전송 가능
애플리케이션 테스트
- 하향식 통합 테스트: 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
- 깊이 우선 통합법이나 넓이 우선 통합법을 사용
- 절차
- 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁으로 대체
- 깊이 우선 또는 넓이 우선 등의 통합 방식에 따라 하위 모듈인 스텁들이 한 번에 하나씩 실체 모듈로 교체됨
- 모듈이 통합될 때마다 테스트를 실시함
- 새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트를 실시함
- 스텁: 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
- 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈
- 상향식 통합 테스트: 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
- 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁은 필요하지 않지만, 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터가 필요
- 절차
- 하위 모듈들을 클러스터로 결합
- 상위 모듈에서 데이터의 입/출력을 확인하기 위해 더미 모듈인 드라이버를 작성함
- 통합된 클러스터 단위로 테스트함
- 테스트 완료되면 클러스터는 프로그램 구조의 상위로 이동하여 결합하고 드라이버는 실제 모듈로 대체됨
- 드라이버: 테스트 대상의 하위 모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 수행 후의 결과를 도출하는 도구
인터페이스 구현
- 송/수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업을 의미
- 구현 방법
- 데이터 통신을 이용한 인터페이스 구현
- 인터페이스 엔티티를 이용한 인터페이스 구현
- 데이터 통신을 이용한 인터페이스 구현
- 애플리케이션 영역에서 데이터 포맷을 인터페이스 대상으로 전송하면 이를 수신 측에서 파싱하여 해석하는 방식
- 주로 JSON이나 XML 형식의 데이터 포맷을 사용
- JSON을 이용한 인터페이스 구현 순서
- 송신 측에서 인터페이스 객체를 생성할 데이터를 각 시스템 환경에 맞게 선택함
- JSON을 이용해 데이터를 인터페이스 객체로 만듦
- 인터페이스 객체를 AJAX 기술을 이용해 수신 측으로 전송
- 수신 측에서 인터페이스 객체를 수신해 파싱한 후 처리
- 수신 측에서 송신 측으로 처리 결과를 보냄
- 인터페이스 엔티티를 이용한 인터페이스 구현: 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 것
- 인터페이스 테이블을 이용한 인터페이스 구현 순서
- 송신 측에서 인터페이스 이벤트가 발생하면 인터페이스 테이블에 인터페이스 데이터를 기록(Write)
- 송신 측 인터페이스 테이블에서 정해진 주기에 따라 인터페이스 데이터를 전송
- 수신 측 인터페이스 테이블에 인터페이스 데이터가 입력되면 정해진 주기에 따라 인터페이스 데이터를 읽음(Read)
- 수신 측 인터페이스 테이블에서 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 수행
- 인터페이스 테이블을 이용한 인터페이스 구현 순서
- AJAX (Asynchronous JavaScript and XML): 자바 스크립트를 사용하여 클라이언트와 서버 간에 XML 데이터를 주고 받는 비동기 통신 기술
- 전체 페이지 새로 고치지 않고도 웹 페이지 일부 영역만을 업데이트 가능
- JSON (JavaScript Object Notation): 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성-값의 쌍 형태로 표현하는 개방형 표준 포맷
- 비동기 처리에 사용되는 AJAX에서 XML을 대체해 사용되고 있음
전송, 네트워크, 데이터 링크 계층의 프로토콜
- VPN(Virtual Private Network): 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
- SSL VPN: PC에 VPN Client 설치해 VPN 서버에 접속하는 방식으로, 암호화를 위해 SSL 프로토콜 사용
- SSL (Secure Sockets Layer): 데이터를 송/수신하는 두 컴퓨터 사이에 위치해 TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성 보장하는 업계 표준 프로토콜
- IPSec VPN: VPN 서버가 설치된 각각의 네트워크를 서로 연결하는 방식으로, 암호화를 위해 IPSec 프로토콜을 사용
- IPsec: 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
- PPTP (Point-to-Point Tunneling Protocol): 저점간 터널링 프로토콜
- PPP(Point-to-Point Protocol)에 기초하며 두 대의 컴퓨터가 직렬 인터페이스를 이용하여 통신할 때 사용
- L2F (layer 2 forwarding): PPTP나 IPSEC과 달리, 데이터 링크층 수준에서 캡슐화가 가능하고, IP 네트워크 이외에서도 이용 가능
- L2TP (Layer 2 Tunneling Protocol): PPTP와 L2F의 기술적 장점들을 결합하여 만든 프로토콜
- 자체적으로 암호화 및 인증 기능을 제공하지 않아 다른 보안 프로토콜과 함께 사용되는 경우가 많음
- SSL VPN: PC에 VPN Client 설치해 VPN 서버에 접속하는 방식으로, 암호화를 위해 SSL 프로토콜 사용
정보 보안 침해 공격
- 워터링 홀: 목표 조직이 자주 방문하는 웹 사이트를 사전에 감염시켜 목표 조직의 일원이 웹 사이트에 방문했을 때 악성 코드에 감염되게 하는 웹 기반 공격
- 웜: 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써 결국 시스템을 다운시키는 바이러스의 일종
- 분산 서비스 거부 공격, 버퍼 오버플로 공격, 슬래머 등
- 좀비 PC: 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터
- C & C (Command & Control) 서버의 제어를 받아 주로 DDoS 공격 등에 이용
- C & C 서버: 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버
- 봇넷 (Botnet): 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
- 제로 데이 공격: 보안 취약점이 발견되었을 때 발견된 취약점의 존재가 공표되기도 전에 해당 취약점을 통해 이루어지는 보안 공격으로, 공격의 신속성을 의미
- 키로거 공격 (Key Logger attack): 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드, 계좌번호, 카드번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
- 랜섬웨어: 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램
- 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함
- 백도어: 시스템 설계자가 서비스 기술자나 유지 보수 프로그램 작성자의 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로
- 컴퓨터 범죄에 악용되기도 함
- 탐지 방법: 무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사 등
- 트로이 목마: 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으킴
- 자기 복제 능력은 없음
'공부 > 자격증' 카테고리의 다른 글
정처기(서브넷, 네트워크 침해 공격, 형상 관리 도구, 스케줄링) (0) | 2025.04.18 |
---|---|
정처기(DB 트랜잭션) (0) | 2025.04.17 |
정처기(UML 다이어그램, 접근 통제, 클라우드, 무결성) (0) | 2025.04.17 |
정처기(라우팅, 정규화, 페이지 교체, 보안 위협, 리눅스|유닉스 처리 조건) (0) | 2025.04.16 |
정처기(SQL, 릴레이션, 프로토콜, 암호화, 응집도/결합도) (0) | 2025.04.15 |