728x90
반응형
SMALL

spartabootcamp 50

7_1.트랜잭션 개념과 선언적/프로그래밍 방식 비교

학습내용트랜잭션 개념 이해JDBC 트랜잭션 사용트랜잭션 관리 방식학습정리1. 트랜잭션개념데이터베이스에서 여러 작업을 하나의 논리적 작업 단위로 묶어 처리 하는 것목적목적은 작업 도중 오류가 발생하더라도 데이터베이스의 무결성과 일관성을 보장트랜잭션의 주요 기능트랜잭션 시작-- 트랜잭션 시작 (데이터베이스에 따라 BEGIN이나 START TRANSACTION 사용)BEGIN;-- 또는START TRANSACTION;작업 수행-- 주문 시 특정 상품의 재고 감소UPDATE productsSET stock = stock - 1WHERE id = 'productId';-- 예를 들어, 주문 내역을 기록하는 작업도 함께 수행할 수 있습니다.INSERT INTO categories (name) VALUES ('카테고..

TIL 2025.02.04

6_5.데이터베이스 기반 작업 큐 실습

학습내용작업 큐의 개념테이블 작업 기반 큐 활용 실습학습정리1. 작업 큐의 개념작업을 비동기로 순서대로 저장하고 처리데이터베이스나 메모리와 같은 저장소에 저장하고 하나씩 작업을 처리하여 상태를 업데이트 하는 방식필요성응답성 향상 : 비동기적으로 처리함으로 응답속도 향상효율적인 요청처리 : 대량의 요청을 큐에 저장하고 순차적으로 처리하여 시스템 과부하 방지작업 추적 가능 : 작업의 현재 상태와 진행 상황을 추적하여 오류를 방지하고, 관리 용이2. 테이블 작업 기반 큐 활용 실습TaskQueue 테이블 및 엔티티 생성@Entity@Getter@DynamicInsert@DynamicUpdate@NoArgsConstructor@Table(name= "task_queue")@FieldDefaults(level ..

TIL 2025.02.04

6_4.CAP 이론과 일관성 전략

학습내용CAP 이론CAP 이론의 트레이드 오프일관성 전략분산 환경에서의 트레이드 오프 비교학습정리1. CAP 이론분산 컴퓨팅 시스템에서 세 가지 주요 특성인 일관성(Consistency), 가용성(Availability), 분할 내성(Partition tolerance) 간의 관계를 설명하는 이론분산 시스템은 이 세 가지 특성을 모두 동시에 만족할 수 없으며, 최대 두 가지만 충족할 수 있습니다.CAP 이론의 세 가지 요소일관성 (Consistency)모든 노드가 같은 시간에 같은 데이터를 보여줍니다.즉, 데이터를 읽는 모든 사용자는 항상 최신의 데이터를 얻을 수 있습니다.가용성 (Availability):시스템 일부에서 장애가 발생해도, 모든 요청이 정상적인 응답을 받습니다.시스템은 항상 동작하며, ..

TIL 2025.02.04

6_3.DB 락 메커니즘 이해와 실습

학습내용락(Lock) 개념비관적 락 vs 낙관적 락JPA에서의 락 종류와 사용방법실습학습정리1. Lock데이터베이스에서 동시 실행되는 트랜잭션 간의 충돌을 방지하고, 데이터 정합성을 보장하기 위해 특정 자원에 대한 접근을 제어하는 메커니즘-> 즉, 다른 트랜잭션이 특정 데이터에 접근하지 못하도록 잠그는 것-> 락은 막는 행위가 아니라 락은 획득하는것, 락이 끝나면 반납중요성동시성제어 : 동시에 실행 될 때 데이터의 일관성과 정확성을 보장데이터 정합성 유지 : 충돌 상황에서도 데이터가 항상 일관된 상태를 유지시스템 안정성 보장 : 트랜잭션의 원자성을 보장하며 작업 도중 발생하는 오류를 최소화2. 비관적 락 vs 낙관적 락비관적 락개념데이터 충돌이 자주 발생할 것이라고 가정하고, 락을 걸어 다른 트랜잭션이 ..

TIL 2025.02.02

6_2.트랜잭션 격리 수준 이해 및 실습

학습내용트랜잭션 ACID 원칙 복습트랜잭션 격리 수준실습MySQLSpringBoot학습정리1. ACID 원칙Atomicity (원자성)트랜잭션 내의 모든 작업이 성공적으로 완료 되거나, 전형 수행되지 않아야 한다.Consistency (일관성)트랜잭션이 완료되면 데이터베이스는 항상 일관 된 상태를 유지해야한다.Isolation (격리성)여러 트랜잭션이 동시에 실행되더라도 각 트랜잭션은 독립적으로 실행되어야 한다.Durability (지속성)트랜잭션이 성곡적으로 커밋 되면, 시스템 오류나 장애가 발생해도 영구적으로 저장되어야 한다.2. 격리 수준의 종류Read Uncommitted트랜잭션이 커밋 되지 않은 데이터를 다른 트랜잭션이 읽을 수 있음가장 낮은 격리수준으로 동시성은 높지만, 정합성이 보장되지 않음..

TIL 2025.02.01

6_1.동시성 문제 개념 및 사례 분석

학습내용동시성 문제대표적인 동시성 이슈DB 및 Java 코드에서 사례 실습학습정리1. 동시성 문제란?여러 트랜잭션이나 프로세스가 동시에 데이터에 접근하거나 작업을 수행하는 상황을 의미주로 업데이트, 읽기때 발생함 동시성 문제를 제대로 관리하지 않으면, 데이터 정합성 문제가 발생 할 수 있음예시) 수량이 5개인 상품에 대해서 A,B가 동시에 3개씩 주문하면 실제 재고가 -1 되는 현상2. 대표적인 동시성 이슈 (트랜잭션 격리 수준 관련 문제)Dirty Read한 트랜잭션이 커밋 되지 않은 데이터를 다른 트랜잭션에서 읽는 상황을 의미 예시트랜잭션 A: 계좌 잔액을 100에서 200으로 업데이트(하지만 아직 커밋하지 않음).트랜잭션 B: 트랜잭션 A가 수정한 200을 읽음.트랜잭션 A: 롤백(업데이트 취소) ..

TIL 2025.01.27

5_5.MyBatis 활용

학습내용파라미터 및 결과 매핑동적SQLMyBatis 성능 최적화학습정리1. 파라미터 및 결과 매핑단일 파라미터 매핑전 시간에 처리했던 방식으로 진행5_4.EXPLAIN과 MyBatis복합 파라미터 매핑 다수 파라미터, Map 형식 사용//resultType 반환 객체public class UserDto { Long id; String name; String email; String password; LocalDateTime createdAt; LocalDateTime updatedAt;} SELECT * FROM users WHERE name LIKE CONCAT('%', #{name}, '%') AND #{createdAt} > created_at LIMIT 1//호출코드 User..

TIL 2025.01.24

5_4.EXPLAIN과 MyBatis

학습 내용EXPLAIN 개념 및 사용법MyBatis 개념 및 설정학습정리1. EXPLAINEXPLAIN : 데이터베이스가 쿼리를 실행 하기전 실행 계획을 보여주는 명령어어떤 방식으로 테이블에서 데이터를 검색하고 처리하는지 확인 가능주요 필드type (쿼리 실행방법)ALL : 테이블의 모든 데이터 탐색 풀스캔index : 테이블의 전체 인덱스를 탐색range : 범위를 지정하여 데이터 탐색 (BETWEEN, >, ref : 인덱스를 사용하여 특정 값 검색eq_ref : 고유한 값(PK,UK)을 기준으로 검색const/system : 단 하나의 행만 참조하여 검색key : 사용 인덱스rows : 검색 대상의 수Extra (추가 작업 정보) : 쿼리를 발생시 추가 작업에 대한 정보Using index : 인덱..

TIL 2025.01.23

5_3.배치 쿼리 활용

학습내용배치쿼리대량 데이터 처리 전략트랜잭션과 배치 처리의 연관성실습학습정리1. 배치쿼리개념배치처리(Batch Processing)는 대량의 데이터를 효율적으로 처리하기 위해 여러 작업을 한번에 묶어 실행하는 방식주로 데이터베이스 작업에서 대량 데이터를 다루는 경우 활용필요성성능향상 : 개별쿼리를 반복 실행하면 연결이 반복적으로 이뤄져 비용증가트랜잭션 관리 최적화 : 대량 데이터 작업을 한 트랜잭션안에서 처리하여 일관성 보장효율적인 리소스 사용 : DB연결 횟수를 줄이고, cpu와 메모르 효과적으로 사용2. 대량 데이터 처리 전략Insert, Update, Delete 대량으로 처리 방법Insert 처리 : 여러 레코드를 하나의 요청으로 묶어 처리INSERT INTO users (name, email,..

TIL 2025.01.23

5_2.페이징 처리 및 최적화 사례

학습 내용페이징 처리 개념페이징의 한계페이징 최적화 전략학습정리1. 페이징 처리 개념OFFSET 과 LIMITOFFSET : 데이터베이스에서 결과의 집합의 시작위치OFFSET 10 -> 11번째 행부터 결과를 반환LIMIT : 결과 집합에서 최대 행 수를 지정LIMIT 10 -> 10개의 결과를 반환# ORDER BY로 데이터 정렬 OFFSET 20으로 21번째부터 LIMIT 10 10개의 데이터를 반환# ORDER BY시동일한 레코드를 가진 경우가 있을 때 셔플현상이 일어남# id도 추가해서 방지SELECT * FROM products ORDER BY id LIMIT 10 OFFSET 20;2. 페이징의 한계OFFSET이 큰 경우 성능 저하 발생데이터베이스는 OFFSET에 지정 된 값 만큼 데이터를 건..

TIL 2025.01.21
728x90
반응형
LIST