Java의 Wrapper 클래스 – 간단한 가이드

발행: (2026년 4월 22일 PM 02:01 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

래퍼 클래스란?

래퍼 클래스는 원시 데이터 타입을 객체로 변환하여, 원시 값을 객체 안에 “감싸는” 역할을 합니다.

PrimitiveWrapper
intInteger
charCharacter
doubleDouble
booleanBoolean

왜 래퍼 클래스가 필요할까?

컬렉션은 객체만 다룰 수 있다

ArrayList와 같은 Java 컬렉션은 원시 타입을 저장할 수 없습니다.

// 허용되지 않음
ArrayList list;

// 허용됨
ArrayList list;

유틸리티 메서드

래퍼 클래스는 유용한 변환 메서드를 제공합니다.

int i = Integer.parseInt("123");        // String → int
Double d = Double.valueOf("10.5");     // String → Double

객체‑지향 기능

API, 프레임워크, 그리고 제네릭은 종종 원시 타입보다 객체를 요구합니다. 래퍼 클래스를 사용하면 객체‑지향 패러다임 안에서 작업할 수 있습니다.

자동 박싱(Autoboxing)과 언박싱(Unboxing)

Java는 원시 타입과 해당 래퍼 객체 사이를 자동으로 변환합니다.

  • 자동 박싱(Autoboxing) – 원시 → 객체
  • 언박싱(Unboxing) – 객체 → 원시

이 자동 변환 덕분에 코드를 더 깔끔하게 작성할 수 있고, 보일러플레이트 코드가 줄어듭니다.

래퍼 객체는 어디에 저장될까?

  • 원시 값 – 스택에 저장됩니다.
  • 래퍼 객체 – 힙에 저장됩니다.
  • 레퍼런스 변수 – 스택에 저장되며 힙에 있는 객체를 가리킵니다.
Integer a = 10; // 'a' 레퍼런스는 스택에, Integer 객체는 힙에 저장됩니다.

Integer 캐싱

Java는 ‑128부터 127 사이의 값을 갖는 Integer 객체를 캐시합니다.

Integer x = 100;
Integer y = 100;
System.out.println(x == y); // true (같은 캐시된 객체)

이 범위를 벗어나는 값은 별개의 객체를 생성합니다.

Integer x = 200;
Integer y = 200;
System.out.println(x == y); // false (다른 객체)

마무리 생각

래퍼 클래스는 Java에서 필수적입니다. 원시 타입은 속도를 제공하지만, 래퍼는 컬렉션, API, 객체 기반 연산에 필요한 유연성을 제공합니다. 자동 박싱, 언박싱 및 메모리 동작을 이해하는 것은 특히 면접 준비에 있어 중요한 역량입니다.

0 조회
Back to Blog

관련 글

더 보기 »

주간 Dev Log 2026-W02

이번 주 - iOS SwiftUI - SwiftUI 튜토리얼을 진행하고 Section 4인 badges를 위한 algorithm을 완료함 - badges algorithm을 검증하기 위해 test file을 구축함