diff --git a/docs/posts/database/lock.mdx b/docs/posts/database/lock.mdx
index becc885..d40cef5 100644
--- a/docs/posts/database/lock.mdx
+++ b/docs/posts/database/lock.mdx
@@ -10,11 +10,13 @@ dateModified: 2025.09.28
---
# MySQL 엔진 레벨의 락 종류
+
락(Lock, 잠금)은 데이터베이스 공유 자원에 여러 커넥션이 동시 접근하는 경우 데이터의 일관성과 무결성을 유지하기 위해 사용되는 메커니즘입니다.
MySQL에서의 락(Lock, 잠금)은 크게 MySQL 엔진 레벨의 락과 스토리지 엔진 레벨의 락으로 나눌 수 있습니다.
-**MySQL 엔진 레벨의 락**의 종류는 **글로벌 락, 메타데이터 락, 네임드 락, 메타데이터 락**이 있습니다.
+**MySQL 엔진 레벨의 락**의 종류는 **글로벌 락,테이블 락, 네임드 락, 메타데이터 락**이 있습니다.
## 1. 글로벌 락(Global Lock)
+
글로벌 락은 MySQL에서 제공하는 락 중에 가장 범위가 가장 크며, MySQL 서버 전체에 영향을 미칩니다.
한 세션에서 글로벌 락을 획득하면 다른 세션에서 SELECT를 제외한 DDL, DML문을 실행하는 경우 대기 상태가 됩니다.
@@ -25,6 +27,7 @@ MyISAM이나 MEMORY 테이블에 `mysqldump`로 백업을 받는 경우 글로
`--single-transaction` 옵션을 사용하면 온라인 상태에서도 백업이 가능하고 글로벌 락을 사용할 필요가 없습니다.
## 2. 테이블 락(Table Lock)
+
테이블 락은 개별 테이블 단위로 설정되는 잠금이며, 명시적 또는 묵시적으로 락을 획득할 수 있습니다.
명시적으로는 `LOCK TABLES tabled_name [ READ | WRITE ]` 명령으로 락을 획득할 수 있고,
@@ -35,34 +38,38 @@ MyISAM이나 MEMORY 테이블에 `mysqldump`로 백업을 받는 경우 글로
InnoDB에서는 대부분의 DML 쿼리에서는 테이블 락이 무시되고 DDL에서만 영향을 미칩니다.
## 3. 네임드 락(Named Lock)
+
네임드 락은 `GET_LOCK()` 함수를 이용해 임의의 문자열에 대해 잠금을 설정할 수 있습니다.
일반적인 테이블 락과 달리 특정 테이블이나 행에 종속되지 않습니다.
- 네임드 락 획득: 다른 세션에 의해 잠금이 걸려있다면 최대 10초 동안 대기. 획득 성공 시 1, 실패 시 0 반환
+
```sql
-SELECT GET_LOCK('mylock_1', 10);
+SELECT GET_LOCK('mylock_1', 10);
```
- 네임드 락 해제: 성공 시 1, 실패 시 0, 오류 시 NULL 반환
+
```sql
-SELECT RELEASE_LOCK('mylock_1');
+SELECT RELEASE_LOCK('mylock_1');
```
- 네임드 락이 현재 사용 중인지 확인: 다른 세션에 의해 잠금이 걸려있다면 그 세션 ID 반환, 아니면 NULL 반환
+
```SQL
-SELECT IS_USED_LOCK('mylock_1');
+SELECT IS_USED_LOCK('mylock_1');
```
- 네임드 락이 자유로운지 확인: 어떤 세션에도 잡혀있지 않으면 1 반환, 이미 사용 중이면 0 반환
+
```sql
-SELECT IS_FREE_LOCK('mylock_1');
+SELECT IS_FREE_LOCK('mylock_1');
```
동일 이름의 락이 여러 세션에서 동시에 요청하면, 먼저 요청한 세션이 먼저 락을 획득합니다.
예를 들어 배치 프로그램을 실행할 때 동시에 여러 웹서버에서 동일 데이터를 변경하고 참조하는 경우, 네임드 락을 걸고 쿼리를 실행하면 데드락을 방지할 수 있습니다.
-
## 4. 메타데이터 락(Metadata Lock)
+
메타데이터 락은 데이터베이스 객체(테이블, 뷰 등)의 이름이나 구조를 변경하는 경우 획득하는 잠금입니다.
명시적으로 획득하는 것이 아니라, `RENAME TABLE table_a TO table_b` 같이 테이블 이름을 변경하는 경우 자동으로 획득합니다.
-
diff --git a/public/manifest.json b/public/manifest.json
index 0f71482..cd17bcd 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -3,7 +3,7 @@
"name": "디룩(Delook)",
"author": "@waterbinnn",
"homepage_url": "https://www.delook.co.kr/",
- "version": "1.0.10",
+ "version": "1.0.11",
"description": "개념 학습부터 기술 면접 준비까지, 성장하는 개발자의 새 탭",
"action": {
"default_popup": "popup.html",