JAVA/DB

JAVA/DB

[Spring] 데이터베이스 동시성 문제 해결 코드 (STEP 1. LOCK)

GitHub - oddnine/spring-concurrency-problem-solving: 스프링 동시성 문제 해결 과정 with Redis, kafka 스프링 동시성 문제 해결 과정 with Redis, kafka. Contribute to oddnine/spring-concurrency-problem-solving development by creating an account on GitHub. github.com 프로젝트를 진행하다 보면 트래픽이 몰릴 경우 동시성 문제가 발생할 수 있다. 그러기 위해선 다양한 방법을 사용할 수 있는데 첫 번째로 나는 DB LOCK을 걸어볼 것이다. 상황은 다음과 같다. 1. 티켓 서비스를 제공하고 티켓을 n장을 준비해 둔다. 2. 스레드로 동시 접속으로 티켓을 ..

JAVA/DB

[DB] 스프링 트랜잭션(@Transactional)이란? 사용해보기 (feat. JdbcTemplate)

[본 포스팅은 스프링 DB 1편 - 데이터 접근 핵심 원리 편을 기반으로 작성하였습니다.] 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 트랜잭션이란? 트랜잭션이란 더 이상 나눌 수 없는 가장 작은 하나의 단위를 의미한다. 상황 1: 원자성(Atomicity)) 만약 A 사용자가 B 사용자에게 5000원을 송금한다면? A 사용자 계좌 5000원 감소 B 사용자 계좌 5000원 증가 위처럼 2가지의 작업이 일어나게 되는데, 만약 2번에서 오류가 발생하였을 경우 트..

JAVA/DB

[DB] 커넥션 풀(Connection Pool)이란? HikariCP 사용해보기

[본 포스팅은 스프링 DB 1편 - 데이터 접근 핵심 원리 편을 기반으로 작성하였습니다.] 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 데이터베이스 커넥션을 획득할 때는 복잡한 과정을 거치게 된다. 간단히 말해 TCP 구조다 보니 3 way handshake를 거쳐 DB의 ID/PW 인증과 내부에 DB 세션을 생성하고... 그 외에 많은 과정을 거친다. 이렇게 커넥션 풀을 사용하지 않고 하나의 커넥션만으로 DB에 접근하여 쿼리문을 전송하게 되면 사용자에게 느린..

혁키
'JAVA/DB' 카테고리의 글 목록