Stack, Stacking   스택, 스태킹

(2024-01-21)

LIFO, Last In First Out, 후입선출, FILO, First In Last Out, 선입후출


1. 스택

  ㅇ 일반적으로,  차곡차곡 쌓아둔 모양/형태를 의미

  ㅇ 스택에 넣고빼는 순서  :  제일 나중에 넣은 것을 제일 먼저 뺄 수 있게 함
     - 일명, LIFO (Last In First Out, 후입선출, 後入先出) 또는 FILO (선입후출) 이라고도 함

 
2. [자료구조]  스택 (Stack)컴퓨터 자료구조선형 리스트에서,
     - 자료가 리스트에 첨가되는 순서와 반대로 처리되는,
     - 후입선출(LIFO) 리스트를 말함

  ㅇ 특징
     - 구현  :  주로, 리스트로써 구현됨
     - 형태  :  입구,출구가 동일
     - 순서  :  후입선출 (LIFO, Last In First Out, 後入先出)
        . 입력순서와 출력순서가 역순으로 이루어짐
     - 접근  :  리스트의 한쪽에서 만 일어남
        . 리스트의 한쪽(top)에서 만 자료의 추가(push) 및 삭제(pop)가 일어남
     - 위치(크기)  :  top 변수 이용
        . 추가시 증가, 삭제시 감소
     - 시간 복잡도  :  O(1)
        . 방금전 저장 요소에 대해, 한번에 접근하므로 (상수 시간)
     - 구현 용이도  :  쉬움
        . 구현이 쉽고 실행이 빠르며, 리스트 보다는 비교적 효율적자료 구조 

  ㅇ 주요 용도
     * (주로, 왔던 길을 되돌아갈 때 유용)
     - 수식/표현식 평가
     - 함수 호출시 복귀 저장
     - 재귀 호출시 복귀 저장
     - 문자열의 역순 출력
     - 프로그램 내 괄호 열기 및 닫기  등
  
  ㅇ 스택 내 주요 동작(연산)
     - push(item)  : (추가,집어넣기 : 입력)
        . 항상, 정의된 스택 크기를 확인하고, 입력해야 함 (stack overflow)
        . 다만, 실제 구현이 대부분 동적 배열 방식이므로, 굳이 고려치 않아도 됨
     - pop() : (삭제,빼냄 : 출력)
        . 항상, 삭제 전 남아있는 자료 유무를 확인해야 함 (stack underflow)
     - peek() or top() : (삭제 없이, top 내용 만 반환)
     - clear() : (강제 초기화 또는 비어있는지 여부 확인)
     - empty() or isEmptyStack() : (비어있는지 여부 확인)
        . 통상, 스택의 top 위치에 있는 내용물 반환시, 에러 유무로 확인
     - full() or isFullStack() : (가득 찼는지 여부 확인)
     - size() : (크기 확인)

  ㅇ 예외처리
     - stack underflow : 빈 스택에서 자료를 추출하려고 할 때
        . 즉, 텅빈 스택에서 pop() 또는 top()을 요청할 때
     - stack overflow : 꽉 찬 스택에서 자료를 추가 삽입하려고 할 때
        . 즉, 꽉찬 스택에서 push()를 요청할 때

  ㅇ 구현방식
     - 주로, `정적 배열`, `동적 배열`에 의한 구현 또는 `연결 리스트`에 의한 구현 가능

  ㅇ Python 例)  (by 파이썬 리스트)
     - stack = []; stack.append(1); stack.append(2); stack.append(3); stack.pop() => [1,2]


3. [네트워킹 장비]  장비 연결상의 스택킹 (Stacking)

  ㅇ 일반적으로, 허브 또는 스위치 등의 장치에서는,
     - 기본 최소 포트를 초과하는 경우에 2대 이상의 장치가 필요하며,
     - 이때, 2 이상의 장치를 하나로 관리하기 위해 차곡차곡 쌓아 연결하는 기능을 말함
     - 이 경우에, 하나의 IP 주소에 의해 다수의 장치 또는 시스템감시가 가능

  ㅇ 통상적인 스태킹을 위한 장치 구성 방식  :  Master/Slave 구성
     - 스태킹되는 포트가 별도로 필요하고,
     - 최대 적재 규격까지 스태킹이 가능


4. [프로토콜]  프로토콜 스택 

  ※ ☞ 계층구조, 망 계층 구조, OSI 7계층모델, TCP/IP 계층모델  참조
     - 층 별로 정의되어, 독립적인 취급이 가능토록 한, 층별 구조를 말함

[선형 자료구조 (리스트 등)]1. 스택   2. 데크  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)