자바스크립트
를 공부하고 배열
, 객체
를 사용할 때에는 자료구조
에 대해서는 생각해보지 않았던 것 같습니다. 그냥 있으니깐, 다른사람들이 사용하니깐, 책에 이렇게 사용하라고 하니깐, 이러한 이유로 이러한 개념이 왜 생겨나고 왜 사용되고 있는지에 대해서는 깊이 있게 생각해 보지 않았던 것 같습니다. 하지만 리액트
를 공부하면서 제 스스로 벽을 느끼면서 다시 자바스크립트
를 깊게 공부하는 것 처럼, 결국에는 그 근원으로 접근하게 되는 것 같습니다.스택(Stack)
은 자료구조의 한 종류로, 데이터 처리 방식입니다. LIFO
로도 많이들 알고 있는데, Last In First Out
즉, 나중에 들어온 것이, 가장 먼져 나간다.
우리가 편의점에 들어가서 과자를 구매한다고 했을 때, 우리 앞에 보이는 과자는 알바생이 제일 마지막에 진열한 상품일거에요. 그리고 안쪽 끝에 있는 과자는 맨 처음으로 진열한 과자이구요. 근데, 고객은 가장 늦게 진열한 과자부터 고르게 되죠.
스택(Stack)
을 구현하기 위해서는 배열
과 리스트
2가지의 방법이 있습니다. 배열
과 리스트
의 차이점을 먼져 알아야 좀 더 쉽게 이해할 수 있을 것 같네요.
배열
과 리스트
는 정확히 말을 하면 정적인 배열
, 동적인 배열
이라고 해요. 무슨말일까요?
데이터의 양
에 따라서 공간의 크기가 줄어들었다 늘어났다를 자유롭게 하는 것이 동적인 배열
을 의미합니다.
반면에 정적인 배열
은 미리 들어올 데이터의 양
을 미리 정해서 그것 만큼만 처리하겠다는 것을 의미합니다.
더 상세한 설명은 다시 한 번 다루도록 하겠습니다.
Push
: 데이터를 공간에 넣는 명령어 입니다. Pop
: 데이터를 꺼내는 명령어 입니다. 이 때, 최상단
, Last
제일 마지막에 들어온 데이터를 꺼내는 것을 의미합니다. Peak
: 제일 마지막에 들어간 데이터를 의미해요 즉, Last
데이터를 의미합니다. 자료구조
는 코딩을 하면 할 수록, 중요성을 더... 깨닫게 되는 것 같습니다.