
컴퓨터가 프로그램을 돌릴 때, 데이터를 어디에 올려두고 작업할까? 그 "작업 공간"이 바로 메모리(RAM) 다. 메모리를 알면 "내 컴퓨터가 왜 느려지지?"가 한 방에 이해됨. 핵심부터 한 줄로 정리하면 이렇다.
메모리 = 컴퓨터가 지금 작업 중인 데이터를 잠깐 올려두는 빠른 임시 작업 공간
책상이라고 생각하면 됨! 책장(저장장치 = SSD/하드디스크)에는 책이 잔뜩 꽂혀 있지만, 거기선 바로 작업을 못 한다. 필요한 책을 꺼내서 책상(메모리 = RAM) 위에 펼쳐놔야 읽고 쓸 수 있다.
책장은 느리지만 영구 보관, 책상은 빠르지만 임시. 이 차이가 메모리의 핵심 같음!
| 메모리(RAM) | 저장장치(SSD/HDD) | |
|---|---|---|
| 속도 | 엄청 빠름 | 상대적으로 느림 |
| 용량 | 작음 (보통 8~32GB) | 큼 (수백 GB~TB) |
| 영속성 | 전원 끄면 날아감 | 전원 꺼도 유지 |
| 비유 | 책상 | 책장 |
사실 메모리는 한 종류가 아니라 속도-가격 순으로 층층이 쌓여 있다.
위로 갈수록 빠르지만 비싸고 작고, 아래로 갈수록 느리지만 싸고 크다. 그래서 자주 쓰는 데이터는 위쪽에 두는 게 성능의 핵심이다.
프로그램이 돌 때 메모리는 영역이 나뉜다.
RAM이 부족하면 OS가 디스크 일부를 "임시 RAM"처럼 빌려 쓴다(스왑). 근데 디스크는 느리니까, 이게 발동하는 순간 컴퓨터가 버벅거리기 시작함.
다 쓴 메모리를 안 돌려주고 계속 점유하는 문제. 시간이 지날수록 쓸 수 있는 메모리가 줄어서, 앱이 점점 느려지다가 결국 뻗어버린다.
"컴퓨터가 왜 느려지지?"의 정답이 대부분 메모리에 있다.
그리고 Redis가 왜 그렇게 빠른가? 답이 여기 있다. Redis는 데이터를 디스크가 아니라 메모리(RAM)에 올려두고 쓰기 때문이다. 책장이 아니라 책상에서 바로 꺼내 쓰니까 빠른 거다. 대신 메모리는 비싸고 작으니까, 그래서 Redis(ElastiCache) 비용이 훅 나가는 거고 메모리 용량 관리가 중요한 것 같음!
| 구분 | 내용 |
|---|---|
| 한 줄 정의 | 작업 중 데이터를 올려두는 빠른 임시 공간 |
| 비유 | 책상 (책장 = 저장장치) |
| 핵심 특징 | 빠름 + 작음 + 전원 끄면 날아감 |
| 계층 구조 | 레지스터 → 캐시 → RAM → 디스크 |
| 느려지는 주범 | RAM 부족 → 스왑 / 메모리 누수 |
쉽게 외우면 "메모리는 책상, 디스크는 책장" — 이렇게 보면 감 잡힐 듯!
회원 정보, 게시글, 주문 내역… 서비스가 다루는 데이터는 어딘가에 저장돼야 하고, 필요할 때 빠르게 찾을 수 있어야 한다. 그걸 책임지는 게 데이터베이스(DB) 다. 핵심부터 한 줄로 정리하면 이렇다.
데이터베이스 = 데이터를 체계적으로 저장하고, 빠르게 찾아 쓸 수 있게 관리하는 시스템
도서관이라고 생각하면 됨! 책(데이터)을 그냥 바닥에 마구 쌓아두면 원하는 책을 절대 못 찾는다. 도서관은 책을 분류(스키마)하고, 색인 목록(인덱스)을 만들고, 사서(DBMS)가 "그 책 3층 A-7 칸에 있어요" 하고 빠르게 찾아준다.
데이터의 양이 많아질수록 이 "정리와 검색"의 차이가 어마어마해지는 게 핵심 같음!
관계형 DB (RDB / SQL)
비관계형 DB (NoSQL)
서비스 만들면 무조건 쓰게 된다.
여기서 메모리 글이랑 연결된다. Redis는 데이터를 메모리에 올려두는 NoSQL이라 빠른 거고, PostgreSQL 같은 RDB는 디스크에 안정적으로 저장하는 거다. 그래서 보통 "RDB에 영구 저장 + Redis로 캐싱" 조합을 많이 쓴다.
성능 얘기도 빼놓을 수 없다. 데이터가 수십만 건 쌓였는데 인덱스 없이 검색하면 처음부터 끝까지 다 뒤져서 엄청 느려진다. 적절한 곳에 인덱스를 걸어주면 도서관 색인처럼 한 방에 찾아서 빨라짐. "쿼리가 왜 느리지?"의 단골 원인이 인덱스 문제인 것 같음!
| 구분 | 내용 |
|---|---|
| 한 줄 정의 | 데이터를 체계적으로 저장·검색하는 시스템 |
| 비유 | 도서관 (분류 + 색인 + 사서) |
| 두 갈래 | 관계형(SQL) vs 비관계형(NoSQL) |
| 빠른 검색 비결 | 인덱스 |
| 데이터 안전장치 | 트랜잭션(ACID) |
쉽게 외우면 "잘 정리해서, 빠르게 찾고, 안 깨지게 지키는 데이터 창고" — 이렇게 보면 감 잡힐 듯!