2026/02/17 2

Java String 완전 정복: 불변성, StringBuilder, 비교 함정, Text Block까지

Java 17 기준으로 String의 불변성 이유와 성능 포인트, ==/equals 비교 함정, StringBuilder 사용 기준, Text Block 활용법을 실무 관점에서 정리합니다. 로그 한 줄 만들려고 문자열을 +로 계속 붙였는데, 트래픽이 오르자 CPU가 튀고 GC가 바빠지는 경험을 하실 때가 있습니다. 또 어떤 환경에서는 "a" == new String("a")가 false라서 디버깅이 길어지기도 해요. Java의 String은 “그냥 문자”가 아니라, 성능과 버그를 동시에 좌우하는 핵심 타입입니다.핵심 개념 (Java String 불변성이 중요한 이유)String은 왜 불변(Immutable)일까요?Java의 String은 한 번 만들어지면 내용이 바뀌지 않습니다. 이 설계 덕분에 다음 이..

JAVA 2026.02.17

Java 예외 처리 제대로 하기: Checked vs Unchecked부터 실무 전략까지

Java 17 기준으로 Checked/Unchecked 예외 선택 기준, try-with-resources, 커스텀 예외 설계와 실무 예외 처리 전략을 한 번에 정리합니다. 운영 장애를 분석하다 보면 “로그에는 예외가 있는데 사용자는 그냥 실패했다는 메시지만 본다” 같은 상황을 자주 마주하게 됩니다. 혹은 반대로, 메서드마다 throws Exception이 붙어서 호출부가 도미노처럼 지저분해진 경험도 있으실 거예요. Java 예외 처리는 “잡기만 하면 끝”이 아니라, 설계와 전략이 함께 가야 유지보수가 쉬워집니다.핵심 개념 (Java 예외 처리 전략과 선택 기준)예외 처리는 크게 “어떤 예외를 던질지(Checked vs Unchecked)”와 “어디서 잡을지(경계에서 처리)”를 결정하는 문제입니다. 이 ..

JAVA 2026.02.17