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

Service

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

My

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

Policy

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

© 2026 그알것 · What Still Matters

질문 목록Performance
Performance

JCF에서 초기 용량을 지정하면 어떤 이점이 있나요?

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

면접관의 질문 의도

초기 용량을 '주면 좋다' 수준의 팁으로 외웠는지가 아니라, 리사이즈·재해싱 메커니즘과 연결해서 설명할 수 있는지 가르려는 질문이다.

큐레이션 답변

학습 자료

ArrayList·HashMap 같은 가변 컬렉션은 들어 있는 원소가 내부 용량을 넘어서면, 더 큰 배열을 만들어 기존 데이터를 복사하는 리사이징을 일으킨다. HashMap은 여기에 더해 새 배열 크기에 맞춰 해시 버킷을 다시 계산하는 재해싱까지 같이 한다. 예상 크기를 알고 생성자에서 초기 용량을 지정하면 이 재할당·재해싱 횟수를 미리 줄여 CPU와 GC 부담을 안정화할 수 있다. HashMap은 load factor와 threshold(capacity × load factor)를 기준으로 리사이즈가 일어나므로, '엔트리 수 ÷ load factor'를 올림 한 값을 초기 용량으로 잡는 식으로 산정한다.

좋은 답변 구조

  1. 01기본 용량과 확장 동작을 ArrayList·HashMap 기준으로 설명한다
  2. 02초기 용량 지정이 어떤 비용(복사·재해싱·GC)을 줄이는지 짚는다
  3. 03HashMap의 load factor·threshold와 용량 산정 공식을 연결한다
  4. 04예상 크기를 알 수 있을 때와 모를 때로 나눠 적용 기준을 제시한다

자주 실수하는 포인트

안전하게 가자고 항상 최댓값으로 초기화해 메모리를 낭비한다
HashMap 리사이즈 시 재해싱 비용을 빠뜨리고 배열 복사 비용만 본다
예상 크기 근거 없이 어림짐작 숫자(예: 1000)를 그대로 박는다

실무 맥락

  • 대량 배치로 수십~수백만 건을 적재하며 GC 튀는 자리가 의심되는 코드
  • 고QPS API에서 매 요청마다 임시 컬렉션을 만들고 버리는 핫 패스
  • 메모리·heap 사용량 최적화가 운영 비용으로 직접 묻어나는 환경

본인 경험에 녹이는 힌트

초기 용량을 지정해 배치 처리 시간을 줄여 본 경험이 있다면 리사이즈 비용 사례로 연결할 수 있다

GC 로그·heap 사용량 변화를 비교해 본 적이 있다면 컬렉션 설정이 운영 지표에 어떻게 묻어나는지 말할 수 있다

데이터 분포를 보고 load factor를 다르게 잡아 본 경험이 있다면 메모리·충돌률 트레이드오프 관점으로 엮을 수 있다

커뮤니티 인기 답변

전체 0개

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

관련 꼬리 질문

Q1HashMap 초기 용량을 엔트리 수로부터 계산하는 방법은 무엇인가요
Q2load factor를 낮추면 어떤 트레이드오프가 있나요
Q3ArrayList와 LinkedList 선택 기준은 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문