📌 면접 답변
- Stack은 후입선출(LIFO, Last In First Out)의 개념을 가진 선형 자료구조
- 스택에사 삭제는 가장 최상단에서만 이뤄짐
- 활용 사례
- 스택 메모리
- 브라우저 뒤로가기
- 함수 호출 및 콜 스택 (Call Stack)
- 인터럽트 처리
자바에서 스택 사용
├── java.util.Vector<E>
├── java.util.Stack<E> <-- (Vector 상속)
- 자바에서 Stack이라는 클래스를 사용 할 수 있음
java.util.Collection
├── java.util.Queue
├── java.util.Deque (인터페이스)
├── LinkedList (클래스, Deque 구현체)
├── ArrayDeque (클래스, Deque 구현체)
- 하지만 자바에서는 Deque 인터페이스 구현체를 사용하는 것이 권장
- Vector를 상속받는 Stack은 인덱스를 통한 접근, 삽입 , 제거 등이 실질적으로 가능하여, Stack에 특징에 맞지 않아서 개발자가 실수할 여지가 있음
- Deque에서 개발자는 선택해서 LIFO 원칙 유지 가능 ( 원칙 강제하려면 push, pop만 사용)
- 반면에 stack은 get, remove 같은 메소드만 있어 LIFO 원칙을 깰 수도 있음
- 또한 Vetor 메서드들은 동기화에 이점이 있지만, 단일 스레드 환경에서는 불필요한 동기화 작업으로 성능 측면에서 좋지 않음
- 반면 Deque는 동기화 작업을 갖는 구현체과 그렇지 않는 구현체 선택 가능
→ 결론은 Deque 인터페이스 쓰자... !
+ Deque 란 ?
Deque라 했을때, queue의 반대인가? 라고 생각했었다.
하지만 Deque의 의미는 Double-Ended Queue로 양쪽 끝에서 삽입과 삭제가 가능하다는 것을 의미한다.
📌 내 답변
Stack은 가장 먼저 들어온게 가장 늦게 나가고, 가장 최근에 들어온 것이 가장 빠르게 나가게 하는 구조이다.
이와 대립되는 자료구조인 큐도 있다. 큐는 가장 먼저 들어온게 가장 빠르게 나가고, 가장 최근에 들어온 것이 가장 늦게 나가는 형식의 지료 구조이다.
self 피드백
- 활용 사례를 말하지 못함
- 스택을 묻는데 큐까지 말함
[출처 및 참고 자료]
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] REST란 무엇인가 ? (0) | 2025.03.24 |
---|---|
[1분 면접] 캐싱 전략에 대해서 설명해주세요. (0) | 2025.03.17 |
[1분 면접] 동시성과 병렬성의 차이 (0) | 2025.03.14 |
[1분 면접] 로드 밸런싱이란 ? (0) | 2025.03.13 |
[1분 면접] 다중 서버 환경에서 세션 기반 인증 방식 사용의 문제점 (0) | 2025.03.12 |