데이터베이스 아이솔레이션 완전 가이드
·
DB
🎯 아이솔레이션이란?아이솔레이션(격리)은 여러 명이 동시에 데이터베이스를 사용할 때, 각자의 작업이 서로 방해받지 않도록 보장하는 메커니즘입니다.왜 중요한가요?여러 사용자가 동시에 같은 데이터를 수정할 때 데이터 오류 방지ACID 특성 중 'I(Isolation)'에 해당하는 핵심 개념데이터의 일관성과 신뢰성 보장예시: 게시글 조회수가 42일 때, 두 명이 동시에 +1을 하면?아이솔레이션 없음: 42 → 43 (잘못된 결과)아이솔레이션 있음: 42 → 44 (정확한 결과)⚠️ 동시성 문제들 (이상 현상)1. 더티 리드 (Dirty Read)아직 확정되지 않은 데이터를 읽는 문제📋 상세 시나리오초기 상황: 회사에 직원이 5명 있음시간 직원 A의 트랜잭션 막내의 트랜잭션 실제 DB 상태T1🔄 사직서 제..
초대규모 DB 선택
·
DB/postgreSql
PostgreSQL vs MariaDB🏆 결론: PostgreSQL이 더 적합초대규모 애플리케이션에서는 PostgreSQL을 권장합니다. 하지만 상황에 따라 MariaDB도 고려할 수 있습니다.📊 상세 비교 분석🚀 PostgreSQL 장점영역 PostgreSQL 우위점동시성MVCC로 읽기/쓰기 충돌 최소화복잡한 쿼리고급 SQL, Window Functions, CTE 지원확장성수직/수평 확장 모두 우수데이터 타입JSON, Array, UUID 등 풍부한 타입트랜잭션ACID 완벽 지원, 강력한 일관성성능대용량 데이터 처리에 최적화⚡ MariaDB 장점영역 MariaDB 우위점읽기 성능단순 SELECT 쿼리에서 빠름메모리 사용량상대적으로 적은 메모리 사용설정 단순성초기 설정과 튜닝이 쉬움MySQL 호환..
Spring Boot와 React 프로젝트를 하나로 합쳐서 개발하고 배포
·
개발/spring boot
Spring Boot + React 프로젝트 완벽 통합 가이드 ☕ + ⚛️이 가이드는 Spring Boot를 백엔드 API 서버로, React를 프론트엔드 UI로 사용하는 최신 웹 애플리케이션 구조를 만드는 것을 목표로 합니다. 최종적으로 React 앱을 빌드한 결과물(정적 파일)을 Spring Boot가 품고 있다가 사용자에게 서빙하는 방식입니다. 준비물Spring Boot 프로젝트: Gradle 기반의 Spring Boot 프로젝트가 준비되어 있어야 합니다.Node.js와 npm: React 개발에 필수적인 Node.js와 npm이 컴퓨터에 설치되어 있어야 합니다. 1단계: Spring Boot 프로젝트 내에 React 프로젝트 생성하기가장 먼저, Spring Boot 프로젝트 폴더 안에 프론트엔드 ..
관심사 분리
·
성장/스프링 핵심 원리 - 기본편
1. 핵심 원리: '사용'과 '구성'의 분리강의의 핵심은 애플리케이션을 '사용 영역'과 '구성 영역'으로 명확히 분리하는 것입니다.문제 상황: 처음에는 클라이언트 코드(OrderServiceImpl)가 자신이 사용할 구체적인 할인 정책 클래스(FixDiscountPolicy)를 직접 생성하고 의존했습니다. 이 구조에서는 할인 정책을 변경할 때마다(RateDiscountPolicy로 교체) 클라이언트 코드 자체를 수정해야만 했습니다. 이는 **OCP(개방-폐쇄 원칙)**와 **DIP(의존관계 역전 원칙)**를 모두 위반하는 문제입니다.해결 원칙: 클라이언트 객체는 자신의 로직 실행(사용)에만 집중하고, 어떤 구현체를 사용할지 결정하고 생성하며 객체 간의 관계를 설정하는 책임(구성)은 별도의 클래스로 분리해..