내가 레거시를 낳았다…

현재 코드는 유지보수 관점을 떠나서, 네이밍, 가독성 측면에서도 너무 안좋은 코드임을 인지하고 있습니다.

제가 생각한 로직을 공유하고, 인지하고 있는 문제점, 그리고 윌리엄이 남겨주신 피드백의 대한 생각 및 공유로 작성해보겠습니다. 리팩터 후에 메모도 따로 남길게요!

💧 로직

Screen Shot 2022-08-01 at 14.33.32.png

우선 일일 상세내역을 조회하기 위해서

저희가 필요한 테이블은 expenditure와 income입니다.

public PageCustomImpl<FindDayAccountResponse> findDailyAccount(Long userId, PageCustomRequest pageRequest,
		LocalDate date) {

		List<LocalDate> dates = getPageDate(pageRequest, userId, date);

		List<FindDayAccountResponse> responses = new ArrayList<>();

		dates.iterator().forEachRemaining(
			d -> responses.add(new FindDayAccountResponse(d, getDayIncomeAmount(d), getDayExpenditureAmount(d),
				getDayDetails(userId, d)))
		);

		Collections.sort(responses,
			(o1, o2) -> o2.getRegisterDate().getDayOfMonth() - o1.getRegisterDate().getDayOfMonth());

		return new PageCustomImpl<>(pageRequest.getPage(), pageRequest, responses);
	}