null이 아닌, 빈 컬렉션이나 배열을 반환하라 클라이언트에서 컬렉션을 반환하는 메서드나, 배열을 반환하는 메서드를 호출했을 경우 만약 null을 반환한다면 클라이언트쪽에서 null체크를 감지하는 방어 코드를 항상 작성해주어야 합니다. 💡 예제 코드 아래 예제에서 getMembers 메서드는 컬렉션이 비어있는 경우 null을 반환하는 메서드입니다. 이 메서드가 어떤 문제를 발생시킬 수 있을까요? 답은 main 메서드에서 getMembers 메서드를 호출할 때 null 검사를 하는 방어 로직을 작성해야 합니다. 이처럼 방어 코드가 작성되지 않았을 경우 NPE가 발생하게 됩니다. public class Member { private static List members = new ArrayList(); pri..
가변인수는 신중히 사용하라 💡 가변인수란? 매개변수를 동적으로 받을 수 있는 방법이며, 자바 5부터 지원되기 시작했습니다. 매개변수에 ...을 사용하여 가변인수를 설정할 수 있고, 0개 이상의 인수를 받을 수 있습니다. 가변인수 메서드를 호출하면 가장 먼저 인수의 개수와 길이가 같은 배열이 만들어지고 생성된 배열에 인수들을 저장하여 메서드에 전달하며, 해당 메서드에서는 생성된 배열을 사용합니다. 이처럼 메서드를 호출할 때마다 새로운 배열을 생성해서 전달해주는데, 이 부분도 결국 비용이고 낭비일 수도 있습니다. public class Example { public static void main(String[] args) { varargs("H", "E", "L", "L", "O"); } public sta..
- Total
- Today
- Yesterday
- java userThread와 DaemonThread
- service based architecture
- spring boot redisson destributed lock
- space based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot 엑셀 다운로드
- redis sorted set
- pipeline architecture
- 자바 백엔드 개발자 추천 도서
- transactional outbox pattern spring boot
- spring boot poi excel download
- java ThreadLocal
- pipe and filter architecture
- 람다 표현식
- spring boot excel download oom
- spring boot excel download paging
- @ControllerAdvice
- microkernel architecture
- transactional outbox pattern
- spring boot redis 대기열 구현
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- redis sorted set으로 대기열 구현
- spring boot redisson 분산락 구현
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 공간 기반 아키텍처
- 서비스 기반 아키텍처
- polling publisher spring boot
- redis 대기열 구현
- spring boot redisson sorted set
- 레이어드 아키텍처란
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |