스택
컴퓨팅에서 스택은 객체 모음을 저장하는 데 사용되는 데이터 구조입니다. 개별 항목은 push 연산을 사용해 스택에 추가하고 저장할 수 있습니다. pop 연산을 사용하면 객체를 가져올 수 있으며, 이 연산은 스택에서 항목을 제거합니다.
객체를 스택에 추가하면 이전에 들어온 모든 항목의 맨 위에 배치됩니다. 항목을 제거할 때는 스택의 맨 위 또는 맨 아래에서 제거할 수 있습니다. 항목을 맨 위에서 제거하는 스택을 "LIFO"(Last In, First Out) 스택이라고 합니다. LIFO 스택은 카드를 한 장씩 카드 더미 위에 올려놓은 다음 맨 위에서 카드를 뽑는 카드 더미로 생각할 수 있습니다. "FIFO"(First In, First Out) 스택에서는 항목을 맨 아래에서 제거합니다. FIFO 스택은 자판기에서 물건이 자판기에 들어온 순서대로 나오는 줄로 생각할 수 있습니다.
스택은 컴퓨터 프로그래밍에서 여러 용도로 사용됩니다. 예를 들어 LIFO 스택은 캐시에서 최근에 사용한 객체를 가져오는 데 사용할 수 있습니다. FIFO 스택은 데이터가 입력된 순서대로 가져오도록 하는 데 사용할 수 있으며, 이는 큐에서 데이터를 처리할 때 활용할 수 있습니다.
스택은 소프트웨어 프로그래머가 흔히 사용하지만, 일반적으로 프로그램을 사용할 때는 스택을 알아차리지 못합니다. 이는 스택 생성과 push 및 pop 연산이 애플리케이션이 실행되는 동안 백그라운드에서 수행되며 사용자에게 보이지 않기 때문입니다. 그러나 스택에 메모리가 부족해지면 "스택 오버플로"가 발생합니다. 프로그램이 이를 올바르게 처리하지 못하면 스택 오버플로로 인해 오류 메시지가 표시되거나 프로그램이 충돌할 수 있습니다.
NOTE: "스택"이라는 용어는 함께 작동하는 여러 네트워크 프로토콜로 구성된 프로토콜 스택을 가리킬 수도 있습니다. 각 프로토콜은 OSI 모델에 정의된 7개의 서로 다른 계층 중 하나로 분류됩니다.
지식 테스트하기