개발이슈/JAVA

Java 8의 등장으로 람다 표현식과 메서드 참조는 Java 프로그래밍에서 큰 변화를 가져왔습니다. 이 글에서는 이러한 기능을 활용해 회원 검색 기능을 어떻게 개선할 수 있는지 살펴보겠습니다. 기존 코드: Java 8 이전의 접근 방식 회원 정보를 검색하는 기능을 구현한다고 가정해 봅시다. Java 8 이전에는 다음과 같이 구현할 수 있습니다. public class MemberService { public List searchMembersByName(List members, String name) { List result = new ArrayList(); for (Member member : members) { if (member.getName().equals(name)) { result.add(mem..
@Getter @Setter @ToString @EqualsAndHashCode public class FinalConfirmListGroup { private Integer quarter; private Long amount; public FinalConfirmListGroup(Integer quarter, Long amount) { this.quarter = quarter; this.amount = amount(); } } OtherClass.java ...생략. //쿼터별로 합계를 구한다. collect.stream() .collect(groupingBy(BudgetAmountQuarterlySummary::getQuarter, summingLong(BudgetAmountQuarterlySummar..
Comparator reportListSort = Comparator .comparing(BudgetReportFetchResultDto::getBudgetCostType) .thenComparing(BudgetReportFetchResultDto::getDepartmentName, nullsLast(naturalOrder())) .thenComparing(BudgetReportFetchResultDto::getCenterName, nullsLast(naturalOrder())) .thenComparing(BudgetReportFetchResultDto::getOfficeCodeName, nullsLast(naturalOrder())) .thenComparing(BudgetReportFetchResult..
스프링의 DI가 클래스간의 관계에서 결합도를 낮추는데 있다면 AOP는 공통관심사의 분리에 있다.책에서는 횡단관심사(cross-cutting concerns) 의 분리로 나와있지만 한글말이 더 어려워 보인다.쉽게 말해 클래스들이 공통으로 갖는 기능이나 절차,서비스등을 한데 묶어 따로 빼내갰다는 취지이다.쉬운예로 로그인,트랜잭션,보안,캐싱같은 비즈니스 들이 있다. AOP의 장점1. 전체 코드 기반에 흩어져 있는 관심사항이 하나의 장소로 응집된다는 점2. 여타 서비스 모듈이 자신의 주요 관심사항(또는 핵심 기능)에 대한 코드만 포함하고 그 외의 관심사항은 모두 애스펙트로 옮겨지므로 코드가 깔끔해진다는 점. AOP용어1.어드바이스(advice)무엇에 대한 기능 정의와 언제할지 정의.before, after, a..
kalkin
'개발이슈/JAVA' 카테고리의 글 목록