컴퓨팅에서 "저널(Journal)"은 파일 시스템이나 데이터베이스에서 데이터 무결성과 복구를 보장하기 위한 로그(log) 기록 구조를 의미합니다. 시스템 장애(예: 전원 장애, 시스템 크래시 등)가 발생하더라도 작업의 일관성과 복원 가능성을 확보하기 위해 사용됩니다.
**저널(Journal)**은 시스템이 변경 작업을 실행하기 전에 변경 내용을 순차적으로 기록(log) 해 두는 공간입니다.
→ 시스템에 문제가 발생했을 때, 이 기록을 바탕으로 작업을 되돌리거나 복구할 수 있습니다.
파일 시스템의 메타데이터 또는 데이터 자체의 변경 사항을 먼저 저널에 기록한 후, 실제 파일 시스템에 반영합니다.
대표적인 저널링 파일 시스템:
📌 작동 방식 (ext4 예시):
트랜잭션 로그를 통해 변경 내용을 기록하고, 시스템 장애 발생 시 commit된 트랜잭션은 redo, 미완료는 undo하는 방식.
Write-Ahead Logging (WAL) 방식 사용
📌 예: PostgreSQL WAL 구조
기능 | 설명 |
---|---|
무결성 보장 | 트랜잭션의 일관성과 원자성 유지 (ACID 중 A, C) |
빠른 복구 | 장애 후 저널 재적용으로 빠르게 복구 가능 |
순차적 기록 | 로그는 순차적으로 쓰여 디스크 성능을 최대화 |
Redo / Undo 지원 | 로그 기반으로 트랜잭션 롤백 또는 재적용 가능 |
모드 | 설명 | 예시 |
---|---|---|
Writeback | 메타데이터만 저널링, 데이터는 비동기 처리 | 빠르지만 위험 |
Ordered | 메타데이터 + 순서 보장된 데이터 기록 | ext3 기본 모드 |
Journal | 메타데이터 + 데이터 전체를 저널링 | 안정성 최고, 속도 저하 |
항목 | 설명 |
---|---|
저널(Journal) | 변경 사항을 사전 기록하는 구조적 로그 |
체크포인트(Checkpoint) | 메모리 상태를 디스크에 주기적으로 저장 |
트랜잭션 로그 | 데이터베이스의 변경 트랜잭션 기록 (WAL 등) |
→ 이 세 가지는 함께 사용되어 데이터 일관성과 복원력을 확보합니다.
항목 | 설명 |
---|---|
정의 | 데이터 변경을 안전하게 적용하기 전 로그로 기록하는 구조 |
목적 | 시스템 장애 시 데이터 복구, 무결성 보장 |
사용 분야 | 파일 시스템(ext4, NTFS), 데이터베이스(PostgreSQL, Oracle) |
관련 개념 | WAL, ACID, 트랜잭션, 체크포인트 |
주요 방식 | Redo log, Undo log, Write-Ahead Logging |