본문 바로가기
728x90

자바성능3

[JAVA] Vector vs ArrayList : 현대 자바 개발자가 ArrayList를 선택하는 결정적 이유 자바 언어를 학습하거나 면접을 준비할 때 가장 고전적이면서도 중요한 질문 중 하나가 바로 "Vector와 ArrayList의 차이점"입니다. 두 클래스 모두 List 인터페이스를 구현하며, 가변 크기의 배열을 다룬다는 공통점이 있습니다. 하지만 실무 환경에서는 ArrayList가 압도적으로 많이 사용됩니다. 왜 Vector는 역사의 뒤안길로 사라지고 있으며, 현대 자바 아키텍처는 왜 ArrayList를 선호하는지 심층적으로 분석해 보겠습니다.1. 탄생의 배경: 레거시와 현대적 설계Vector는 자바 1.0부터 존재했던 유물과 같은 클래스입니다. 당시에는 멀티스레드 환경에 대한 고려가 모든 클래스에 내장되어야 한다는 철학이 있었기에 모든 메서드에 synchronized 키워드가 붙어 있었습니다. 반면, A.. 2026. 1. 18.
[JAVA] Java 컬렉션 프레임워크: 데이터 구조를 마스터하는 핵심 비법 자바(Java) 개발자에게 있어 컬렉션 프레임워크(Collection Framework)는 공기와 같은 존재입니다. 데이터를 저장하고 관리하는 일은 모든 애플리케이션의 핵심이며, 컬렉션 프레임워크는 이러한 작업을 표준화된 방식으로 수행할 수 있도록 돕는 자바의 보물창고와 같습니다. 단순히 몇 가지 클래스의 사용법을 아는 것을 넘어, 왜 이러한 프레임워크가 탄생했으며 어떤 설계 철학을 담고 있는지 이해하는 것은 개발 역량을 한 단계 끌어올리는 중요한 전환점이 될 것입니다. 이 글에서는 컬렉션 프레임워크의 근본적인 목적부터 주요 인터페이스와 클래스의 특징, 그리고 실무에서 최적의 컬렉션을 선택하는 기준까지 심층적으로 다룹니다.1. 컬렉션 프레임워크의 탄생 배경컬렉션 프레임워크가 등장하기 전, 자바 개발자들은.. 2026. 1. 17.
[JAVA] String Pool이란 무엇인가? 메모리 최적화의 핵심 원리 자바 프로그래밍을 하다 보면 가장 많이 접하게 되는 객체가 바로 String입니다. 하지만 우리가 무심코 사용하는 "Hello"라는 문자열 뒤에는 JVM(Java Virtual Machine)의 치밀한 메모리 관리 전략인 String Pool(문자열 풀)이 숨어 있습니다. 자바 성능 최적화의 첫걸음인 String Pool의 모든 것을 심도 있게 파헤쳐 보겠습니다.1. String Pool이란 무엇인가?String Pool은 자바 힙(Heap) 메모리 영역 안에 생성된 특수한 공간으로, 문자열 리터럴을 저장하고 공유하기 위한 캐시 메모리 역할을 합니다. 자바는 불변(Immutable) 객체인 String의 특성을 활용하여, 동일한 내용의 문자열이 반복해서 생성되는 것을 방지함으로써 메모리 사용량을 획기적으.. 2026. 1. 17.
728x90