면접에서 '이 DB를 왜 선택했나요?'라는 질문에 근거 있게 답하는 방법. SQL vs NoSQL, 각 DB의 선택 기준, CAP 이론까지 DB 시리즈 마무리.
MongoDB가 관계형 DB와 근본적으로 다른 이유는 '어떻게 데이터를 모델링하느냐'에 있다. 임베딩 vs 참조 결정 기준, WiredTiger 스토리지 엔진, 집계 파이프라인을 정리한다.
Redis가 인메모리라서 빠른 건 반쪽짜리 설명이다. 단일 스레드 이벤트 루프가 Lock 없이 고성능을 내는 원리, 자료구조별 내부 구현과 시간복잡도, RDB vs AOF 영속성 차이를 정리한다.
둘 다 RDBMS지만 MVCC 구현 방식이 다르고, 인덱스 구조가 다르고, JSON 처리 능력이 다르다. 선택 기준을 근거 있게 설명할 수 있게 됩니다.
DB 커넥션 생성이 얼마나 비싼지, HikariCP가 어떻게 동작하는지, 풀 사이즈 공식과 커넥션 고갈 상황을 어떻게 분석하는지 정리한다.
이상 현상이 뭔지, 1NF~3NF가 어떻게 이를 해결하는지, 그리고 실무에서 의도적으로 정규화를 깨는 경우는 언제인지 정리한다.
EXPLAIN 실행 계획에서 type, key, Extra가 뭘 의미하는지, OFFSET 페이징이 느린 이유와 커버링 인덱스로 해결하는 방법을 정리한다.
Controller, Service, Domain, Repository 각 계층이 무엇을 해야 하고 무엇을 하지 말아야 하는지, 흔한 위반 패턴과 해결책을 정리한다.
락 없이 읽기 일관성을 보장하는 MVCC, 갭 락이 Phantom Read를 막는 원리, 데드락이 생기는 이유와 예방법까지. MySQL InnoDB의 동시성 처리 방식을 정리한다.
OrderService에 주입되는 의존성이 계속 늘어나는 문제를 Spring Event와 @TransactionalEventListener로 해결하는 방법을 다룬다.
개인정보처리방침