분류 전체보기 610

[Java의 정석] 13-2. 스레드: 우선순위, 그룹, 데몬 스레드

남궁성 님의 "Java의 정석" 책을 정리한 포스팅 입니다. 5. 우선순위Thread 클래스는 우선순위라는 속성을 가지고 있습니다.우선순위 값에 따라 스레드의 실행순서가 달라집니다.사용자에게 빠르게 반응해야 하는 작업에 우선순위를 높게 부여합니다. 우선순위 지정하기1~10이며, 숫자가 높을수록 우선순위가 높습니다.부모 스레드로부터 상속받습니다. 6. 스레드 그룹// 스레드 그룹 생성ThreadGroup group = new ThreadGroup("CustomGroup");// 그룹에 속한 스레드 생성Thread t1 = new Thread(group, () -> { System.out.println("Thread 1 is running");});Thread t2 = new Thread(group, ..

Java 2023.11.27

[Java의 정석] 13-1. 스레드: 프로세스와 스레드

남궁성 님의 "Java의 정석" 책을 정리한 포스팅 입니다. 1. 프로세스와 스레드프로세스실행중인 프로그램을 의미합니다. 자원OS로부터 실행에 필요한 자원을 할당받아 실행 스레드자원을 이용하여 실제 작업을 수행하는 실행 단위모든 프로세스에는 하나 이상의 스레드가 할당됨 멀티태스킹여러 프로세스가 동시에 실행될 수 있습니다.프로세스 생성비용과 컨텍스트 스위칭 비용이 스레드보다 많이 들많은 수의 사용자 요청을 서비스하기 어렵습니다. 멀티스레딩하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 것입니다.짧은 시간동안 여러 작업을 번갈아 수행하면서 동시에 수행하는 것처럼 보이게 합니다.CPU 코어 당 하나의 작업을 수행할 수 있습니다. 장점자원을 효율적으로 사용할 수 있습니다. (CPU 사용률 향상)사..

Java 2023.11.27

[Real MySQL] 15-4. 데이터 타입: JSON

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. JSON이진 형태일반적인 문자열 저장 방식보다 빠른 검색 및 업데이트 가능 BSON (Binary JSON)NoSQL에서 사용하는 JSON의 바이너리 표현내부적으로 JSON 데이터를 BSON 형식으로 변환하여 읽고 씀 BLOB데이터가 작을 경우, 하나의 페이지에 저장됨데이터가 클 경우, 여러 페이지로 나뉘어 저장됨 (최대 4GB까지) 구조JSON 정보JSON 타입, 애트리뷰트 수, 총 데이터 길이 Key - Value주소(offset), 길이, 값, (타입) 2. 명령어생성CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, info JSON NOT NULL); ..

Database/Mysql 2023.11.26

[Real MySQL] 15-3. 데이터 타입: 날짜와 시간

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 날짜와 시간타입설명저장 크기 (byte)YEAR연도만 저장 (YYYY)1 byteDATE날짜 (YYYY-MM-DD)3 byteTIME시간 (HH:MM:SS)3 ~ 5 byteTIMESTAMP날짜 + 시간 (UTC 기준)4 ~ 7 byteDATETIME날짜 + 시간 (로컬 시간 기준)5 ~ 8 byte 2. 밀리초 저장괄호괄호안의 숫자는 밀리초 자리 수를 의미함최대 6자리까지 표현할 수 있습니다.2자리당 1바이트씩 공간이 필요합니다. 예더보기DATETIME(6) 3. 타임존날짜 타입타임존 정보가 포함되지 않음클라이언트로부터 입력된 값을 그대로 저장하고 조회합니다. 시간 타입항목TIMESTAMPDATETIME타임존 처리✅❌저장 기..

Database/Mysql 2023.11.26

[Real MySQL] 15-2. 데이터 타입: 숫자

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 정확도구분설명대표 타입참값입력한 값을 정확히 그대로 저장하고 조회INTEGER, DECIMAL근삿값 (부동소수점)저장된 값이 입력값과 유사하지만 정확하지 않을 수 있음FLOAT, DOUBLE 2. 포맷포맷 종류설명대표 타입이진 표기법숫자를 2진수(binary)로 변환하여 저장메모리 효율 높음INTEGER, FLOAT, DOUBLE십진 표기법숫자의 각 자릿값을 4비트(BCD) 또는 1바이트 단위로 저장정밀도 높음DECIMAL 3. 정수타입크기 (byte)최솟값최댓값TINYINT1–128127SMALLINT2–32,76832,767MEDIUMINT3–8,388,6088,388,607INT4–2,147,483,6482,147,483..

Database/Mysql 2023.11.26

[Real MySQL] 15-1. 데이터 타입: 문자열

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 저장 공간타입항목CHARVARCHAR저장 방식고정 길이가변 길이 (입력한 데이터 길이 + 길이 접두사 저장)남는 공간 처리부족한 공간은 공백으로 채움남는 공간 없음검색 속도빠름느림 (길이 접두사로 인한 오버헤드)길이 접두사없음있음 (255B 이하: 1바이트, 256B 이상: 2바이트)저장 공간 제한최대 255자row 최대 크기내에서 가능 (길이 접두사 포함)전체 Row 크기 제한상대적으로 영향 적음다른 컬럼 사용량에 따라 제한됨 (여유 공간 내에서 사용 가능) 2. 대용량64KB 이상의 데이터를 저장할 때 사용가변 길이 타입별도의 공간에 저장됨 타입항목TEXTBLOB데이터 용도문자열 데이터이진 데이터 (이미지, 파일 등)문자 ..

Database/Mysql 2023.11.26

[Real MySQL] 8-3. 인덱스: 알고리즘 - B-Tree Index

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. B-Tree Index가장 기본적인 인덱스 타입원래 값을 변형시키지 않는 인덱스 구성 요소항목설명트리 구조- 하나의 인덱스 = 하나의 B+ Tree- 루트 → 중간 노드 → 리프 노드- 깊이는 데이터 양과 키 크기에 따라 증가페이지 (Page)- InnoDB의 읽기/쓰기 최소 단위- 기본 크기: 16KB (innodb_page_size)- 하나의 노드 = 하나의 페이지노드 (Node)- B+ Tree를 구성하는 단위- (인덱스 키 값 : 자식 노드 주소) 형태로 저장됨- 리프 노드는 실제 데이터 주소를 가짐- 리프 노드- Primary Key Index: key → record 주소- Secondary Key Index: ke..

Database/Mysql 2023.11.25

[Real MySQL] 8-2. 인덱스

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 인덱스데이터를 빠르게 찾을 수 있도록 도와주는 자료구조항목설명형식key-value 형식정렬 방식특정 컬럼 값을 기준으로 정렬하여 저장 (항상 정렬 유지) 알고리즘알고리즘설명B-Tree- 기본 인덱싱 방식- 범위 검색 효율적Hash Index- 컬럼 값을 해시 계산하여 인덱싱- 매우 빠름 (주로 인메모리 기반의 데이터베이스에서 사용)- 정확히 일치하는 검색만 가능 (범위/부분 검색 불가) 2. 구분Key종류설명Primary Key- 행을 대표하는 컬럼- 유일성 보장- Not Null- "키 값 - 레코드 주소"로 구성Secondary Key- 보조 검색용 인덱스- 유일성 보장 ❌- Nullable- "키 값 - PK 값"으로 구..

Database/Mysql 2023.11.25

[Real MySQL] 5-1. 트랜잭션과 잠금: 트랜잭션

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 트랜잭션하나의 논리적인 작업 단위로 실행되는 일련의 연산DML 문을 하나의 트랜잭션으로 묶어 실행할 수 있음 특징항목설명Atomicity (원자성)All or Nothing- 트랜잭션 내 모든 작업이 전부 수행되거나 전혀 수행되지 않음.- 오류 발생 시 전체 롤백. → Partial Update 방지, 데이터 정합성 보장Consistency (일관성)트랜잭션 전후로 데이터베이스의 무결성 제약조건이 항상 유지됨. 예: 외래 키, 고유 제약조건 등이 깨지지 않음Isolation (격리성)트랜잭션이 다른 트랜잭션의 영향을 받지 않고 독립적으로 수행됨. → 동시성 문제가 없도록 보장Durability (지속성)커밋된 트랜잭션의 결과는..

Database/Mysql 2023.11.24

[Real MySQL] 4-4. 아키텍쳐: MySQL 로그 파일

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다. 1. 에러 로그 파일실행되는 도중에 에러나 경고로 인해 출력되는 메시지 파일을 의미합니다.datadir에 .err 확장자로 생성됨 서버 시작 관련변수명을 인식하지 못한 경우특정 변수가 무시된 경우 트랜잭션 복구 메시지 (비정상적으로 종료된 경우)재처리 작업 과정서버가 비정상적으로 종료된 경우 재시작 시, 트랜잭션 복구를 시도함 완료되지 못한 트랜잭션을 정리서버가 종료되기 전에 완료되지 못한 트랜잭션을 정리하여 데이터 무결성을 유지함 디스크 기록서버가 정상적으로 재시작되었을 때, 복구하는 과정이 로그에 남음 쿼리 에러 메시지쿼리 도중 발생하는 문제점이 기록 커넥션 메시지 (비정상적으로 종료된 경우)클라이언트가 애플리케이션에 접속하지..

Database/Mysql 2023.11.24