DB(12)
-
[LG U+ 유레카 3기] MongoDB 기본 CRUD 실습
[LG U+ 유레카 3기] MongoDB 기본 CRUD 실습이번 실습에서는 MongoDB 자바 드라이버를 사용하여 CRUD(Create, Read, Update, Delete) 기능을 직접 구현해보았다.MongoDB는 NoSQL 기반의 문서형 데이터베이스로, 테이블 대신 Collection과 Document 구조를 사용한다.❶ 실습 환경 설정MongoDB가 로컬 환경에 설치되어 있어야 하며, 자바 프로젝트에서는 Maven으로 의존성을 추가했다. org.mongodb mongodb-driver-sync 4.5.0자바 버전은 17로 설정했고, 기본 연결 문자열은 mongodb://localhost:27017을 사용했다.❷ 데이터베이스 연결 및 컬렉션 접근MongoDB 클라이언트를 생성하고, ..
2025.10.21 -
[LG U+ 유레카 3기]MongoDB Compass CRUD 실습 정리
🧩 MongoDB Compass CRUD 실습 정리이번 글에서는 MongoDB Compass를 이용해 기본적인 CRUD(Create, Read, Update, Delete) 실습을 진행했다.MongoDB의 공식 GUI 도구인 Compass를 통해 데이터를 시각적으로 관리하는 법을 익히고,명령어(cmd) 기반으로도 동일한 기능을 수행해보았다.참고 자료: W3Schools MongoDB Tutorial❶ MongoDB Compass란? & CMD에서의 실행MongoDB Compass는 MongoDB의 공식 GUI(Graphical User Interface) 툴로, 데이터베이스와 컬렉션을 시각적으로 관리할 수 있는 도구다.CLI(Command Line Interface) 환경에서 명령어를 직접 입력하는 대..
2025.10.21 -
NoSQL과 MongoDB 이해
NoSQL과 MongoDB 이해이 글에서는 NoSQL의 개념부터 MongoDB의 구조와 특징, 그리고 BSON과 비정형 데이터까지 한 번에 정리한다.몽고DB는 단순한 데이터베이스가 아니라, “데이터를 자유롭게 저장한다”는 철학의 구현체다.❶ NoSQL이란?NoSQL은 Not Only SQL의 약자로, “SQL만 고집하지 않는다”는 의미다.전통적인 RDBMS(관계형 데이터베이스)가 가지는 구조적 제약을 벗어나, 더 유연하고 수평 확장에 강한 데이터 저장 방식을 제공한다.📌 RDBMS와 NoSQL의 차이- RDBMS: 테이블, 행, 열 기반의 정형 데이터 구조- NoSQL: 문서형, 키-값형, 컬럼형, 그래프형 등 다양한 구조 지원- 대표 NoSQL DB: MongoDB(문서형), Redis(키-값형), ..
2025.10.21 -
[LG U+ 유레카 3기] DeadLock(교착상태) 발생 원리
❶ DeadLock(교착상태)이란?두 개 이상의 트랜잭션이 서로가 가진 자원을 기다리며 무한 대기 상태에 빠지는 현상을 말한다.쉽게 말해, “너가 락 풀어야 내가 진행하고, 내가 락 풀어야 네가 진행할 수 있는 상황”이다. ❷ 데드락 발생 조건 (필요조건 4가지)조건설명① 상호 배제 (Mutual Exclusion)하나의 자원은 한 트랜잭션만 점유 가능② 점유와 대기 (Hold and Wait)자원을 보유한 상태에서 다른 자원을 기다림③ 비선점 (No Preemption)락은 트랜잭션이 자발적으로 해제할 때만 풀림④ 순환 대기 (Circular Wait)서로가 상대 자원을 기다리며 원형 관계 형성✅ 위의 네 가지 조건이 모두 충족되면 데드락이 발생한다.❸ 데드락 발생 과정 예시 -- 트랜잭션 A STAR..
2025.10.16 -
[LG U+ 유레카 3기] 트랜잭션 고립수준과 의도락 · 회복 정리
1️⃣ 트랜잭션(Transaction) 기본 개념트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위를 말한다.즉, 여러 SQL 문이 모두 성공하거나 모두 실패해야 하는 일관된 단위다.트랜잭션은 다음 4가지 속성을 반드시 만족해야 한다.속성설명Atomicity (원자성)모든 연산이 전부 수행되거나 전혀 수행되지 않아야 함Consistency (일관성)트랜잭션 수행 전후 데이터베이스 상태가 일관성 유지Isolation (고립성)서로 다른 트랜잭션의 작업이 서로 간섭하지 않음Durability (지속성)트랜잭션이 성공적으로 완료되면 그 결과는 영구히 반영2️⃣ 트랜잭션 고립 수준 (Isolation Level)고립 수준은 여러 트랜잭션이 동시에 수행될 때 서로의 데이터를 얼마나 보호할 것인가를 결정한다.MyS..
2025.10.16 -
[LG U+ 유레카 3기] Deadlock & 2단계 로킹 실습
이번 실습에서는 MySQL의 데드락(Deadlock) 현상을 직접 재현하고, 이 과정이 내부적으로 2단계 로킹(2PL, Two-Phase Locking) 프로토콜 위에서 동작한다는 사실을 함께 확인했습니다.---❶ 상황 설명두 개의 세션(Session 1, Session 2)이 같은 테이블 book의 서로 다른 행을 서로 다른 순서로 UPDATE 하며, 교착 상태(Deadlock)를 유발하도록 실험했습니다.---❷ 실습 코드Session 1START TRANSACTION;UPDATE book SET price = 8000 WHERE bookid = 2;UPDATE book SET price = 8000 WHERE bookid = 1;COMMIT;Session 2START TRANSACTION;UPDATE..
2025.10.16