DataBase(3)
-
[Database] Spring Data Redis에서 Pipeline 활용하기
이번 포스팅은 Redis 파이프라인에 대해서 알아보고 사용해 보는 과정을 포스팅하겠습니다. redis pipeline이란?우선 redis는 클라이언트와 TCP/IP 소켓 통신을 기반으로 통신하며 기본적으로 요청을 보낼 때 아래와 같이 수행합니다. 요청 -> 응답, 요청 -> 응답 (네트워크를 계속 왔다 갔다 함) 3-way handshake를 수행하면서 수신자가 받을 준비가 되어있는지, 송신자가 보낼 준비가 되어있는지를 체크합니다. 이 체크가 모두 완료 되고나서야 실제로 패킷이 전송되며 통신이 이루어집니다. 이러한 체크과정이 TCP 통신에선 필수로 포함되어야하기 때문에 다량의 요청을 단발성으로 여러번 보내게 되면 그만큼의 통신 체크 과정도 여러번 수행하므로 그만큼의 오버헤드가 발생합니다. 따라서 다량의 ..
2025.12.29 -
[Database] MongoDB 연동하기
이번 포스팅에서는 NoSQL의 대표적인 데이터베이스인 MongoDB 연동에 대해서 알아보겠습니다. NoSQL 데이터베이스?항목설명비관계형 (Non-relational)테이블 간의 관계(조인)가 없거나 최소화됨. 대신 중첩 구조, 중복 데이터 등을 허용하여 성능과 유연성 확보스키마 유연성고정된 스키마가 없음. 각 문서나 레코드는 구조가 달라도 저장 가능 (MongoDB에서는 같은 컬렉션 내 문서 구조가 달라도 됨)수평 확장여러 서버에 데이터를 분산해 저장(sharding). 수평적 확장(scale-out)이 쉬워 대용량 데이터 처리에 유리빠른 쓰기/읽기 작업단순한 읽기·쓰기 작업에 매우 빠름. 실시간 데이터 처리, 로그 수집, IoT 등에서 강점다양한 데이터 모델Key-Value, Document, Co..
2025.07.09 -
[DataBase] DeadLock 해결하기, JPA 쿼리 실행 순서
이번 포스팅에서는 데드락의 개념, 데이터베이스 Lock, 데드락 발생 상황 설명, 해결방법에 대해 기록하겠습니다. 데드락이란? 즉, 둘 이상의 프로세스(스레드)가 다른 프로세스(스레드)가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 일컫습니다. 데드락이 발생하기 위한 조건은 크게 4가지로 말할 수 있습니다 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점 이미 할당된 자원을 강제로 빼앗을 수 없다(비선점). 순환 대기 대기 프로세스의 집합이 순환 형..
2025.04.18