| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 데이터베이스 #try #이중
- angular
- 전역변수
- github
- entity
- 타입스크립트
- &연산
- 문서번호
- 클론코딩
- Props
- TypeScript
- 1px border
- 0.75px border
- jwt
- 으
- literal
- TS
- npm
- Strict
- 0.5px border
- es6
- 서버리스 #
- 컴포넌튼
- Websocket
- ES5
- 당근마켓
- font-size
- 10px
- 0.25px border
- ZOOM
- Today
- Total
목록BE/DB (12)
복잡한뇌구조마냥
대규모 트래픽 환경에서 캐시를 사용하다 보면, 특정 시점에 DB로 요청이 한꺼번에 몰리는 현상이 발생할 수 있다.이를 Cache Stampede(캐시 스탬피드) 라고 부른다.간단히 말하면,캐시가 비는 순간, 모든 요청이 동시에 DB로 몰려가는 문제이다.🧩 캐시 스탬피드는 언제 발생할까?가장 대표적인 상황은 다음과 같다.1️⃣ 캐시 만료(TTL Expire) 시점인기 데이터(메인 페이지, 인기 게시글, 랭킹 등)캐시 TTL이 만료되는 순간다수의 요청이 동시에 유입 [요청 1] 캐시 없음 → DB 조회[요청 2] 캐시 없음 → DB 조회[요청 3] 캐시 없음 → DB 조회...👉 원래는 캐시 1번만 갱신하면 되는데, DB를 N번 조회 2️⃣ 서버 재시작 / Redis FlushRedis 재시작FLUS..
1. Redis란?Redis(Remote Dictionary Server)는 메모리 기반 Key-Value 저장소로,주로 캐시(Cache), 세션(Session), 임시 데이터 저장소 용도로 사용된다.Redis 특징Redis는 In-Memory 기반의 Key-Value 저장소로,RDB를 대체하기보다는 보조 저장소로 주로 사용된다.In-Memory 기반 → 속도가 매우 빠름다양한 자료구조 지원String, List, Set, Sorted Set, HashTTL(Time To Live) 지원싱글 스레드 기반(Event Loop) → 예측 가능한 성능디스크 영속화(RDB / AOF) 가능2. Redis를 왜 도입했는가?실제 프로젝트(취미 장비 대여 플랫폼, 인증/보안 기능)에서 Redis를 도입한 이유는 다음..
🧱 1. 무결성이란?정의: 데이터베이스에 저장된 데이터의 정확성, 일관성, 유효성을 유지하기 위한 성질목적: 잘못된 데이터 입력, 중복, 삭제 오류 등으로부터 데이터의 신뢰성을 보장관련 개념: 제약조건(Constraints) — 무결성을 보장하기 위한 규칙🔍 2. 무결성의 종류구분설명예시개체 무결성 (Entity Integrity)기본키(Primary Key)는 NULL이거나 중복될 수 없음학생 테이블의 학번은 중복 X참조 무결성 (Referential Integrity)외래키(Foreign Key)는 참조하는 기본키가 존재해야 함수강 테이블의 학번은 반드시 학생 테이블에 존재해야 함도메인 무결성 (Domain Integrity)속성(Attribute)의 값이 정의된 범위 내에 있어야 함성별 컬럼이 ..
데이터베이스에서 트랜잭션(Transaction) 은“하나의 논리적인 작업 단위(Logical Unit of Work)”를 의미합니다.즉, 여러 SQL 작업을 하나의 묶음으로 처리해서모두 성공하면 Commit, 하나라도 실패하면 Rollback 하는 개념이에요.💡 트랜잭션(Transaction) 이란?하나 이상의 SQL 명령어를 하나의 논리적 단위로 묶어서,전부 성공하거나 전부 실패하도록 보장하는 것.예를 들어, 계좌이체를 생각해볼까요? A 계좌에서 10,000원 출금 B 계좌에 10,000원 입금 이 두 작업은 둘 다 성공하거나, 둘 다 실패해야 합니다.만약 출금만 되고 입금이 안 되면 큰일이죠 😅👉 이처럼 데이터의 일관성과 무결성을 보장하기 위해 트랜잭션이 필요합니다.🧩 트랜잭션의 4가지 ACI..
요즘 RAG(Relevance-Augmented Generation)나 개인화 추천, 대화형 챗봇을 만들다 보면 꼭 등장하는 기술이 벡터 데이터베이스(Vector DB) 이다.나 역시 프로젝트에서 GPT 기반 여행 추천 챗봇을 구현하면서 관련 내용을 정리해보면 좋을 것 같아 이렇게 글을 남긴다.1. 🔍 벡터 DB가 등장한 이유일반적인 관계형 DB는 정확한(Exact) 검색에는 강하지만, 아래와 같은 **의미 기반 검색(Semantic Search)**에는 약하다.예를 들어:“강원도 힐링 여행지 추천 좀 해줘”“한적하고 조용한 여행지가 좋아”“아이랑 가기 좋은 카페 근처 여행지 있어?”이런 검색을 문자열 매칭으로 처리하기는 사실상 불가능하다.GPT나 임베딩 모델은 이런 문장을 수백~수천 개의 숫자 벡터로..
SQL(Structured Query Language)은 데이터베이스를 정의(Define), 조작(Manipulate), 제어(Control) 하는 데 사용되는 언어입니다.크게 아래 4가지로 분류됩니다 👇📘 1. DDL (Data Definition Language) — 데이터 정의어데이터베이스의 구조(스키마) 를 정의하거나 변경할 때 사용합니다.명령어설명예시CREATE데이터베이스, 테이블, 뷰 등을 생성CREATE TABLE users (id INT, name VARCHAR(50));ALTER테이블 구조 변경 (컬럼 추가/삭제 등)ALTER TABLE users ADD email VARCHAR(100);DROP데이터베이스나 테이블 삭제DROP TABLE users;TRUNCATE테이블의 모든 데이터..
📌 개요Supabase는 Firebase처럼 실시간 기능과 인증, 데이터베이스를 제공하는 오픈소스 백엔드 플랫폼입니다.이번 글에서는 Supabase를 이용해 댓글 시스템에 필요한 테이블을 직접 생성하고, 외래 키(FK) 연결과 기본 설정을 마무리하는 과정을 소개합니다.1️⃣ Supabase 프로젝트 생성https://supabase.com 접속 후 로그인New Project 클릭아래 정보 입력:Project Name: 예) my-projectPassword: Postgres DB 접속용 비밀번호Region: 기본값 사용완료되면 자동으로 Postgres DB와 auth 시스템이 구성됨 2️⃣ 테이블 생성방법 1: UI로 만들기Supabase Dashboard → Table Editor → New Tabl..
1. ERD Cloud란?ERD Cloud는 웹 기반의 무료 ERD(Entity Relationship Diagram) 작성 도구로, 팀 협업과 클라우드 저장이 가능한 도구입니다. 별도의 설치 없이 브라우저에서 바로 DB 설계 다이어그램을 만들 수 있어 편리합니다.2. 회원가입 및 로그인https://www.erdcloud.com 접속Google, GitHub 등으로 간편 로그인 가능로그인 후 대시보드에서 새 프로젝트 생성 가능3. 새 프로젝트 생성하기New Diagram 클릭다이어그램 이름 입력용도에 따라 공개/비공개 선택 가능"Create" 클릭🎯 팁: 팀 프로젝트일 경우 'Private'으로 시작한 뒤, 협업 멤버 초대 가능4. 테이블 만들기왼쪽 메뉴에서 [Entity] 클릭 → 캔버스에 드래그또..