자동 반복 요청 (ARQ) ARQ란, 오류발생 시 수신측은 오류 발생을 송신측에 통보하고 송신측은 오류 발생 블록을 재전송하는 절차를 의미한다. - 수신측 : 오류 발생 탐지, 통보 - 송신측 : 재전송 정지-대기 (Stop-and-Wait) ARQ - 송신측에서 한개의 블록을 전송한 후 수신측으로부터 응답을 기다리는 방식 - 구현 방법은 단순하지만, 전송 효율이 떨어짐 Go-Back-N ARQ - 연속적으로 데이터 블록을 보내는 연속 ARQ 중 하나 - 오류가 발생한 블록 이후의 모든 블록을 재전송 선택적 재전송 (Selective Repeat) ARQ - 연속적으로 데이터 블록을 보내는 연속 ARQ 중 하나 - 오류가 발생한 블록만을 재전송하는 방식 - 수신측에서 원래 순서대로 조합해야 하므로 복잡해..
트랜잭션이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 일련의 연산을 의미한다. - 하나의 트랜잭션은 Commit되거나 Rollback된다. - Commit : 트랜잭션이 행한 연산이 완료된 것을 관리자에게 알리는 연산 - Rollback : 하나의 트랜잭션이 비정상 종료됐을 때, 일부가 정상적으로 처리됐더라도 트랜잭션의 원자성을 구현하기 위해 모든 연산을 취소시키는 연산 트랜잭션의 특성 원자성 (Atomiciry) - 트랜잭션의 연산은 데이터베이스에 모두 반영되든지, 전혀 반영되지 않아야 함 - 트랜잭션 내의 모든 명령은 완벽히 수행되어야 함 - 어느 하나라도 에러가 발생하면 트랜잭션의 전부가 취소되어야 함 (롤백) 일관성 (Consistency) - 트랜잭션이 ..
데이터베이스 병행제어(Concurrency Control) 병행제어란 다중 프로그램의 이점을 활용해, 동시에 여러 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것을 말한다. 데이터베이스 병행제어 문제점 이러한 병행제어에는 아래와 같은 문제점이 있다. 갱신분실 (Lost Update) - 갱신 결과의 일부가 없어짐 비완료 의존성 (Uncommitted Dependency) 하나의 트랜잭션 수행이 실패하고 회복되기 전 다른 트랜잭션이 참조하는 현상 모순성 (Inconsistency) 두 트랜잭션이 병행 수행될 때, 원치 않는 자료를 이용함으로써 발생 연쇄복귀 (Cascading Rollback) 병행 수행되던 트랜잭션들 중..
데이터베이스 뷰(View)란? 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블을 말한다. 뷰 이름을 질의어에서 활용할 경우 질의어가 실행될 때 뷰에 정의된 기본테이블로 대체되어 기본 테이블에 대해 실행되게 된다. - 뷰는 임시적인 작업을 위한 용도로 활용됨 - 뷰는 사용상의 편의성을 최대화함 데이터베이스 뷰의 특징 - 기본 테이블에서 유도된 테이블이기 때문에 기본 테이블과 구조가 같음 - 가상 테이블로 물리적으로 구현되어 있지 않음 - 데이터의 논리적 독립성을 제공함 - 필요한 데이터만 뷰로 정의해 처리 가능하기 때문에 관리가 용이함 - 뷰에 나타나지 않은 데이터를 안전하게 보호 가능 - 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 ..
시스템 카탈로그 (System Catalog) 란? 시스템 카탈로그는 시스템 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다. 카탈로그가 생성되면 데이터 사전 (Data Directory)에 저장되기 때문에 데이터 사전이라고도 한다. Data Directory - 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 있지만 데이터 디렉터리는 시스템만 접근 가능 시스템 카탈로그 저장 정보 시스템 카탈로그에 저장된 정보를 메타데이터라고 한다. - 데이터베이스 객체 정보 : 테이블, 인덱스, 뷰 등 - 사용자 정보 : ID, PW, 접근권한 등 - 테이블의 무결성 제약 조건 정보 : 기본키, 왜리키 등 - 함수, 프로시저, 트리거 등에 대한 정보 시스템 카탈로그 특징 - 일반 사용자..
인터넷 프로토콜(IP) 개요 IPv4는 비신뢰적이고 비연결형의 데이터그램 프로토콜이다. 비신뢰적이기 때문에 신뢰성있는 전송을 위해선 TCP와 같이 신뢰성 있는 전송 계층 프로토콜과 함께 사용되어야 한다. - 비신뢰성 - 비접속형 - 주소지정 - 경로설정 IPv4 데이터그램 구조 IP가 사용하는 패킷을 데이터그램이라고 한다. 가변길이의 패킷으로 헤더와 페이로드로 이루어져 있다. 위 그림에 나와있는 각 필드에 대해 간단히 알아보자. 버전숫자 - IP 프로토콜의 버전을 정의 헤더길이 - 데이터그램은 가변의 헤더를 가지게되기 떄문에 수신자가 데이터그램을 수신하면 헤더가 어디서 끝나고 패킷에 캡슐화된 데이터가 어디서 시작하는지 알아야 한다. 따라서 수신자는 전체 길이를 확인하기 위해 필드값에 4를 곱하게 된다. ..
오버로딩(Overloading)이란? 오버로딩이란 같은 이름의 메소드를 여러개 정의하면서 매개변수의 유형과 개수가 다르게 하는 것을 말한다. 오버라이딩(Overriding)이란? 상위 클래스의 메소드를 하위클래스에서 재정의해서 사용하는 것을 말한다. 오버로딩, 오버라이딩 관련 기출문제 그냥 정의만 봐서는 이해가 잘 가지 않으니 예제문을 하나 봐보자. 9급 전산직 기출 문제 중 하나로 Java 프로그램의 출력 결과를 묻고있다. 여기서 오버라이딩이 될 수 있는 조건을 먼저 알아야 하는데, 오버라이딩이 되기 위해선 시그니처(반환형, 메소드명, 인자개수/형)이 같아야 한다. 그런데 func2의 경우 반환형이 int/double로 불일치한다. 따라서 오버라이딩이 되지 않았기 때문에 재정의한 메소드 대신 부모클래스..
옛날에 네트워크 자격증 공부할 때 서브넷마스크 계산 문제를 엄청 풀었었던 기억이 있는데 다 잊어버렸다... 몇가지 문제를 풀어보자. ex-1 회사에서 211.168.83.0 (클래스C)의 네트워크를 사용하고 있다. 내부적으로 5개의 서브넷을 사용하기 위해 서브넷 마스크를 255.255.255.224로 설정하였다. 이때, 211.168.83.34가 속한 서브넷의 브로드캐스트 주소는? 10000000 -> 128 11000000 -> 192 11100000 -> 224 서브넷마스크가 ~.224이니까 3개 비트를 쓴 것이므로 2^3=8, 8개로 분할해야 함 256개를 8개로 분할한 것이기 때문에 한개당 32가 됨 0~31 32~63 -> 34는 여기 속하므로 브로드캐스트 주소는 211.168.83.63 64~..
IPv4의 클래스 기반 주소 지정 IPv4에서 전체 주소 공간은 5개의 클래스로 구분되고 이것을 클래스 기반 주소지정이라고 한다. A,B,C 클래스만이 네트워크 주소와 호스트 주소체계의 주소를 갖고, D 클래스는 멀티캐스팅용, E 클래스는 실험용이다. 클래스 A - 첫번째 비트가 0인 IP주소 - 큰 규모의 호스트를 갖는 기관에서 사용함 클래스 B - 처음 두 비트의 값이 10인 IP 주소 - 첫바이트의 나머지 6비트와 두번째 바이트가 네트워크 주소, 나머지 두바이트가 호스트 주소 클래스 C - 처음 세비트의 값이 110인 주소 - 세번째 바이트까지가 네트워크 주소, 마지막 한바이트가 호스트 주소 - 네트워크마다 254개까지 호스트를 수용할 수 있기 때문에 작은 규모의 네트워크에서 사용 클래스 D - 처..
프로세의 정의 프로세스는 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 말한다. 프로세스 상태전이 프로세스 상태전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다. 먼저 프로세스의 상태에는 다음과 같은 것들이 있다. 원래 정보보안기사에서 접했던 상태전이 관련 용어와 약간의 차이가 있는데 익숙한 것으로 정리하겠다. - 보류상태 (pending) : 작업이 일시중지됐거나 디스크에 수록된 상태 - 준비상태 (ready) : CPU를 할당받을 수 있는 상태로 CPU가 자신을 처리해주기를 기다리고 있는 상태 - 실행상태 (running) : 프로세스가 CPU를 차지하고 있는 상태 - 대기상태 (blocked) : 프로세스가 CPU를 차지하고 실행되다가..
스테가노그래피(Steganography) 전달하려는 기밀 정보를 이미지 파일이나 MP3 파일 등에 암호화해 숨기는 심층암호 기술로 현대 암호학에서 다루는 암호화는 다른 개념이다. 암호화가 "비밀을 기록"하는 것을 의미하는 반면, 스테가노그래피는 "감추어진 기록"을 의미한다. 즉, 메시지 자체를 은폐하기 위한 기술을 말한다. 워터마크(Watermark) 워터마크는 저작권 정보를 디지털 콘텐츠에 삽입하는 기술을 말한다. 사진이나 동영상 등의 디지털 컨텐츠에 저작권자나 판매자 정보를 삽입해 원본의 출처 정보를 제공할 때 주로 쓰이는 기술이다. 핑거프린팅(Fingerprinting) 디지털 컨텐츠를 구매할 때 구매자의 정보를 삽입해, 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술이다. 구매자의 ..
화이트박스 테스트 (White Box Test) 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트하는 방법이다. 화이트박스 테스트 종류 화이트박스 테스트 종류에는 기초 경로 검사, 제어 구조 검사 등이 있다. 기초 경로 검사 - Tom McCabe가 제안한 대표적 화이트박스 테스트 기법 - 테스트케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 함 - 측정 결과는 실행 경로의 기초를 정의하는데 지침으로 사용됨 제어 구조 검사 - 조건검사 (Condition Testing) - 루프 검사 (Loop Testing) - 데이터 흐름 검사 (Data Flow Testing) 블랙박스 테스트 (Black Box Test) 블랙박스 테스트는 소프트웨어가 수행할..