[Java] 런타임에 메서드를 전달한다는게 무슨 말일까?
모던 자바 인 액션 초반 부엔 일급 객체가 등장한 배경을 설명하면서 아래와 같은 구절이 나온다. 만약 런타임에 메서드를 전달할 수 있다면, 즉 메서드를 일급 시민으로 만들 수 있으면 프로그래밍에 유용하게 활용할 수 있다. (넹?) 문맥상, 일급 객체(시민)를 메서드의 인자로 할당할 수 있어 생기는 이점에 대해 설명하는 내용이지만, 런타임에 메서드를 전달한다는 말이 쉽게 와닿지 않는다. 런타임 메서드 전달이 무슨 의미일까? 우선 런타임은 문자 그대로 프로그램이 실행되는 시간을 의미하는데, 이미 애플리케이션이 실행된 시점에 메서드를 객체와 연동하여 전달하고 호출하는 기법을 의미한다. 프로그래밍의 람다 표현식이나 콜백 함수, 디자인 패턴에선 전략패턴 등 여러 방법으로 구현할 수 있다. 이러한 기법의 공통점은..
2023.07.17