가독성과 유연성을 개선하는 리펙터링 💡 코드 가독성 개선 코드 가독성이란, 추상적인 표현이므로 이를 정확하게 정의하긴 어렵습니다. 일반적으로 코드 가독성이 좋다는 것은 어떤 코드를 다른 사람이 봐도 쉽게 이해할 수 있음을 의미합니다. 즉 코드 가독성을 개선한다는 것은 우리가 구현한 코드를 다른 사람이 쉽게 이해하고 유지보수할 수 있도록 만드는 것을 의미합니다. 코드 가독성를 높이기 위해서는 코드의 문서화와 표준 코딩 규칙을 준수해야 합니다. 💡 익명 클래스를 람다로 리펙터링하기 함수형 인터페이스를 구현한 익명 클래스는 람다 표현식으로 리펙터링할 수 있습니다. 그렇다고 모든 익명 클래스를 람다 표현식으로 변환할 수 있는것은 아닙니다. 익명 클래스를 람다 표현식으로 변환할 수 없는 경우 1) 익명 클래스에서..
컬렉션 팩토리 자바 9에서는 작은 컬렉션 객체를 쉽게 만들 수 있는 팩토리 메서드를 제공하고 있습니다. 💡 리스트 팩토리 Arrays.asList(), List.of()는 고정 크기의 리스트를 만들기 때문에 요소를 추가 및 삭제하려 하면 UnsupportedOperationException이 발생합니다. Arrays.asList, List.of는 컬렉션이 의도치 않게 변하는 것을 막을 수 있습니다. 하지만 객체의 요소가 변하는 것은 막을 수 없습니다. // 기존 방식 List stringList = new ArrayList(); stringList.add("A"); // 새로운 방식 Arrays.asList List stringList1 = Arrays.asList("A", "B"); stringList..
스트림은 데이터 집합을 처리하는게 게으른 반복자라고 말하고 있습니다. 게으른 반복자라는 명칭이 붙은 이유는 최종 연산이 있기 전까지 수행하지 않기 때문에입니다. 중간 연산은 스트림 파이프라인을 구성하며, 스트림의 요소를 소비하지 않습니다. 반면 최종 연산은 스트림의 요소를 소비해서 최종 결과를 도출합니다. 스트림에서 다양한 누적 방식은 Collector 인터페이스에 정의되어 있습니다. 컬렉터란 무엇인가? Collector는 java.util.stream에 있는 인터페이스입니다. Collector 인터페이스 구현은 스트림의 요소를 어떤 방법으로 출력할지 지정합니다. 인수로 전달한 Collectors.toList()등은 Collector 인터페이스의 구현체일까요? 답은 아닙니다. 입니다. 가능한 이유는 Co..
스트림이란 무엇인가? 스트림은 자바 8 API에 새로 추가된 기능입니다. stream은 물류 창고와 비슷합니다. 물류 창고에서 물류를 포장하고(map), 지역별로 정리하고(filter), 배송합니다. 💡 자바 8 이전, 이후 비교 다음 예제는 저칼로리의 음식을 반환하고, 칼로리를 기준으로 정렬하는 예제입니다. 자바 8이전에는 "낮은_칼로리_음식_목록" 이라는 가비지 변수가 사용하여 데이터를 저장하고 저장한 데이터를 기준으로 정렬을 하고 있습니다. 하지만 자바 8 이후에서는 stream에서 내부 반복을 통해 처리할 수 있습니다. 또한 stream에서는 filter, sorted, map, collect와 같은 파이프라인을 연결해 가독성과 명확성을 유지할 수 있습니다. public class Main { p..
- Total
- Today
- Yesterday
- redis 대기열 구현
- 람다 표현식
- java userThread와 DaemonThread
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 레이어드 아키텍처란
- 공간 기반 아키텍처
- redis sorted set
- spring boot redisson destributed lock
- spring boot poi excel download
- microkernel architecture
- transactional outbox pattern
- space based architecture
- pipeline architecture
- @ControllerAdvice
- transactional outbox pattern spring boot
- spring boot redisson sorted set
- spring boot redisson 분산락 구현
- java ThreadLocal
- 자바 백엔드 개발자 추천 도서
- redis sorted set으로 대기열 구현
- spring boot excel download paging
- 서비스 기반 아키텍처
- polling publisher spring boot
- spring boot redis 대기열 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot excel download oom
- spring boot 엑셀 다운로드
- 트랜잭셔널 아웃박스 패턴 스프링부트
- service based architecture
- pipe and filter architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |