#Java
총 8편
실 무에서 마주한 함수형 프로그래밍 - 명령형에서 선언적으로
Java 함수형 프로그래밍을 실무에 적용하는 방법을 정리했습니다. Stream, Optional, 람다를 단순히 쓰는 것을 넘어 코드 품질을 높이는 패턴과 함정을 다룹니다.
자바 메소드 병렬 호출
Spring Batch에서 여러 메서드를 순차 실행할 때 병렬로 묶으면 얼마나 빨라질까? CompletableFuture와 ForkJoinPool을 활용한 메서드 병렬 호출 실험 기록.
자바 프로세스 힙메모리 설정 이슈
자바 프로세스가 -Xms/-Xmx 힙메모리 설정을 했는데도 OOM Killer에 의해 다운된 실제 장애 분석기. 힙 외 메모리(Metaspace, Thread Stack, JNI 등)까지 고려해야 하는 이유를 실증으로 설명합니다.
인터페이스와 추상클래스 차이
인터페이스와 추상클래스의 차이를 명확하게 구분하는 방법. '왜 쓰이는가'를 중심으 로 두 개념을 실무 관점에서 명확히 정리한 자바 기본기 가이드.
타입추론, var
JDK 10부터 도입된 자바의 타입 추론(var) 문법 정리. 자바스크립트의 var와 무엇이 다른지, 언제 쓰면 좋고 언제 피해야 하는지 실용적 관점에서 설명합니다.
로그 한 줄 없이 서버가 멈췄다 - Virtual Thread와 커넥션 풀 Starvation
JDK 21 Virtual Thread 100개와 HikariCP 커넥션 10개의 충돌. 커넥션을 기다리던 가상 스레드가 캐리어 스레드를 붙잡는 Pinning이 겹쳐 로그 한 줄 없이 서버가 멈춘 원인 추적부터 해결까지. 실제 장애 기록.
우리 팀은 왜 JDK 21을 선택했나 - 작은 서비스의 관점
JDK 11→21 업그레이드 결정 과정. 스테이징 3개월 검증, Virtual Thread·Pattern Matching·Record 실용성 평 가. 소규모 B2B 서비스(TPS 10-20)의 실용적 버전 선택 기준.
실무에서 자주 쓰는 자바 디자인 패턴 - 언제 어떻게 쓸까?
if-else 분기가 늘어날 때 쓰는 Strategy·Factory·Template Method 패턴. 결제/알림 방식 추가 시 기존 코드 수정 없이 확장하는 실무 적용 사례와 선택 기준.