woowacourse-study / 2022-modern-java-in-action

우아한테크코스 4기 모던 자바 인 액션 스터디
10 stars 4 forks source link

동작 파라미터화로 얻을 수 있는 이점은 무엇일까? #6

Open jaejae-yoo opened 2 years ago

jaejae-yoo commented 2 years ago

문제

자바 8에서는 코드를 넘겨주는 일이 가능해졌다. (예를 들어, 실행될 메서드의 인수로 코드를 넘겨주는 경우) 자바 8에서 해당 개념이 추가된 이유와 중요성에 대해 알아보자.

선정 배경

1.2.3 [동작 파라미터화로 메서드에 코드전달하기, 1.3.2 [코드 넘겨주기]1.3.3 [메서드 전달에서 람다로] 예제를 통해, 간단하게나마 장점을 경험해 보고 이야기하면 좋을 것 같습니다!

관련 챕터

jaejae-yoo commented 2 years ago

동작 파라미터화는 한마디로 메서드를 다른 메서드의 인수로 넘겨주는 것을 의미합니다.

자바 8에서 동작 파라미터화는 왜 추가되었을까요?

상황을 하나 가정해 보겠습니다. Apple이라는 클래스가 있고, 해당 객체들을 가지고 있는 Apple 리스트가 있습니다. 이때, 사용자가 색깔이 녹색인 사과들을 알고 싶다고 요구했습니다. 그렇다면 조건문을 통해 원하는 사과들만 필터링할 수 있을 것입니다. 그런데, 이후에 요구사항에 변하였습니다. 무게가 150 그램 이상인 사과들을 요청하고 있습니다. 이런 상황에서 자바 8이전(동작 파라미터화가 나오기 전)에는 조건만 다른 코드를 복사 & 붙여넣기 해야 했습니다.

다행히 자바 8에서 코드를 넘겨줄 수 있게 되었기 때문에, 해당 문제를 해결할 수 있게 되었습니다. 즉, 동작 파라미터화를 통해 자주 바뀌는 요구사항에 효과적으로 대응할 수 있게 되었습니다.