분류 전체보기85 격리 수준 동시성 제어 격리 수준 (락, MVCC, 동시성)같은 데이터를 여러 트랜잭션이 동시에 읽고 쓰면 결과가 어긋날 수 있다. 이 문제를 다루는 영역이 동시성 제어(Concurrency Control)이며, ANSI SQL은 네 가지 격리 수준(Isolation Level)을 표준화해 어떤 종류의 이상 현상을 허용할지 골라 쓸 수 있게 했다. 본 글은 동시성 이상 현상 3종·ANSI 격리 수준 4단계·락 기반 vs MVCC 기반 동시성 제어를 세심하게 정리한다(출처: 위키백과 — Isolation (database systems)). 제가 학교 캡스톤에서 쿠폰 사용 처리를 기본 격리 수준(MySQL의 REPEATABLE READ)으로 두었다가 같은 쿠폰이 두 번 사용된 데이터가 끼어 있던 사고를 겪고 나서야 "기본 격리 .. 2026. 5. 15. DB - 트랜잭션 ACID 트랜잭션 (ACID, 커밋, 로그)데이터베이스가 "신뢰할 수 있는 저장소"인 이유는 트랜잭션(Transaction)과 ACID 속성이 받쳐 주기 때문이다. 송금 한 번이 중간에 끊겨도 돈이 사라지지 않고, 동시에 1만 명이 같은 좌석을 예약해도 한 사람만 성공한다. 이 모든 보장의 토대가 트랜잭션 메커니즘이다. 본 글은 트랜잭션의 정의·ACID 4대 속성·트랜잭션 상태 다이어그램·WAL(Write-Ahead Logging) 기반 복구 메커니즘을 세심하게 정리한다(출처: 위키백과 — ACID). 제가 학교 캡스톤에서 결제 처리 코드를 트랜잭션 없이 UPDATE balance ... ; INSERT INTO ledger ... 두 줄로 짰다가 한 줄만 성공한 상태에서 서버가 죽어 잔액과 장부가 어긋나는 사고.. 2026. 5. 15. DB - 인덱스 쿼리 최적화 인덱스 (B-Tree, 쿼리, 옵티마이저)데이터베이스의 응답 시간은 거의 항상 인덱스(Index) 설계가 좌우한다. 같은 쿼리도 인덱스가 있을 때와 없을 때 1000배 이상 차이가 나고, 같은 인덱스도 컬럼 순서·타입에 따라 사용되거나 무시된다. 본 글은 인덱스의 핵심 자료구조(B-Tree·B+Tree·Hash·Bitmap), 쿼리 옵티마이저의 동작 원리, 그리고 EXPLAIN으로 실행 계획을 분석해 인덱스를 진단하는 실전 절차를 세심하게 정리한다(출처: 위키백과 — Database index). 제가 학교 캡스톤에서 사용자 검색 화면이 30초 걸리던 쿼리에 복합 인덱스 하나를 추가하자 30ms로 떨어진 모습을 본 후로는 "DB 튜닝의 90%는 인덱스 설계와 EXPLAIN 읽기"라는 사실을 손끝으로 받아.. 2026. 5. 15. DB - ERD 키 설계 심화 ERD 설계 (정규화, 외래키, 무결성)데이터베이스의 모든 사고는 첫 단추인 ERD 설계에서 시작된다. 키를 잘못 잡으면 정규화가 깨지고, 외래 키 관계가 흩어지면 무결성이 무너지며, 결국 운영 단계에서 끝없는 데이터 정합성 문제로 이어진다. 이 글은 정보처리기사 필기에서 다룬 "DB 설계 3단계"의 다음 단계로, ERD 설계의 실전 기술 — 키의 종류, 관계의 모델링, 식별 관계 vs 비식별 관계, 무결성 제약, 그리고 정규화 심화까지 — 를 세심하게 정리한다(출처: 위키백과 — Entity-Relationship Model). 제가 학교 캡스톤에서 사용자 ID를 char(20)로 잡고 외래 키를 7개 테이블에 박았다가 한 달 뒤 ID 정책이 바뀌어 7개 테이블을 한꺼번에 마이그레이션하는 사고를 겪고 .. 2026. 5. 15. 로그인 크롤링 세션 CSRF 로그인 크롤링 (세션, 쿠키, CSRF)크롤링을 어느 정도 익히고 나면 거의 반드시 마주치는 다음 벽이 로그인이 걸린 페이지다. BS4와 requests.get()으로 페이지를 받아 보면 정작 보고 싶은 데이터가 있는 자리에 "로그인이 필요합니다"라는 안내만 떨어진다. 본 글은 그 벽을 통과하는 세 가지 핵심 개념인 HTTP 세션 유지, 쿠키 기반 인증, CSRF 토큰 처리를 4학년 비정형 데이터 처리 수업에서 학교 LMS 알림 자동화를 시도하며 마주쳤던 본인 경험에 비추어 정리한다(출처: requests 공식 문서 Sessions). 제가 처음 로그인 페이지를 크롤러로 통과시키려 했을 때 가장 황당했던 게 "정확한 ID·비밀번호를 보내는데도 응답이 그대로 로그인 페이지로 돌아오는" 모습이었고, 지금 보.. 2026. 5. 15. Scrapy 프레임워크 입문 Scrapy (스파이더, 파이프라인, 비동기)requests와 BeautifulSoup로 크롤링 첫 결과를 손에 잡고 나면 거의 반드시 마주치는 한계가 있다. 페이지가 100개를 넘어가는 순간 스크립트는 갑자기 느려지고, 실패 재시도·중복 제거·CSV 저장 같은 부가 코드가 본체보다 길어지기 시작한다. 본 글은 그 한계를 산업 표준 프레임워크 차원에서 풀어내는 도구인 Scrapy를 스파이더 구조, 파이프라인을 통한 수집·가공·저장 분리, 비동기 처리 기반의 성능 차이라는 세 축으로 정리한다(출처: Scrapy 공식 문서). 제가 4학년 비정형 데이터 처리 수업에서 BS4로 학교 채용 공지 100건을 긁어 보다가 단순 직렬 처리만으로 6분 가까이 걸리는 모습을 보고 "이건 도구의 한계가 아니라 구조의 한계.. 2026. 5. 15. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음