본문 바로가기
728x90

Backend41

[Java] 🧵 Thread 기본 개념 [Java] 🧵 Thread 기본 개념 ✅ 간단 정리항목설명Thread 개념실행 단위. 기본은 main 스레드생성 방법Thread 상속 vs Runnable 구현실행과 종료start()로 실행, 안전하게 종료 처리 필요동기화공유 자원 보호를 위한 synchronized데몬 스레드백그라운드 보조 역할, main 종료 시 자동 종료 🔍 Thread란? Thread(스레드)는 프로세스 내에서 실행되는 최소 실행 단위를 말한다. 자바 프로그램은 main 스레드에서 시작하며, 동시에 여러 작업을 병렬로 처리하고 싶다면 멀티스레딩(Multithreading)을 활용한다. 멀티스레딩은 UI 응답성, 백그라운드 처리, 서버 동시 요청 처리 등 다양한 상황에서 성능과 효율을 극대화할 수 있게 해 준다.  ⚙️ 자바에.. 2025. 4. 6.
[MySQL] MySQL 설치 후 Database 생성하기 [MySQL] MySQL 설치 후 Database 생성1. 데이터베이스 생성CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;'my_database' : 만들고자 하는 DB 이름'utf8mb4' : 이모지까지 지원하는 문자 인코딩(표준)'utf8mb4_0900_as_cs' : 유니코드 9.0 기준, 대소문자 구분 문자 인코딩은 현재 표준으로 utf8mb4를 사용한다. 따라서 해당 값을 넣어주면 되고 정렬 규칙은 아래  특징에 따라 사용하고자 하는 Collation을 사용하면 된다. Collation의미특징utf8mb4_0900_ai_ciAccent-insensitive, Case-insensitive기본값... 2025. 4. 5.
[MySQL] Deadlock(교착 상태) 원인 Deadlock(교착 상태) 원인 MySQL에서 Deadlock(교착 상태)는 두 개 이상의 트랜잭션이 서로가 필요로 하는 자원을 서로 잠금하고 있어 두 개 트랜잭션이 모두 완료하지 못하고 Rollback(롤백)이 되는 상태를 말한다. 일반적으로 Deadlock은 여러 트랜잭션이 동시에 데이터베이스 자원(행, 테이블 등)을 접근할 때 발생할 수 있으며 발생되는 원인에 대해 알아보자. 1. 교차 락(Cross Locking) 두 개 이상의 트랜잭션이 서로의 필요로 하는 자원을 잠그고, 상대방이 소유한 락을 기다리며 발생하는 상황이다.트랜잭션 A가 id = 1인 행을 배타적 락을 건다.트랜잭션 B가 id = 2인 행을 배타적 락을 건다.트랜잭션 A가 id = 2인 행을 배타적 락을 걸기 위해 트랜잭션 B가 .. 2024. 10. 27.
[Mysql] Lock Type Lock Type1. Share Lock(공유락) 공유 락(Share Lock)은 다른 트랜잭션이 읽기는 가능하지만, 쓰기는 제한하는 락이다. 여러 트랜잭션이 동시에 공유 락을 걸 수 있으므로 동시에 데이터를 읽을 수 있지만, 데이터를 변경하는 작업은 허용하지 않는다. 즉, 데이터를 읽을 동안 데이터 변경을 반지해야 하는 경우에 사용된다.-- id = 1인 행을 읽기가 완료될 때까지 수정이 불가하다.SELECT * FROM my_table WHERE id = 1 LOCK IN SHARE MODE;  2. Exclusive Lock(배타적 락) 배타적 락(Exclusive Lock)은 다른 트랜잭션이 해당 데이터에 대해 읽기와 쓰기 모두 접근하지 못하게 완전히 잠그는 락이다. 한 트랜잭션이 배타적 락을 설.. 2024. 10. 27.
728x90