오늘은 Lock에 대해 간단히 정리해보고자 한다. 그리고 H2 데이터베이스에서 LOCK을 설정하는 방법과 조회구문 등을 정리하겠다.(MySQL 추가) Lock일 뭘까? Lock이란 말그대로 잠그는것으로 데이터의 무결성, 일관성 그리고 동시성을 보장하기 위한 매커니즘이다. 락은 여러 사용자 또는 프로세스가 동시에 DB에 접근하고 변경할 때 발생하라 수 있는 데이터 불일치나 경합 상태를 방지하기 위해 사용된다. Lock의 종류 공유락(Shared Lock 또는 Read Lock) 읽기 연산을 수행할 때 주로 사용되며, 여러 사용자 또는 프로세스가 데이터를 동시에 읽을 수 있다. 배타적 락(Exclusive Lock 또는 Write Lock) 쓰기 연산을 수행할 때 사용되며, 데이터를 변경하는 동안 다른 사용..
클러스터링이란? 여러 대의 독립적인 DB서버를 하나의 논리적인 그룹으로 결합하고 하나의 데이터베이스를 여러 대의 서버가 나눠서 관리하도록 하는 것이다. 이렇게 하나의 데이터베이스를 여러개의 서버로 구축되는 경우를 클러스터라고 한다. 클러스터링의 장점 1. 장애복구를 통한 고 가용성 클러스터링은 데이터베이스 서버의 장애를 감지하고 장애 발생 시 자동으로 다른 노드로 작업을 이전시켜 시스템의 가용성을 유지한다. 2. 확장성 클러스터링은 데이터베이스의 처리량 및 성능을 향상시킬 수 있다. 여러 대의 서버를 클러스터로 구성하여 작업을 분산하고 병렬 처리를 가능하게 한다. 3. 로드 밸런싱을 통한 트래픽 분산 로드 밸런싱을 통해 여러 데이터베이스 서버에 작업을 고륵게 분산하여 작업 부하를 줄일 수 있다. 종류 A..
DB 파티셔닝?? 대용량 데이터를 처리하는데 있어서 매우 중요한 기술로서 대용량 데이터를 분할해서 저장하고, 분산 처리할 수 있는 방식을 뜻한다. 즉, 대용량 데이터나 인덱스를 작은 단위(Partition)로 나누어 관리하는 것이다. 파티셔닝은 데이터의 크기가 너무 커져 디스크 I/O에 대한 비용이 크게 증가할 때 성능을 향상시키기 위해 사용될 수 있다. 물리적으로 데이터 분할이 있지만 DB에 접근하는 애플리케이션 입장에서는 이를 알지 못한다. "장점" 1. 성능 향상 데이터가 분산되어있기 때문에 Full Scan의 범위가 줄어 성능 향상을 야기한다. 논리적으로는 하나의 테이블이기 떄문에 쿼리문을 변경할 필요가 없다. 2. 높은 가용성 파티셔닝을 사용하면 데이터가 분산 저장되기에 하나의 파티션에 장애가 ..
블로그 프로젝트를 하던 와중에 오류를 발견했습니다. 바로 조회한 태그가 UI에 뜨지 않는다는 것!! 상황 게시글과 태그의 ManyToMany 관계를 풀어놓은 BoardToTag 테이블 FK에 null값으로 채워지고 있었습니다. 그래서 지연로딩을 통한 조회를 하더라도 태그의 이름이 조회가 되지 않아 UI에도 보이지 않았던 것이였습니다. 그럼 왜 null 값으로 채워지고 있었을까요..? 원인후보1: 연관관계 메서드를 제대로 작성하지 않았다. 연관관계 메서드는 확실하게 작성되어 있었습니다. 원인후보2: @JoinColumn 속성에 문제가 있다. 네..맞습니다. @JoinColumn 속성으로 insertable=false, updateable=false를 설정했기에 위와 같은 현상이 발생했습니다. # inser..
- Total
- Today
- Yesterday
- 1316번
- 11659
- 백준#서강근육맨#20300
- 7568
- 프로그래머스
- controller
- this()
- arraylist
- list
- MVC
- 회고
- springboot
- Spring
- HTTP#HTTP특징
- 1978
- 게시판#자바#JPA#Entity
- java
- 사탕 게임#백준#3085
- 스프링
- 덧칠하기
- 서블릿#Servlet
- 백준
- 백준#잃어버린 괄호#1541
- 대충 만든 자판
- 오류
- 파이썬
- 백엔드#게시판
- 4673번
- 자바
- querydsl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |