물음을 이뤄보자

more

트랜잭션 격리 수준

동시 실행되는 여러 트랜잭션 간 데이터 충돌을 얼마나 방지할 것인지 결정하는 기준격리 수준이 높을수록 정합성은 높아지지만, 동시성 처리 능력과 성능은 떨어질 수 있다 특징 및 Spring @Transactional options격리 수준특징Java (Spring)Read UncommittedDirty Read 허용, 빠름Isolation.READ_UNCOMMITTEDRead CommittedDirty Read 방지Isolation.READ_COMMITTEDRepeatable ReadNon-Repeatable Read 방지Isolation.REPEATABLE_READSerializable모든 현상 방지, 느림Isolation.SERIALIZABLE DBMS격리 수준MySQLPostgreSQLRead Unc..

CS 정리 2025.07.07 1

트리 인덱스, B- B+

인덱싱 :데이터를 빠르게 찾고 정렬하기 위한 기술 트리 인덱스란?데이터를 트리 구조로 구성한 인덱스, 데이터가 정렬된 상태로 유지되며, 탐색(Search), 삽입(Insert), 삭제(Delete) 같은 연산을 빠르게 수행대부분의 관계형 데이터베이스(RDBMS)에서 사용되며, 데이터의 범위 검색, 정렬된 출력, 빠른 키 기반 검색에 유리 B-Tree 인덱스 구조균형 이진 트리를 확장한 구조로, 하나의 노드에 여러 개의 키와 자식 노드를 포함 트리의 모든 리프 노드는 같은 깊이노드는 key 값과 함께 자식 노드를 가리키는 포인터를 가지고 있음삽입과 삭제 시 트리가 자동으로 균형을 맞춤 검색할 때 범위를 반씩 줄여가며 O(log n) 시간 B+Tree 인덱스 구조B-Tree를 개선한 구조로, 실제 데이터를 ..

CS 정리 2025.07.05 0

R2DBC란? WebFlux 활용

관계형 데이터베이스(PostgreSQL, MySQL ...)를 비동기 / 논블로킹 방식으로 사용하는 기술로 매우 심플함기존 Spring은 JPA + JDBC 조합의 블로킹이어서 WebFlux에 활용하기에 부적합 JPA vs R2DBC항목JPA (JDBC)R2DBC처리 방식동기, 블로킹비동기, 논블로킹스레드 낭비OXWebFlux와 궁합❌ 나쁨✅ 좋음Lazy 로딩, 더티체킹있음없음SQL 제어추상화직접 작성퍼포먼스 제어제한적내가 직접 가능 JPA와 다른 점 (R2DBC 특징)영속성 컨텍스트 없음 → 더티체킹, 자동 저장 XLazy 로딩 없음 → JOIN 직접 써야 함연관관계 자동 매핑 없음 → 객체 관계 대신 SQL 중심SQL 직접 작성해야 함 → 유연하지만, 코드도 많아짐String sql = """ ..

CS 정리 2025.07.01 0

Spring WebFlux: 왜, 언제, 어떻게?

Spring WebFlux는 비동기(Async), 논블로킹(Non-blocking) 기반의 웹 프레임워크로, Spring 5부터 도입동시성이 높은 환경에서 적은 리소스로 많은 요청을 처리 왜? MVC와 WebFlux항목 Spring MVCSpring WebFlux처리 방식동기, 블로킹비동기, 논블로킹스레드 모델요청당 스레드 1개이벤트 루프 기반 (Netty 등)데이터 흐름객체 기반리액티브 스트림 (Mono, Flux)적합한 상황CPU 중심, 트래픽 적음I/O 중심, 동시성 많음 언제? 도입 배경 외부 API 여러 개를 병렬로 호출할 때실시간 데이터 처리 (SSE, WebSocket 등)대용량 파일 처리나 스트리밍이 필요할 때느린 외부 시스템과의 연동이 많은 서비스 어떻게? MVC → WebFlux 전환..

CS 정리 2025.06.29 0

커버링 인덱스(Covering Index)란?

모든 컬럼이 인덱스 안에 포함되어 있어서, 테이블을 따로 읽지 않아도 되는 인덱스 Explain 시 Using index 또는 Index Only Scan 표시됨 장점속도 향상: 테이블 접근(IO) 생략 → 더 빠른 처리랜덤 I/O 감소: 특히 하드디스크 환경에서 효과적실행 계획 최적화: 불필요한 테이블 조회 줄임 주의 상황(느려지는 경우)인덱스 컬럼이 너무 많을 때, B-Tree 탐색 비용 증가선두 컬럼을 건너띄는 조건절일 때, 인덱스 효율 감소조회 row 수가 너무 많을 때, 풀스캔 보다 느림 접근 전략자주 쓰는 조회 쿼리에만 적용 (모든 쿼리 남발하지 말 것)인덱스 크기 고려 (너무 많은 컬럼을 포함하지 말 것)EXPLAIN으로 실행 계획 확인 (실제 효용성 확인 할 것)조건 컬럼 순서 고려 (복합..

CS 정리 2025.06.26 0