스택은 말 그대로 쌓는 것이다. 마냥 쌓기만 하진 않고 당연히 써야겠지 그래서 위에서부터 빼서 쓰는 것이다. 즉, LIFO(List In First Out) 방식으로 작동하는 자료구조이다. 이게 만약 사람 일이었다면 불공평해 보일 수도 있다. 하지만 이건 자료 구조이고 대량의 데이터를 효율적으로 다루기 위한 방식 중에 하나이기 때문에 이런 방식도 필요하다. 가장 쉽게 느끼는 부분은 웹 페이지에 뒤로가기이다. 이전 데이터가 지금 데이터 바로 전에 있어서 빠르가 가져올 수 있으니까 이런 식으로 사용이 된다. 역시 이것도 단점이 있다. 딱 봐도 맨 밑에는 박혀 있는 건 탐색하는데 시간이 오래 걸릴 것 같다. 만약에 데이터의 사용 빈도가 정해져 있고 자주 사용하는 데이터를 특히나 더 빠르게 사용하고 싶다면 좋을 것 같단 생각이 들었다. 물건을 정리해서 쌓아둘 때 최근에 넣은 물건이면 위에서 빠르게 꺼낼 수 있지만 안 쓰던 것들은 아래에 위치해 위에서부터 치워야하니 힘들고 그렇게 사용하고 다시 잘 사용하지 않는다면 결국 또 우린 시간이 지나 자주 쓰는 물건들만 위에 있게 된다. 이런 거 보면 스택이란 구조가 생긴게 당연할 수도 있겠다. 결국 데이터도 사람이 필요에 의해서 다루는건데 사용하다 보면 비슷한 부분이 많을 것이다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
| 23. 06.22 자료구조 5. 해시 테이블(Hash table) (0) | 2023.06.22 |
|---|---|
| 23. 06.21 자료구조 4. 큐(Queue) (0) | 2023.06.21 |
| 23. 06.20 자료구조 2. 연결 리스트(Linked List) (0) | 2023.06.20 |
| 23. 06. 20 자료구조 1. 배열(Array) (0) | 2023.06.20 |
| 23. 06.19 이터러블과 이터레이터 (0) | 2023.06.19 |