257. NAND 플래시 (NAND Flash)

핵심 인사이트 (3줄 요약)

  1. 본질: NAND 플래시는 트랜지스터 셀들을 병렬이 아닌 직렬(기차처럼 한 줄로 연결)로 배치하여 집적도를 극대화한 비휘발성 반도체 스토리지의 제왕이다.
  2. 가치: 특정 1바이트 주소를 직접 찾아가는 랜덤 읽기(XIP) 능력은 포기했지만, 반대급부로 셀당 면적을 극한으로 줄이고 원가를 폭락시켜 하드디스크(HDD)를 멸종시키고 솔리드 스테이트 드라이브(SSD) 혁명을 견인했다.
  3. 융합: 단일 층의 한계를 극복하기 위해 셀을 수직으로 100층 이상 쌓아 올리는 3D V-NAND 패키징과, 하나의 셀에 여러 비트를 구겨 넣는 TLC/QLC 컨트롤러 펌웨어(FTL) 기술이 결합되어 현재 무어의 법칙을 유일하게 초월하고 있는 분야다.

Ⅰ. 개요 및 필요성

  • 개념: NAND 플래시는 논리 회로의 NAND(Not-AND) 게이트 형태를 띠며, 수십 개의 메모리 셀(플로팅 게이트)을 하나의 비트라인(Bit Line)에 직렬로 꼬치처럼 꿰어 놓은 구조의 플래시 메모리다.

  • 필요성: 초기 NOR 플래시는 1바이트씩 주소를 지정할 수 있어 편리했지만, 모든 셀마다 개별 전선(배선)을 연결해야 하므로 칩의 70%가 전선이 차지하는 '배선 지옥'에 시달렸다. 용량을 기가바이트(GB) 단위로 늘리려면 전선을 다 뜯어내고 **"셀들끼리 서로 다닥다닥 붙여서 좁은 땅에 수십억 개를 욱여넣자"**는 극단적인 고집적 아키텍처가 절실히 필요했다.

  • 💡 비유: NOR 플래시가 모든 방(셀)의 문이 복도(전선)로 개별 연결된 최고급 호텔이라면, NAND 플래시는 기차 10호 차 맨 끝방을 가려면 1호 차부터 9호 차의 방을 차례대로 다 통과해야만 하는 불편한 꼬리칸 열차 구조입니다. 접근하긴 불편하지만, 복도를 없앤 덕분에 사람(데이터)을 엄청나게 많이 태울 수 있습니다.

  • 등장 배경: 1987년 도시바가 세계 최초로 개발했다. 당시에는 랜덤 접근이 안 되는 반쪽짜리 메모리라며 인텔의 NOR 플래시에 밀려 찬밥 신세였으나, 2000년대 초 애플의 아이팟(iPod)과 아이폰(iPhone)이 MP3와 사진을 저장할 거대한 값싼 칩을 요구하면서, 오직 '가성비와 용량'이라는 스펙 하나로 전 세계 반도체 시장을 완전히 장악해버렸다.

┌──────────────────────────────────────────────────────────────┐
│           NAND 플래시의 직렬(String) 셀 연결 구조 도식             │
├──────────────────────────────────────────────────────────────┤
...

- **📢 섹션 요약 비유**: 두루마리 휴지 중간에 적힌 글씨를 읽으려면 처음부터 돌돌 풀면서 내려가야 하는 것과 같습니다. 책처럼 150페이지를 딱 펼칠 수는 없지만, 좁은 롤 안에 어마어마한 길이의 종이를 싼값에 말아 넣을 수 있는 구조입니다.

---

## Ⅱ. 아키텍처 및 핵심 원리

### NAND 플래시의 데이터 입출력 단위 (Page vs Block)

NAND 플래시는 읽기, 쓰기, 지우기의 단위가 서로 달라서 컨트롤러 펌웨어 개발자를 미치게 만드는 주범이다.

1. **읽기 (Read) 단위 = 페이지 (Page)**: 대략 4KB ~ 16KB 단위다. 1바이트만 필요해도 무조건 한 페이지를 통째로 읽어 램에 올려야 한다.
2. **쓰기 (Program) 단위 = 페이지 (Page)**: 쓰기 역시 무조건 4KB 단위로 써야 한다.
3. **지우기 (Erase) 단위 = 블록 (Block) ⚠ 중요**: 가장 골 때리는 특성이다. NAND는 덮어쓰기가 물리적으로 불가능하다. 따라서 지워야만 새 데이터를 쓸 수 있는데, 이 지우는 단위는 페이지가 수십~수백 개 모인 **블록 단위(수십 MB)**로만 가능하다.

### 쓰기 증폭 (Write Amplification)과 GC (Garbage Collection)
A블록 안에 있는 수천 개의 페이지 중, 딱 1개의 페이지(4KB) 데이터만 수정하고 싶을 때 NAND 하드웨어가 겪는 생지옥의 과정이다.
1. A블록 전체(예: 4MB)의 멀쩡한 데이터를 램(DRAM) 버퍼로 싹 다 퍼 올려서 복사한다.
2. 그 버퍼 위에서 4KB 데이터 하나를 쓱 수정한다.
3. 낸드의 A블록 전체에 고전압을 쏴서 통째로 다 지워버린다(Erase).
4. 아까 수정한 4MB 데이터를 빈 A블록에 다시 써넣는다.
결과적으로 4KB를 수정하려다 4MB(1000배)를 쓰고 지운 꼴이 되며, 이를 **쓰기 증폭(WAF)**이라 한다. 낸드 컨트롤러는 이 낭비를 막기 위해, 빈 블록에 새 데이터를 그냥 쓰고 구 데이터는 '무효(Invalid)' 처리만 해둔 뒤, 나중에 새벽에 몰아서 쓰레기를 청소하는 가비지 컬렉션(GC)을 수행한다.

- **📢 섹션 요약 비유**: 타일 바닥의 금 간 타일 1장(페이지)을 교체하려고 보니 타일들이 묶음으로 시멘트가 발라져 있어서, 방 전체(블록) 타일을 다 부숴서 뜯어낸 다음 다시 방 전체 타일을 새로 까는 엄청난 공사를 치러야 하는 숙명입니다.

---

## Ⅲ. 비교 및 연결

### NAND vs NOR 아키텍처 결정적 비교

| 비교 관점 | NAND 플래시 (직렬 연결) | NOR 플래시 (병렬 연결) |
|:---|:---|:---|
| **논리 구조** | NAND (모든 셀이 1이어야 전류 흐름) | NOR (하나라도 1이면 전류 통과) |
| **Random 접근** | **불가능** (페이지 단위의 블록 I/O만 가능) | **가능** (램처럼 1바이트씩 접근 가능) |
| **XIP 지원 여부**| **불가** (OS가 반드시 램으로 복사 후 실행) | **가능** (CPU가 칩에서 직접 코드 실행 가능) |
| **읽기 속도** | 비교적 느림 (시퀀셜 읽기는 빠름) | 압도적으로 빠름 (지연 거의 없음) |
| **쓰기/지우기 속도**| 상대적으로 **매우 빠름** | 셀 하나하나 처리하느라 매우 느림 |
| **집적도/가격** | 집적도 극강, 1GB당 가격이 껌값 (SSD의 심장) | 집적도 낮음, 1MB당 가격 비쌈 (BIOS 펌웨어용) |

### 3D V-NAND (수직 적층 기술)의 돌파구
과거 NAND 플래시는 평면(2D)에 미세 공정으로 셀을 10나노 단위로 빽빽하게 구겨 넣었다. 하지만 셀과 셀이 너무 가까워지자, 옆 셀의 전자가 내 방으로 새어 들어와 데이터를 망가뜨리는 전자기 간섭 현상 때문에 무어의 법칙이 박살 났다.
이를 해결하기 위해 삼성전자는 2013년 발상의 대전환을 이루었다. 아파트를 짓듯 셀을 평면이 아니라 **위로(3D) 100단, 200단씩 수직으로 쌓아 올려버린 것(V-NAND)**이다. 위로 쌓으니 땅이 넓어져 셀 간격을 다시 넉넉하게 벌릴 수 있었고, 간섭이 사라져 수명과 용량이 동시에 폭증하는 기적이 일어났다.

- **📢 섹션 요약 비유**: NOR가 집집마다 개인 도로가 깔린 비싼 '고급 전원주택 단지'라면, NAND는 좁은 복도를 수십 세대가 공유하며 위로 수백 층을 쌓아 올린 가성비 극강의 '초고층 아파트(3D 낸드)'입니다.

---

## Ⅳ. 실무 적용 및 기술사 판단

### 실무 시나리오

1. **SSD 벤치마크 속도 하락 (더티 상태)**
   새로 산 SSD는 초당 3,000MB/s가 나왔는데, 1년 뒤 디스크 용량을 90% 이상 채우고 벤치마크를 돌리니 속도가 하드디스크급(100MB/s)으로 폭락함. 가비지 컬렉션(GC) 병목이다. 디스크가 텅 비었을 때는 새 블록에 쭉쭉 쓰기만 하면 되므로 빛의 속도가 나온다(Clean State). 하지만 용량이 꽉 차면 SSD 컨트롤러는 무효 데이터가 섞인 블록을 찾아 지우기를 한 뒤에야 새로운 데이터를 쓸 수 있다(Dirty State). 실무자는 성능 하락 방지를 위해 SSD 용량의 10~20%를 강제로 비워두는 **오버 프로비저닝(Over-Provisioning)** 영역을 세팅해야 한다.

2. **AWS 클라우드의 데이터 손실 방어 (수명 종료 대응)**
   클라우드 인스턴스에 붙여둔 SSD에서 갑자기 I/O 에러가 발생하며 쓰기(Write) 작업이 모조리 튕겨 나가는 장애 발생. NAND 플래시 셀의 P/E Cycle(쓰기/지우기 수명)이 다 타버린 것이다. 고급 엔터프라이즈 SSD 펌웨어는 자신의 셀 수명이 다했다고 판단하면 데이터를 잃기 전에 시스템을 강제로 **'읽기 전용' 모드로 잠가버리는 보호 기제**를 발동시킨다. 아키텍트는 SMART 데이터(마모도 지표)를 모니터링하다 수명이 10% 미만으로 남으면 즉시 디스크를 교체해야 한다.

3. **모바일/웹 파일 시스템 설계 (F2FS의 필요성)**
   리눅스 커널에서 플래시 메모리(eMMC) 위에 구형 Ext4 파일 시스템을 얹었더니, 스마트폰이 버벅대고 배터리가 녹아내림. Ext4는 헤드가 돌아가는 구형 HDD를 위해 최적화된 파일 시스템이라, 무작위 공간에 덮어쓰기를 미친 듯이 날린다. 이는 덮어쓰기가 불가능한 NAND에서 최악의 '쓰기 증폭'과 마모를 일으킨다. 이를 막기 위해 데이터를 제자리에 덮어쓰지 않고 항상 빈 공간을 찾아 일렬로 죽 이어서 써버리는 낸드 친화적 파일 시스템인 **F2FS**로 포맷을 갈아엎어야 한다.

### 안티패턴
- **NAND 플래시에 스왑(Swap) 파티션 무분별한 설정**: 메모리(RAM) 용량이 부족하다고 OS의 가상 메모리 스왑 영역을 값싼 TLC/QLC NAND 기반 SSD에 대량으로 할당하는 패턴. RAM처럼 1나노초마다 무작위로 쓰고 지우는 스래싱이 발생하면, 1,000회 쓰기 수명을 가진 TLC 낸드는 불과 몇 주 만에 셀이 모두 타버려 물리적으로 사망한다.

- **📢 섹션 요약 비유**: NAND 스토리지에 옛날 HDD 쓰듯 마구잡이로 낙서(Random Write)를 하는 것은, 고급 만년필로 까끌까끌한 사포 위에 글씨를 쓰는 것과 같습니다. 파일 시스템(F2FS)이라는 부드러운 노트를 깔아주지 않으면 펜촉(수명)이 순식간에 다 망가집니다.

---

## Ⅴ. 기대효과 및 결론

### 기술 진화와 미래 전망
- **셀당 비트 집적의 마술 (SLC -> MLC -> TLC -> QLC)**: 한 방(셀)에 전자 양을 16단계로 미세하게 조절하여 4비트를 우겨넣는 QLC 기술이 대중화되며, HDD보다 싼 가격에 테라바이트급 SSD를 사는 시대가 왔다. 미래에는 한 셀에 5비트를 넣는 PLC까지 연구 중이다.
- **NAND 컨트롤러의 딥러닝 융합**: 낸드 칩 자체는 멍청한 플로팅 게이트 덩어리일 뿐이다. 이를 똑똑한 하드디스크처럼 쓰게 해주는 SSD 컨트롤러에 최근 AI와 머신러닝 프로세서를 탑재하여, 유저의 읽기/쓰기 패턴을 예측하고 가비지 컬렉션을 미리 돌려놓는 스마트 스토리지 칩으로 진화하고 있다.

### 결론
NAND 플래시는 컴퓨터 공학 역사상 가장 기형적이면서도 가장 성공적인 하드웨어다. 1바이트씩 접근할 수 없고, 지우는 단위가 거대하며, 쓰다 보면 죽는다는 최악의 결함 덩어리였다. 그러나 '압도적인 원가 절감'을 위해 엔지니어들은 수백만 줄의 펌웨어(FTL) 코드를 짜서 이 모든 결함을 소프트웨어적으로 완벽하게 가려냈다. 스마트폰이라는 혁명이 당신의 주머니 속에 들어갈 수 있었던 것은 순전히 이 칩 덕분이다.

- **📢 섹션 요약 비유**: NAND 플래시는 성격은 괴팍하고 말귀도 못 알아듣지만 힘(용량) 하나는 천하장사인 일꾼입니다. 이 일꾼에게 일을 시키기 위해 세계 최고의 통역사(SSD 컨트롤러)를 고용하여, 주인이 지시하는 복잡한 명령을 일꾼이 좋아하는 단순 노가다로 번역해 주는 위대한 분업 시스템입니다.

---

### 📌 관련 개념 맵

| 개념 명칭 | 관계 및 시너지 설명 |
|:---|:---|
| **NOR 플래시** | NAND와 반대로 병렬 구조를 가져 랜덤 접근이 가능하나 용량이 작아 BIOS/펌웨어 용도로 쓰이는 형제 반도체. |
| **플로팅 게이트** | 고전압 터널링 효과로 전자를 가두어 전원이 꺼져도 0과 1을 유지하는 NAND 셀의 핵심 물리 저장소. |
| **FTL** | 덮어쓰기가 안 되는 NAND의 기형적 특성을 OS로부터 숨기고, HDD처럼 쓸 수 있게 가짜 주소를 매핑해주는 펌웨어. |
| **쓰기 증폭** | 1바이트를 수정하려다 블록 전체를 지우고 쓰는 물리적 구조 때문에 발생하는 내부 쓰기량 뻥튀기 현상. |
| **3D V-NAND** | 평면적 미세 공정의 한계를 타파하기 위해 반도체 셀을 수십~수백 층 수직으로 쌓아 올린 3차원 적층 혁명. |

---

### 👶 어린이를 위한 3줄 비유 설명
1. 낸드(NAND) 플래시는 어마어마하게 길게 이어진 '기차' 모양의 메모리예요.
2. 기차 칸에 물건(데이터)을 아주 꽉꽉 눌러 담을 수 있어서 엄청나게 큰 파일을 싼값에 저장할 수 있어요.
3. 하지만 치명적인 단점이 있는데, 기차 10호 차에 있는 물건을 콕 집어서 바꿀 수 없고, 물건을 바꾸려면 기차 한 칸을 몽땅 밖으로 빼서 싹 지운 다음에 다시 짐을 실어야 하는 피곤한 규칙이 있답니다!