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

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

함수형 인터페이스의 장점은 무엇일까? #25

Open jaejae-yoo opened 2 years ago

jaejae-yoo commented 2 years ago

문제

함수형 인터페이스의 특징과 어떠한 장점이 있는지 알아보자.

선정 배경

함수형 인터페이스를 사용함으로써 얻을 수 있는 이점이 무엇인지에 대한 설명이 부족한 것 같아 선정하였습니다.

관련 챕터

[3장] 람다 표현식

jaejae-yoo commented 2 years ago

함수형 인터페이스는 1개의 추상 메서드를 갖고 있는 인터페이스이며, Single Abstract Method(SAM)라고 불리기도 합니다. 여기서 추상 메서드가 하나라는 것은 default 메서드 또는 static 메서드는 여러 개가 존재해도 상관없다는 뜻입니다. 함수형 인터페이스는 @FunctionalInterface 어노테이션을 사용하는데, 이 어노테이션을 통해 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사를 하게 됩니다. 함수형 인터페이스를 직접 만들어서 사용할 수도 있지만, 이미 수많은 함수형 인터페이스가 제공되고 있기 때문에, 해당 기능을 제공하는 인터페이스를 찾아보는 것이 좋습니다.

이러한 특징을 가진 함수형 인터페이스는 일급 객체로 사용할 수 없는 자바 언어의 단점을 보완하기 위해 도입되었습니다. 이로 인해 자바는 코드가 간결해졌으며, 가독성이 좋아지게 되었습니다. 또한, 함수형 프로그래밍으로 구현하면 Side Effect를 제거할 수 있다는 장점도 존재합니다.