Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-03-31] Wrapper 클래스와 시간 API 처리에 대한 고찰 본문

JavaStudy

[2026-03-31] Wrapper 클래스와 시간 API 처리에 대한 고찰

ki-sd 2026. 4. 17. 21:29

기본형 데이터를 객체로 다루는 기법과, 시스템 성능을 좌우하는 문자열 버퍼, 그리고 복잡한 시계열 데이터를 다루는 방법을 깊이 있게 학습했다.

 

1. Wrapper 클래스와 Auto-Boxing

  • 자바의 8가지 기본형(Primitive Type)은 객체가 아니기 때문에, 객체만을 요구하는 컬렉션(ArrayList 등)이나 제네릭에는 들어갈 수 없다. 이를 포장해서 객체로 만들어주는 Integer, Double, Boolean 등의 Wrapper 클래스를 학습했다.
  • 컴파일러가 기본형과 Wrapper 클래스 사이를 자동으로 변환해 주는 오토박싱(Auto-boxing)과 언박싱(Unboxing) 메커니즘을 확인하며 코드가 어떻게 간결해지는지 이해했다.

2. StringBuffer의 내부 버퍼 메커니즘

  • 이전 시간에 배운 String의 불변성(Immutable)으로 인한 메모리 낭비 문제를 극복하기 위해 StringBuffer와 StringBuilder를 도입했다.
  • 이들은 내부적으로 여유 있는 메모리 공간(Buffer)을 가지고 있어, 문자열을 더하거나(append) 수정할 때 새로운 객체를 만들지 않고 기존 메모리 공간 안에서 데이터를 직접 조작한다. 빈번한 문자열 조작 로직에서 성능을 수십 배 이상 끌어올릴 수 있는 핵심 최적화 기법이다.

3. 날짜와 시간 API의 제어

  • 과거의 Date나 Calendar 클래스가 가진 설계적 결함과 가변성 문제를 짚어보고, 자바 8부터 도입된 java.time 패키지(LocalDate, LocalDateTime)의 사용법을 익혔다. 시계열 데이터를 포맷팅하고 며칠 후의 날짜를 정확히 계산하는 등, 실무에서 빈번히 마주하는 복잡한 날짜 로직을 깔끔하게 해결하는 역량을 키웠다.