Java
총 8편
실무에서 마주한 함수형 프로그래밍 - 명령형에서 선언적으로
Java 함수형 프로그래밍을 실무에 적용하는 방법을 정리했습니다. Stream, Optional, 람다를 단순히 쓰는 것을 넘어 코드 품질을 높이는 패턴과 함정을 다룹니다.
자바 메소드 병렬 호출
서론 다소 황당한 블로그 주제지만 실제로 궁금증이 생긴 뒤 이를 해결해나간 과정을 적어보고자 합니다. 회사에서 Spring Batch 코드를 수정할 일이 있어 보던 중, 문득 이런 생각이 들었습니다. 위의…
자바 프로세스 힙메모리 설정 이슈
서론 OOM Killer에 의해 자바 프로세스가 예기치 않게 다운되는 현상이 발생하였습니다. 메모리 바운더리 설정을 하지 않은 자바 프로세스가 리눅스 OOM Killer에 의해 다운되었다고 생각했으나, 분명…
인터페이스와 추상클래스 차이
서론 다른 사람들도 그런지 모르겠지만, 저는 항상 인터페이스와 추상클래스가 뭔지는 아는데 차이점을 명확하게 설명하기 난해한 적이 많았습니다. 워낙 인터넷에 추상클래스와 인터페이스의 차이점에 대해서 간략하게…
타입추론, var
서론 Jdk10이상 버전부터 자바에도 자바스크립트와 같은 var 를 이용한 타입추론이 가능해졌습니다. 평상시 개발할때 Jdk8 위주로 써오던 터라, 개인공부를 하던 중 타입추론이라는 개념이 자바에도 있다는 것을…
AI 시대에 TDD가 더 중요해진 이유 - Mock과 레이어드 아키텍처 관점에서
AI가 코드를 써주는 시대에도 TDD가 필요한가? AI 바이브 코딩의 한계와 테스트 없는 빠른 개발이 만들어내는 기술부채를 실제 경험을 바탕으로 이야기합니다.
우리 팀은 왜 JDK 21을 선택했나 - 작은 서비스의 관점
TL;DR 문제: JDK 11을 쓰고 있는데 17로 갈지 21로 갈지 결정 필요 (작은 규모 B2B 서비스, TPS 10-20) 원인: 대용량 서비스는 성능 중심 선택하면 되는데, 작은 서비스는 “우리에게…
실무에서 자주 쓰는 자바 디자인 패턴 - 언제 어떻게 쓸까?
TL;DR 문제: 결제/알림 방식마다 if-else 분기, 코드가 계속 길어지고 새 방식 추가할 때마다 수정 원인: “같은 일을 하지만 방법이 다른 것들”을 분기로 처리하면 OCP (개방-폐쇄 원칙) 위반…