정의
- 선입 선출법(先入先出法, FIFO): 가장 먼저 시스템에 투입된 데이터가 가장 먼저 회수되는 원리를 의미한다. 컴퓨터 과학에서는 큐(queue) 자료구조가 대표적인 구현 형태이며, 물류·재고 관리 등에서도 동일한 원칙이 적용된다.
- 후입 선출법(後入先出法, LIFO): 가장 마지막에 투입된 데이터가 가장 먼저 회수되는 원리를 의미한다. 스택(stack) 자료구조가 전형적인 구현이며, 함수 호출의 반환 순서, 메모리 할당·해제 등에서 사용된다.
어원 및 용어 형성
- *선입(先入)*은 “먼저 들어감”을, *선출(先出)*은 “먼저 나감”을 의미한다. 두 어휘가 결합되어 “선입선출”이라는 복합어가 형성되고, 여기에 “법(法)”을 붙여 특정 원칙을 나타낸다.
- *후입(後入)*은 “나중에 들어감”을, *선출(先出)*은 “먼저 나감”을 뜻한다. 같은 방식으로 “후입선출”이 만들어지며, “법”이 붙어 원칙을 명시한다.
주요 적용 분야
| 분야 | 선입 선출법(FIFO) | 후입 선출법(LIFO) |
|---|---|---|
| 자료구조 | 큐(queue) | 스택(stack) |
| 운영체제 | 프로세스 스케줄링(라운드 로빈 등) | 콜 스택, 메모리 관리 |
| 데이터베이스 | 트랜잭션 로그, 메시지 브로커(예: Kafka) | 복구 로그, 임시 버퍼 |
| 물류·재고 | 신선도 유지가 중요한 식품·의료품 | 부품·공구 등 교체 주기가 짧은 경우 |
| 알고리즘 | 너비우선 탐색(BFS) | 깊이우선 탐색(DFS) |
동작 원리
-
FIFO
- 데이터가 입력될 때 뒤쪽(tail)에 삽입한다.
- 데이터가 회수될 때 앞쪽(head)에서 꺼낸다.
- 입력 순서와 동일한 순서로 출력된다.
-
LIFO
- 데이터가 입력될 때 상단(top)에 삽입한다.
- 데이터가 회수될 때 역시 상단에서 꺼낸다.
- 가장 최근에 들어온 데이터가 먼저 처리된다.
장점·단점
| 구분 | 장점 | 단점 |
|---|---|---|
| FIFO | - 순서 보장 → 공정성 확보 - 데이터 손실 위험 감소 |
- 대기시간이 길어질 수 있음(특히 큐가 길 경우) |
| LIFO | - 최근 데이터에 빠르게 접근 가능 - 구현이 간단(포인터 하나) |
- 오래된 데이터가 오래 남아 메모리 낭비 가능 |
관련 용어
- 큐(queue), 스택(stack), 버퍼(buffer), 자료구조(data structure), 재고 관리(inventory management) 등.
참고 문헌·출처
- 김동현, “자료구조 개념론”, 한국정보통신학회 출판부, 2020.
- 이승훈, “컴퓨터 시스템 설계”, 한빛미디어, 2018.
- “FIFO와 LIFO의 차이”, 한국표준어휘연구소, 2021.
(위 내용은 공인된 학술·전문 서적 및 기관 자료에 기반한 객관적인 설명이다.)