데이터 중심 애플리케이션 설계07
트랜잭션 트랜잭션이란 무엇인가 트랜잭션은 여러 데이터베이스 작업을 하나의 논리적 단위로 묶어서 처리하는 메커니즘이다. 시스템에 오류가 발생하더라도 데이터베이스가 일관된 상태를 유지할 수 있도록 보장한다. ACID 속성 트랜잭션의 안전 보장은 ACID라는 네 가지 속성으로 설명된다: 원자성 (Atomicity) 트랜잭션 내의 모든 작업이 전...
트랜잭션 트랜잭션이란 무엇인가 트랜잭션은 여러 데이터베이스 작업을 하나의 논리적 단위로 묶어서 처리하는 메커니즘이다. 시스템에 오류가 발생하더라도 데이터베이스가 일관된 상태를 유지할 수 있도록 보장한다. ACID 속성 트랜잭션의 안전 보장은 ACID라는 네 가지 속성으로 설명된다: 원자성 (Atomicity) 트랜잭션 내의 모든 작업이 전...
파티셔닝 파티셔닝 개요 파티셔닝의 정의와 목적 파티셔닝(Partitioning)은 대규모 데이터셋을 여러 작은 부분집합으로 나누어 여러 노드에 분산 저장하는 기술입니다. 이는 단일 머신으로는 처리하기 어려운 대규모 데이터나 높은 쿼리 처리량을 효과적으로 관리하기 위한 핵심 전략입니다. 주요 목적: 확장성: 데이터와 쿼리 부하를 여러 노...
Simple Design 기반 강의: 인프런 Simple Design 강좌 Simple Design 이란? Simple Design은 최소한의 구성요소로 중복 없는 코드를 작성하는 설계 철학입니다. 복잡함을 줄여 더 빠른 개발과 유지보수성 향상을 목표로 합니다. 좋은 코드의 기준 1. 테스트 통과 자동화된 테스트를 만드는 팀에...
복제 데이터 복제란? 데이터 복제는 네트워크로 연결된 여러 머신에 동일한 데이터의 복사본을 유지하는 것을 의미합니다. 복제의 목적 데이터 복제를 사용하는 주요 이유는 다음과 같습니다: 신뢰성 향상: 하드웨어 장애나 소프트웨어 오류로 인한 데이터 유실을 방지합니다. 여러 복제본을 유지함으로써 단일 장애점을 제거할 수 있습니다. 가용성 증대...
테스트 주도 개발 후기 배경 TDD(Test-Driven Development)라는 개념은 알고 있었지만, 실제로 어떻게 적용해야 하는지 막막했습니다. 특히 “테스트를 먼저 작성한다”는 것이 현실적으로 가능한지, 정말 효과적인지에 대한 의문이 있었습니다. 그러던 중 TDD의 창시자인 켄트 백의 원서를 읽어보게 되었습니다. 핵심 메시지 TDD는 ...
부호화와 발전 데이터 구조가 메모리 표현에서 바이트 시퀀스로 변환되는 방법과 그 역변환 방법을 다룸 인코딩과 디코딩 인코딩: 인메모리 데이터를 바이트 시퀀스로 변환하는 과정. 직렬화(serialization) 또는 마셜링(marshalling)이라고 부릅니다. 디코딩: 바이트 시퀀스를 다시 인메모리 표현으로 변환하는 과정으로 파싱...
저장소와 검색 데이터베이스의 기본적인 역할 데이터 저장 요청 시, 저장된 데이터 돌려주기 저장 엔진 아키텍처 해시 인덱스 : 키-값 쌍을 파일에 추가하고, 인메모리 해시 맵으로 각 키의 데이터 오프셋을 저장 컴팩션 : 로그에서 중복된 키를 버리고 각 키에 대한 최신 업데이만 유지해서 디스크 공간 회수 SS Table ...
데이터 모델과 질의 언어 데이터 모델은 해결하려는 문제를 어떻게 생각해야 하는지에 대해서도 영향을 미친다. 관계형 모델과 문서 모델 관계형 데이터베이스의 근원은 비즈니스 데이터 처리에 있다. 트랜잭션 처리, 일괄 처리가 핵심 사용 사례다. NoSQL 매우 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 하기 위해서 ...
소프트웨어 시스템의 3가지 관심사 신뢰성 : 하드웨어나, 소프트웨어 결함, 인적 오류 같은 역경에서도 올바르게 동작해야 한다. 확장성 : 스템의 데이터 양, 트래픽 양, 복잡도가 증가해도 처리해야 한다. 유지보수성 : 시간이 지나도, 모든 사용자가 시스템 상에서 생산적으로 작업할 수 있어야 한다. 신뢰성 잘못될 수 있는 일...
환경 window 4070 super 32G 메모리 전체 코드는 여기를 참고해주세요. 웹 검색 LLM 은 학습 시점의 데이터에 따라서, 특정 문제를 해결하기 위해서 필요한 정보가 없을 수도 있습니다. 이 점을 보완하기 위해서, 웹 검색을 해서 필요한 정보를 context 에 넣을 수 있도록 하는 기능을 구현해보겠습니다. asy...