해싱(Hasing)의 개념 해시(Hash) 탐색키에 산술적인 연산을 통해 버킷 주소를 계산하는 해시 함수를 사용하여 데이터 배분 및 접근하는 기법 아래 이미지와 같다고 생각하시면 됩니다. 여기서 버킷(Bucket)이란 한 개 이상의 레코드를 저장할 수 있는 저장공간의 단위로, 일반적으로 디스크 블록의 크기와 일치한 크기를 지닌다. 해시의 구조 아래 이미지처럼 탐색키가 해시 함수를 거치면 어느 버킷에 저장되는지 정해지는 것 해시의 사용 그렇다면 어떻게 데이터를 꺼낼 수 있는가? 아래처럼 값을 입력하면 그에 상응하는 버킷을 알려줌 그렇다면 해시 함수의 역할은 자연스럽게, 여러 버킷에 균등하게 제공해야 한다, 만약 한 버킷에 모든 레코드를 저장하다면 해시의 성능이 확 떨어짐 => 실제 해시 인덱스에서는 완벽한..
인덱스의 이해 인덱스의 개념 인덱스(Index) : DBMS에서 요청된 레코드에 빠르게 접근할 수 있도록 지원하는 데이터와 부가적인 구조 인덱싱(Indexing) : 인덱스를 구성하고 생성하는 작업 => 인덱스의 탐색키를 이용하여 해당 레코드가 저장된 블럭에서 디스크 저장 장치 또는 메모리에서 파악하여 해당 블럭을 빠르게 적재할 수 있음 탐색키 : 파일에서 레코드를 찾는데 사용되는 컬럼이나 컬럼의 집합 인덱스 기반의 검색 과정 기존에는 디스크에서 메모리에 모든 컬럼을 올린다면 인덱스를 이용한다면 메모리에는 인덱스만을 올리고 필요할 때 추가 컬럼을 가져오는 방식을 이용 => 인덱스가 컬럼의 집합보다 크기가 작기 때문에 가능 인덱스의 종류 순서 인덱스 : 특정 값에 대해 정렬된 순서 구조 해시 인덱스 : 버..
데이터베이스의 데이터가 저장되는 공간은 무엇일까? 아래는 컴퓨터 내부의 저장 공간의 종류입니다, 내려갈 수록 저장 요량이 커지며, 올라올 수록 속도와 가격이 높아집니다.(행 기준) 명칭 특성 설명 레지스터 (Register) 휘발성 극히 소량의 데이터나 처리중인 중간 결과와도 같은 프로세스가 바로 사용할 수 있는 데이터를 담는 영역 캐시 (Chache Memory) 휘발성 고비용 저장장치로 빠른 접근 속도를 보장 메인 메모리 (Main Memory) 비휘발성 실제 프로그램과 데이터 적재 공간 자기 디스크 (Magnetic Disk) 플래시 메모리 (Flash Memory) 비휘발성 자기 디스크 : 데이터베이스 전체를 안정적으로 저장 플래시 메모리 : 메인 메모리와 유사하나 비휘발성, 전기적으로 데이터를 ..
데이터의 중복의 문제점 - 일관성 유지의 어려움 - 저장 공간의 낭비 갱신 이상 - 삽입 이상 : 레코드 추가 시 불필요한 컬럼의 값이 없이는 추가를 못함 - 삭제 이상 : 삭제시 의도치 않았던 데이터도 삭제되는 경우 - 수정 이상 : 중복 저장된 레코드를 수정 시 모두 안되어 DB의 일관성이 깨지는 경우 데이터베이스에서 나쁜 릴레이션의 예시 등급, 할인율에서 중복 데이터를 사용 => 할인율 변경 시나 등급 변경 시 일관성 유지가 어려움 데이터베이스에서 좋은 릴레이션의 예시 새로운 테이블 만듦으로써 할인율의 삽입, 삭제, 수정 등이 용이해짐 + 데이터가 많아질 경우 데이터의 사용 공간을 절약함 위에서 어느 릴레이션을 나눌지 정하는 요소가 바로 함수적 종속성이다 정의 1. 릴레이션 인스턴스를 분석하여 속성..
애플리케이션 테스트 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차 애플리케이션 테스트의 기본 원리 기본 원리 설명 완벽한 테스팅 불가능 소프트웨어의 잠재적인 결함을 줄일 수 있지만 소프트웨어 결함이 없다고 증명할 수 없음 파레토 법칙 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙 살충제 패러독스 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상 테스팅은 정황 의존 소프트웨어의 특징, 테스트 환경, 테스터의 역량 등 정황에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함 오류-부재의 궤변 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어 품질이 높다..
Database 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용될 수 있도록 운영하는 운영 데이터이다. 다음과 같이 정의할 수 있음 - 운영 데이터 : 조직의 고유한 업무를 수행하는데 존개가치가 확실하고 없어서 안되는 데이터 - 통합된 데이터 : 검색의 효율성을 높이기 위해 중복이 최소화된 데이터 - 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터 - 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터 => 운통저공 DBMS 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리 해주는 소프트웨어 DBMS의 필수 기능 3가지 - 정의(Definition) 기능 -..
소프트웨어 패키징 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것 - 사용자 중심 - 향후 관리를 고려한 모듈화하여 패키징 순서 기능식별 -> 모듈화 -> 빌드 진행 -> 사용자 환경 분석 -> 패키징 및 적용 시험 -> 패키징 변경 분석 -> 배포 릴리즈 노트 소프트웨어 개발 과정에서 정리된 릴리즈 정보를 최종 사용자인 고객과 공유하기 위한 문서 Headr(머릿말) 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등을 기록 디지털 저작권 관리(DRM) 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다. 흐름 및 구성 요소 ..
SDLC(Software Development Life Cycle = 소프트웨어 개발 생명주기) 소프트웨어 개발 전 과정을 단계별로 나눈 것 Secure SDLC SDLC 에 보안강화 프로세스를 포함한 것 (Secure SDLC의 대표적인 방법론) 방법론 내용 CLASP SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론 SDL 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론 Seven Touchpoints 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론 보안의 3대요소 보안요소 설명 기밀성(Confidentiality) 시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음 무결성(Integrity..
SQL 필수 기능 3가지 - 정의(Definition) 기능 - 조작(Manipulation) 기능 - 제어(Control) 기능 데이터 모델 구성요소 - 속성 : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드 - 관계 : 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미 - 개체 : 데이터베이스에서 표현하는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체 DDL (Data Define Language, 데이터 정의어) DB를 구축하거나 수정할 목적으로 사용하는 언어 CREATE(정의) SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의 ALTER(변경) TABLE에 대한 정의를 변경하는데 사용 DROP(삭제) SCHEMA, DO..
운영체제 컴퓨터 시스템의 자원들을 효율적으로 관리하여 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다 목적 - 처리 능력 향상 - 사용 가용도 향상 - 신뢰도 향상 - 반환 시간 단축 종류 - Windows - UNIX - LINUX - MacOS - MS-DOS Windows 1990년대 마이크로스프트사가 개발한 운영체제 - 그래픽 유저 인터페이스(GUI) - 선점형 멀티태스킹 - PnP(Plug and Play, 자동 감지 기능) - OLE(Object Linking and Embedding) - 255자의 긴 파일 명 - Single-User 시스템 UNIX 1960년대 AT&T Bell(벨) 연구소, MIT, General Electridc이 공동..