그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록General
General

연결 리스트에 대해서 설명해주세요.

실무4/5
설계4/5
인간3/5
기초4/5

면접관의 질문 의도

구조를 그릴 줄 아는지보다, 탐색·삽입·삭제 각각이 어떤 단계로 일어나는지 머릿속에 그리고 상황에 맞춰 비용을 가를 수 있는지를 본다.

큐레이션 답변

학습 자료

연결 리스트는 각 노드가 데이터와 다음 노드 포인터를 들고 줄지어 있는 선형 구조다. 중간에 노드를 끼우거나 빼는 일은 앞뒤 포인터만 바꾸면 되므로 "노드 위치를 이미 알고 있다"는 전제에선 O(1)에 가깝지만, 인덱스로 N번째를 찾으려면 머리부터 한 칸씩 따라가야 해서 O(n)이다. 배열과 달리 메모리를 연속으로 잡지 않아 캐시 라인 안에 다음 노드가 거의 들어오지 않고, 그래서 순회 성능은 배열보다 눈에 띄게 떨어진다. "삽입/삭제 비용"이 진짜 병목이고 포인터 조작이 핵심일 때만 배열보다 유리하다.

좋은 답변 구조

  1. 01노드와 포인터로 구성된 메모리 배치를 먼저 그린다
  2. 02탐색·삽입·삭제 각 연산이 실제로 어떤 단계로 일어나는지 짚는다
  3. 03배열과 비교해 캐시 지역성 차이가 왜 생기는지 설명한다
  4. 04어떤 워크로드에서 연결 리스트가 실제 이득을 주는지로 마무리한다

자주 실수하는 포인트

"삽입/삭제가 O(1)"이라고 단정하고 노드를 찾는 O(n) 비용을 빼먹는다
메모리는 안 연속인데 배열처럼 인덱스 접근이 빠를 거라 착각한다
캐시 미스 때문에 실측 성능이 복잡도 표와 다르게 나오는 점을 모른다
단일·이중·환형 연결 리스트의 쓰임 차이를 구분하지 못한다

실무 맥락

  • 큐·스택·LRU 캐시처럼 양 끝 또는 중간 노드 제거가 핵심인 자료구조의 내부 구현
  • 외부 라이브러리 없이 가벼운 이벤트 큐를 직접 짜야 하는 임베디드/저레벨 환경
  • 그래프·트리의 인접 리스트 표현이나 해시 테이블 체이닝 같은 다른 자료구조의 부품으로 쓰이는 자리

본인 경험에 녹이는 힌트

LinkedList로 짠 컬렉션을 ArrayList로 바꿔 성능이 개선됐던 경험이 있다면 캐시 지역성 이야기로 풀 수 있다

LRU 캐시나 큐를 직접 구현해 본 적이 있다면 노드 포인터 조작이 왜 필요했는지 자연스럽게 이어 갈 수 있다

포인터/참조 실수로 사이클이나 메모리 누수를 겪은 경험이 있다면 자료구조 선택의 위험 비용으로 묶을 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1이중 연결 리스트가 단일 연결 리스트보다 더 나은 상황은 언제인가요
Q2캐시 친화적이지 않은 이유를 메모리 관점에서 더 설명할 수 있나요
Q3자바의 LinkedList를 실무에서 거의 쓰지 않는 이유는 무엇인가요
Q4환형 연결 리스트가 필요한 대표 시나리오는 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문