과제 제출 완료! 도전 과제 Lv.2까지 하고 내려고 했지만 시간 조절 실패로 도전 과제 Lv.1까지만 해서 냈다. 다음에는 일정을 더 타이트하게 잡고 시작하자.
함수를 잘 전달하려면 어떻게 해야할까?
함수형 프로그래밍에는 두 가지 방식이 있다.
int sum = 0;
for (int n : numbers) {
if (n % 2 == 0) {
sum += n * n;
}
}
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.map(n -> n * n)
.reduce(0, Integer::sum);
✔️ 순수 함수 (Pure Function)
✔️ 고차 함수 (Higher-Order Function)
람다와 스트림을 활용해 간결한 대화가 가능하다. 물론 가독성이 무조건 좋은 것은 아니며, 상황에 따라 달라질 수 있다. 또한 코드 중단이 불가하고 디버깅이 불편하다는 단점이 있다. 특히 for문과 비교했을 때 성능 차이가 발생하기 때문에 대용량 데이터를 처리하는 경우라면 for문을 사용하는 것이 나은 선택일 수 있다. 하지만 요즘 하드웨어가 많이 발전하기도 했고, 생산성에 집중하는 추세이다. 따라서 람다와 스트림은 대화 효율을 높일 수 있는 기법이다.
벌써 내일 스프링 입문이 시작된다. 미리 공부해놓고 싶었는데 그러지 못해서 조금 불안하다. 다음 주 설 연휴에 부족한 부분을 채워봐야겠다.