0. 도입 당분간 [Network] 포스팅에서는 브라우저에 URL을 입력한 후 웹 페이지가 표시되기까지의 원리를 알아보고자 한다. 첫번째 챕터는 웹 브라우저가 요청 메시지를 만드는 방법이다. 브라우저의 URL 입력 상자에 입력한 URL을 해독하는 것부터 시작해 그것을 바탕으로 HTTP 요청 메시지를 만들고 만든 메시지를 송신하도록 OS에 의뢰하는 것까지 알아보자. 1. HTTP 요청 메시지를 작성한다 1.1. 탐험 여행은 URL 입력부터 시작한다 URL은 여러 종류가 있다. URL은 http:// 뿐만 아니라 ftp:, file: 등으로 시작할 수도 있다. 브라우저는 웹 서버에 접근하는 클라이언트 기능뿐만 아니라 파일을 다운로드, 업로드하는 FTP의 클라이언트 기능이나 메일의 클라이언트 기능도 가지고 있..
1. 프리미티브 타입 종류, 범위, 기본 값 프리미티브 타입(Primitive Type)은 자바의 기본적인 데이터 타입임 1.1. 타입 종류와 타입 범위 1.2. 문자형 1.2.1. char 모든 문자를 저장할 때 사용하는 타입 정확히는 모든 유니코드(전 세계의 문자를 일관되게 표현할 수 있도록 설계된 표준)를 저장할 수 있음 public class UnicodeExample { public static void main(String[] args) { // 유니코드 코드 포인트를 사용하여 문자 할당 char unicodeChar = '\u44032'; // '가'의 유니코드 코드 포인트 System.out.println("유니코드 문자: " + unicodeChar); // 출력: 가 // 직접 문자 할..
1. 인덱스란? 1.1. 인덱스의 정의 - 데이터베이스에서 검색 속도를 향상시키기 위해 사용되는 자료구조 - 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것 - 주로 두 가지 구성 요소로 구성됨 (1) key 키는 실제 검색을 위한 기준이 되는 데이터의 일부 또는 전체를 포함함 인덱스를 만들 때 이 키에 해당하는 데이터의 값이 정렬되어 저장됨 키의 형태는 해당 인덱스의 종류와 데이터베이스 시스템에 따라 달라질 수 있음 예를 들어, B-tree 인덱스의 경우 키는 트리의 노드에 저장됨 (2) value 값은 인덱스의 키에 대응하는 실제 데이터의 위치나 데이터의 일부를 가리킴 주로 clustered 인덱스가 아닌 non-clustered 인덱스에서 사용됨 키가 데이터베이스 레코드의 위치를 ..
1. 트랜잭션의 격리성 지난 시간에 트랜잭션의 특징 ACID에 대해 알아보았다. 그중 Isolation, 격리성을 보장하기 위한 두 가지 개념(격리 수준, 락)이 등장했다. [Database] 4. 트랜잭션과 무결성 1. 트랜잭션이란? 1.1. 트랜잭션의 정의 - 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 - 데이터베이스의 상태를 변화시킬 때, 이를 완전하게 수행하거나 하나도 수행하지 ssoyeong.tistory.com 1.1. 동시성 제어 - 여러 트랜잭션이 동시에 데이터베이스에 접근하여 작업을 수행할 때 발생할 수 있는 문제를 관리하고 해결하는 것 - 즉, 트랜잭션의 실행 순서를 제어하는 기법 - 데이터 일관성과 무결성을 보장하고, 여러 트랜잭션이 동시에 실행될 수 있도록 도와..
1. 트랜잭션이란? 1.1. 트랜잭션의 정의 - 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 - 데이터베이스의 상태를 변화시킬 때, 이를 완전하게 수행하거나 하나도 수행하지 않아야 함 1.2. 트랜잭션의 목적 - 데이터베이스의 무결성을 보장하고, 데이터베이스 조작(삽입, 수정, 삭제)을 안전하게 하기 위함 - 트랜잭션의 특징으로는 원자성, 일관성, 고립성, 지속성이 있음 (합쳐서 ACID라고 함) 2. 무결성 (Integrity) - 데이터의 정확성, 일관성, 유효성을 유지하는 것 - 즉, 데이터가 정확하고 신뢰할 수 있어야 함을 의미함 - DBMS는 데이터베이스가 무결성을 위반하지 않도록 다음과 같은 제약 조건을 설정할 수 있음 개체 무결성 - 기본 키로 선택된 필드는 빈 값을 허용..
1. JVM이란? 1.1. JDK, JRE 그리고 JVM JDK - Java Development Kit - 자바 언어를 사용하여 소프트웨어를 개발하기 위한 개발 키트 - 자바 프로그래밍을 하기 위해 Oracle 사이트에서 다운받는 그! 파일 - 컴파일러인 javac, JRE, 개발 도구 및 라이브러리 등이 포함되어 있음 JRE - Java Runtime Environment - 자바 애플리케이션을 실행하는 환경을 제공함 - 컴파일러와 개발 도구를 포함하지 않으며, 순수하게 자바 어플리케이션을 실행하는 데 필요한 라이브러리와 실행 환경만 포함함 JVM - Java Virtual Machine - 자바 바이트 코드를 실제로 실행하는 가상 머신 1.2. JVM의 특징 플랫폼 독립성 - 자바 코드는 컴파일된 ..
1. 정규화란? 1.1. 정규화의 배경 - 관계형 데이터베이스가 등장하면서 데이터 모델링에 새로운 접근 방식이 도입됨 - 이 접근 방식은 데이터를 테이블로 구성하고, 각 테이블의 구조를 정의하여 데이터 중복을 최소화하고 데이터 무결성을 보장하는 것 - 하나의 테이블에 여러 엔티티의 속성들을 혼합하게 되면 정보가 중복 저장되고, 저장 공간을 낭비하게 됨 - 또한 중복된 정보로 인해 이상 현상이 발생하게 됨 - 이러한 문제를 해결하기 위해 데이터베이스 설계 과정에서 정규화 과정을 거침 이상 현상이란? - 데이터를 삽입, 삭제, 수정할 때 발생하는 논리적 오류 - 삽입 이상: 새로운 학생이 추가되면 수강 정보가 NULL 값으로 채워짐 - 삭제 이상: 수강 정보를 삭제하면 학생 정보도 함께 삭제됨 - 갱신 이상..
1. 관계형 데이터베이스란? 1.1. 관계형 데이터베이스의 정의 - Relational Database (RDB) - 데이터를 테이블 형태로 관리하는 데이터베이스 시스템 - 테이블에는 행(row)과 열(column)의 형태로 저장되며, 각 행은 고유한 식별자(primary key)를 가지고 있음 - 데이터 구조를 사전에 정의하고, SQL(Structured Query Language)를 사용하여 데이터를 조작하고 검색함 - 중복 데이터 저장을 방지하기 위해 테이블을 분리시키고 테이블 간 관계를 형성함 (1:1, 1:N. N:M) - 위와 같이 테이블 간의 관계는 기본 키(primary key)와 외래 키(foreign key)라는 개념을 사용해 맺어질 수 있음 - 외래 키는 기본 키를 참조하는 필드로, ..
1. 데이터베이스란? 데이터베이스(DB) - 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임 데이터베이스 관리 시스템(DBMS) - 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 2. 데이터베이스의 목적 - 서로 다른 응용 프로그램에서 데이터를 공용해서 사용하기 위함 2.1. 데이터베이스의 배경 - 데이터베이스가 존재하기 이전에 파일 시스템을 이용하여 데이터를 관리함 - 데이터를 각각의 파일 단위로 저장하고, 이를 각각의 애플리케이션에서 사용하게 됨 - 파일 시스템에서는 파일에 접근하는 방식이 응용 프로그램 내에 표현되어 응용 프로그램과 데이터 간의 의존관계가 생김 - 데이터의 구조, 접근 방법이 변경되면 기존의 프로그램과 데이터를 함께 변경해야 하..