Stack(스택)은 후입선출이라는 개념을 가진 선형 자료구조이다. 스택 자료구조에서 삭제(pop)는 가장 최상단(top)에서만 이루어진다.비어있는 스택에서 값을 추출하려고 시도하는 경우를 스택 언더플로우라고 하며, 스택이 넘치는 경우를 스택 오버플로우라고 한다.사용 사례는 스택 메모리, 브라우저 뒤로가기, 언두 기능, 수식 괄호 검사가 있다. 자바에서는 Stack이라는 클래스가 있다. 하지만 Deque 인터페이스 구현체를 사용하는게 권장된다.Stack 클래스는 내부적으로 Vector를 상속받기 때문에 Stack에서 인덱스를 통한 접근, 삽입, 제거가 가능하다. 그래서 후입선출 특징에 맞지 않게 실수할 수 있기 때문이다. Vector메서드들은 sync로 구현되어있어 멀티 스레드 환경에서는 동기화의 이점이 ..