본문 바로가기

개발/App Developer

스텍(Stack), PUSH, POP

스택 (Stack) : 동적이고 순차적인 자료의 저장구조를 말하는 정보 기술 용어

스텍은 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조로 되어있다.

자료를 넣는 것을 '밀어 넣는다' 하여 푸시(push)라고 하고,

반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 한다.

이 때 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다.

이처럼 나중에 넣은 값이 먼저 나오는 것을 후입선출 (Last In First Out)구조로

되어 LIFO라고도 부른다.

 

컴퓨터에서 포인터라고 하는 자료의 위치 표시자와 넣고 빼는 명령어를 사용해서

스택을 이용한다.

주로 함수를 호출할 때 인수의 전달 등에 이용된다.

LIFO 의 특징을 이용하여 역폴란드 표기법을 이용한 프로그래밍 언어인 포스(Forth) 등에서도 이용된다.

 

 

1. TCP/IP 가 '스택'이라고언급되는 경우가 종종있다.

이것은 데이터 교환의 클라이언트와 서버 양단에서 모든 데이터가 지나가는 계층들인 TCP, IP

그리고 기타 다른 것들을 지칭하는 것이다.

TCP/IP의 것들과 비슷한 계층의 명확한 그림이, 네트웍 통신에 관련된 참조모델인 OSI의 정의에서 제공되고 있다.

스택이라는 용어는 때로 TCP/IP 의 계층들을 ㅣ원하는 유틸리티를 포함하기 위해 사용된다.

넷스케이프에서 발간한 핸드북에 보면

"인터넷에 성공적으로 접속하기 위해서는 넷스케이프와 TCP/IP 소프트웨어로 구성된 TCP/IP 스텍, 소켓 소프트웨어

그리고 하드웨어 드라이버 소프트웨어 등과 같은 응용 소프트웨어가 필요하다. 셰어웨어를 포함하여,

몇몇 유명한 윈도우 용 TCP/IP 스택들이 사용 가능하다"라는 구절이 있다.

 

2. 프로그래밍에서, 스택이란 처리해야할 요청을 저장하는 데이터 저장소 또는 버퍼이다.

IBM의 컴퓨터 사전에 보면 스택은 항상 푸시다운 목록이라고 나와있는데,

이는 새로운 요청이 들어오면 그것은 이전의 것을 밑으로 눌러 내린다는 의미이다.

스택을 바라다 보는 또다른 방법은, 처리할 항목을 항상 스택의 최상위로부터 가져오는

프로그램이라고 이해하는 것이다.

(이것은 먼저 도착한 것을 먼저 처리하는 "FIFO"와는 아주 다른 방법이다.)


'개발 > App Developer' 카테고리의 다른 글

10.07.08 GDB 간단 명령어 및 breakpoint 사용법  (0) 2010.08.31
010.07.09 개발노트  (0) 2010.08.31
계산기 형변환에 관해서 읽어볼것  (0) 2010.08.31
UITextView keyBoard  (0) 2010.08.31
터치 관련  (0) 2010.08.31