박싱된 기본 타입보다는 기본 타입을 사용하라 자바의 데이터 타입은 크게 두 가지로 나눌 수 있습니다. 바로 int, double, boolean과 같은 기본 타입과 String, List와 같은 참조 타입입니다. 그리고 기본 타입에는 래퍼 클래스가 있습니다. Primitive Type, Reference Type이란? Wrapper Class란? 💡기본 타입과 박싱된 타입의 차이점 1) 기본 타입은 값만 가지고 있지만, 박싱된 기본 타입은 식별성을 추가적으로 가지고 있습니다. 그렇기 때문에 Wrapper Class로 만들게 되면 같은 값임에도 동등성 비교에서는 다르다고 할 수 있습니다. 그 이유는 객체로 생성되다 보니 힙 영역에 참조값이 다르기 때문입니다. int a = 1; int b = 1; a =..
전통적인 for문보다는 for-each문을 사용하라 💡전통적인 for문 아래 for문은 전통적인 for문 사용법으로 while문보다는 지역변수 i의 유효범위를 제한하기는 좋습니다. 하지만 가장 좋은 방법은 아닙니다. 반복자(i.next())나 인덱스(i)는 모두 내가 원하는 요소의 자원을 사용하기 위한 도구인데 오류를 발생시킬 확률이 높습니다. 이러한 문제는 향상된 for문을 사용하면 해결할 수 있습니다. List number = Arrays.asList(1, 2, 3, 4, 5, 6); // case 1 for (Iterator i = number.iterator(); i.hasNext();) { Integer num = i.next(); System.out.println(num); } // case ..
지역변수의 범위를 최소화하라 지역변수의 유효범위를 최대한 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아집니다. 💡 가장 처음 쓰일때 선언합니다. 지역변수를 미리 선언하고 나중에 할당하면 코드가 지저분해지고 가독성이 떨어집니다. 또한 변수를 실제 사용하는 시점에서 타입과 초기값이 기억나지 않을 수 있습니다. 변수의 범위를 제대로 제한하지 않는다면 이미 사용한 뒤에도 GC가 수거하지 않고 힙 메모리에 여전히 남아있을 수 있습니다. 💡 모든 지역변수는 선언과 동시에 초기화합니다. 단 초기화에 필요한 정보가 충분하지 않다면 정보가 충분해질때까지 선언을 미뤄야 합니다. 하지만 try-catch 문에서는 예외입니다. 변수를 초기화하는 과정에서 Checked Exception이 발생할 가능성이 있다면..
옵셔널 반환은 신중히 하라 자바 8이전에는 메서드에서 반환할 수 있는 값이 없는 경우 두 가지를 취할 수 있었습니다. 하지만 각각의 단점이 존재합니다. 1. 예외를 던집니다. 단점 1 - 예외는 반드시 예외적인 상황에서만 사용해야 합니다. 단점 2 - 예외는 실행 스택을 추적을 캡처하기 때문에 비용이 비쌉니다. 2. 반환 타입이 객체인 경우 null 반환 단점 1 - 클라이언트 코드에서는 항상 null 체크 로직을 추가해야하며 그렇지 않은 경우 NPE가 발생합니다. 💡 Optional의 등장 Optional이란, 값이 있을 수도 있고 없을 수도 있는 객체입니다. Optional은 원소 하나를 가지는 불변 컬렉션입니다. 자바 8이전의 코드보다 null-safe한 로직을 처리할 수 있게끔 해줍니다. Opti..
- Total
- Today
- Yesterday
- spring boot redisson 분산락 구현
- pipeline architecture
- spring boot redisson sorted set
- space based architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis 대기열 구현
- spring boot redisson destributed lock
- redis sorted set
- pipe and filter architecture
- 자바 백엔드 개발자 추천 도서
- spring boot redis 대기열 구현
- spring boot excel download oom
- spring boot excel download paging
- 레이어드 아키텍처란
- spring boot 엑셀 다운로드
- java userThread와 DaemonThread
- redis sorted set으로 대기열 구현
- 공간 기반 아키텍처
- @ControllerAdvice
- java ThreadLocal
- service based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- polling publisher spring boot
- 서비스 기반 아키텍처
- microkernel architecture
- transactional outbox pattern spring boot
- 람다 표현식
- spring boot poi excel download
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- transactional outbox pattern
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |