함수형 인터페이스 추상 메소드가 하나만 있는 인터페이스 자바8에서부터 @FunctionalInterface Annotation을 지원. static과 default로 선언하고 구현한 함수는 '추상 메소드'가 아니므로 괜찮다. 함수형 프로그래밍을 하기 위해서는 해당 언어에서 함수(메소드)가 First Class Object여야 한다. 해당 함수는 Pure Function이어야 한다. 는 전제조건이 필요하고, 자바는 함수를 First Class Object로 취급하므로 프로그램 언어의 제약은 없다. cf. 함수형 인터페이스와 lambda는 자바에서 지원하는 문법일 뿐, 함수형 프로그래밍을 강제하는 게 아니다. First Class Object? 아래의 조건을 만족하는 객체를 First Class Object..