반응형

분류 전체보기 312

[매일메일] 갭락(Gap Lock)이란?

Gap Lock이란 무엇인가요? 갭 락은 특정 인덱스 값 사이의 공간을 잠그는 락입니다. 기존 레코드 간의 간격을 보호하여 새로운 레코드의 삽입을 방지합니다. 갭 락은 범위 내에 특정 레코드가 존재하지 않을 때 적용됩니다. 트랜잭션이 특정 범위 내에서 데이터의 삽입을 막아 팬텀 읽기(Phantom Read) 현상을 방지합니다. 예를 들어, 인덱스 값 10과 20 사이의 갭을 잠그면 이 범위 내에 새로운 레코드 15를 추가할 수 없습니다.// id 1, 3, 5가 저장된 orders 테이블// 트랜잭션 A 시작START TRANSACTION;// 트랜잭션 A 1-3과 3-5 사이의 갭과 3 레코드 락 설정(넥스트키 락)SELECT * FROM orders WHERE orders_id BETWEEN 2 AN..

[매일메일] 팬텀 리드(Phantom Read) 란?

Phantom Read란 무엇인가요?Phantom Read는 트랜잭션이 동일한 조건의 쿼리를 반복 실행할 때, 나중에 실행된 쿼리에서 처음에는 존재하지 않았던 새로운 행이 나타나는 현상입니다. 이는 주로 읽기 일관성(Read Consistency) 을 유지하는 과정에서 발생할 수 있는 문제로, 데이터 삽입이나 삭제가 다른 트랜잭션에 의해 이루어질 때 발생합니다.  -- 트랜잭션 A 시작START TRANSACTION;-- 트랜잭션 A 첫 번째 조회SELECT * FROM orders WHERE amount > 150;-- 트랜잭션 B 시작START TRANSACTION;-- 트랜잭션 B 새로운 행 삽입INSERT INTO orders (customer_id, amount) VALUES (4, 250);-..

[매일메일] 데이터베이스 시스템 동시성 제어 (MVCC, Lock-Based Concurrency Control)

MVCC(Multi-Version Concurrency Control) 란? 대표적인 동시성 제어 방식으로 MVCC(Multi-Version Concurrency Control) 와 Lock-Based Concurrency Control이 있습니다. 🔒 1. MVCC(Multi-Version Concurrency Control)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식입니다. 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않습니다.데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있습니다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 ..

[매일메일] 웹 접근성의 개념과 개선 방법

웹 접근성은 장애인과 고령자 등 신체적 제약이 있는 사용자를 포함해, 모든 사용자가 웹 페이지를 동등하게 이용할 수 있도록 보장하는 개념입니다. 마치 공공건물에 휠체어 경사로를 설치해 이동이 불편한 사람도 이용할 수 있게 하는 것처럼, 웹 페이지 역시 디지털 경사로를 마련해 누구나 접근할 수 있어야 합니다. 다만 접근성은 단순히 장애인만을 위한 것이 아닙니다. 네트워크 속도가 느리거나 밝은 햇빛 아래 화면을 보는 등 일상적인 제약 상황에서도, 모든 사용자가 제약 없이 웹을 사용할 수 있도록 하는 것이 웹 접근성의 궁극적인 목표입니다.웹 접근성 개선에는 다양한 방법이 있습니다. 우선, 단순하고 명확한 HTML 구조와 시맨틱 태그가 필요합니다. 여기서, 시맨틱 태그는 웹 페이지의 구조와 의미를 명확하게 전달..

Today English Expression _ [CARRY]

1. (~을) 갖고 있다.This loan carries a 7 percent interest rate The mortgage carries a fixed rate of 7 percent  2. (~을) 갖고 있다. This cell phone carries a one-year warranty against defects.The product carries a warning label for pregnant women.This product carries a 30-day money back guarantee. 3. (범죄가 ~한 형벌을) 수반하다Insurance fraud carries a penalty of up to 5 years in prison. A misdemeanor carries a fine..

[JPA] Spring Data JPA 쿼리를 작성 방식

✅ 다른 방식과의 비교 요약 (상세)항목JPA 기본JPQL네이티브 SQLSpecificationQuerydsl구현 복잡도매우 낮음낮음보통보통높음동적 조건 처리불가어려움복잡쉬움매우 쉬움타입 안전성낮음낮음낮음낮음높음가독성/유지보수보통보통낮음보통~낮음좋음조인/서브쿼리불가제한적가능제한적강력페이징/정렬자동 지원수동 또는 Pageable수동 처리 필요자동 지원자동 지원 ✅ JPA 기본 & Querydsl요구사항메서드 이름 기반Querydsl단순 조회 (id, status)✔ 가능-검색어 포함 여부 (키워드)✘ 어려움✔ Querydsl로 처리날짜 범위 검색✘ 어려움✔ Querydsl로 처리동적 조건: 특정 조건이 있을 때만 필터 적용✘ 불가능✔ Querydsl의 BooleanBuilder 사용정렬/페이징✔ 가능 (..

IT 정보/JPA 2025.04.07

[매일메일] HTTP 메서드에서 멱등성이란

멱등성이란멱등성이란 같은 연산을 여러 번 수행해도 결과가 변하지 않는 성질을 의미해.즉, 같은 요청을 한 번 보내든, 여러 번 보내든 결과가 동일해야 해! ✅ 멱등한 HTTP 메서드 vs 멱등하지 않은 메서드GET✅ 멱등함같은 데이터를 조회하므로 결과가 변하지 않음PUT✅ 멱등함같은 데이터를 여러 번 수정해도 결과가 동일DELETE✅ 보통 멱등함같은 데이터를 여러 번 삭제 요청해도 결과가 동일 (이미 삭제된 경우 404 응답)POST❌ 멱등하지 않음같은 데이터를 여러 번 생성하면 중복 삽입될 수 있음 ✅ 멱등성을 보장하는 방법고유한 요청 ID 사용예: requestId를 클라이언트가 생성해서 서버에서 중복 요청인지 확인POST 요청 시 requestId가 동일하면, 이미 처리된 요청이라면 무시데이터 업데..

[매일메일] useEffect와 useLayoutEffect의 차이점

useEffect와 useLayoutEffect는 모두 렌더링된 후에 특정 작업을 수행하기 위해 사용됩니다. 하지만 실행되는 타이밍과 용도가 다릅니다.먼저, useEffect는 렌더링이 완료되는 시점에 비동기적으로 실행됩니다. 즉, 화면이 실제로 사용자에게 그려진 후에 useEffect가 실행되는 방식입니다. 그래서 useEffect는 보통 데이터를 가져오는 작업이나 이벤트 리스너 추가 등 렌더링 후에 화면에 직접적인 영향을 주지 않는 작업에 주로 사용됩니다.반면에 useLayoutEffect는 렌더링 후 DOM이 업데이트되기 직전의 시점에 동기적으로 실행됩니다. 여기서 동기적이라는 것은 화면에 내용이 그려지기 전에 모든 레이아웃 관련 작업이 완료된다는 의미입니다. 예를 들어, DOM의 크기를 측정하거나..

Today English Expression _ [CALL]

1. (회의 or 사람을) 소집하다.The Board has called a meeting for September 12, at 2 p.m I'm going to call a press conference next week.  2. (파업 or 중지 등을) 요구하다. / 명하다.The railway union called a strike after negotiations had failed.  The chairman called a halt to the debate  3. (~을 ... 이라고) 여기다. / 평가하다.Many critics called the movie a masterpiece=> Many critics evaluateed the movie as a masterpiece The New Y..

Today English Expression _ [BREAK]

1. 구름이 (걷히다)The rain clouds are breaking (up).After a while, the clouds broke, and the sun came out again. 2. (파업을) 끝내다. 중지시키다.We are discussing steps to break the strike.The governor is considering the use of state troops the break the strike. 3. (여행 구간을) 나누다.We decided to break the trip into three legs.  We broke the trip into two days. 4. (열이) 내리다.I think the fever is breaking.Her fever broke..

반응형