콜백이란?
프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.
(위키백과 참고)
자바에서 콜백
- 자바 언어에서 콜백 자바 언어에서 실행 가능한 코드를 인수로 넘기려면 객체가 필요하다.
- 자바8부터는 람다를 사용할 수 있다. 자바 8 이전에는 보통 하나의 메소드를 가진 인터페이스를 구현하고, 주로 익명 내부 클래스를 사용했다.
- 최근에는 주로 람다를 사용한다
템플릿 콜백 패턴
- 템플릿 콜백 패턴 스프링에서는 ContextV2 와 같은 방식의 전략 패턴을 템플릿 콜백 패턴이라 한다. 전략 패턴에서 Context 가 템플릿 역할을 하고, Strategy 부분이 콜백으로 넘어온다 생각하면 된다.
- 참고로 템플릿 콜백 패턴은 GOF 패턴은 아니고, 스프링 내부에서 이런 방식을 자주 사용하기 때문에, 스프링 안에서만 이렇게 부른다.
- 전략 패턴에서 템플릿과 콜백 부분이 강조된 패턴이라 생각하면 된다. 스프링에서는 JdbcTemplate , RestTemplate , TransactionTemplate , RedisTemplate 처럼 다양한 템플릿 콜백 패턴이 사용된다.
- 스프링에서 이름에 XxxTemplate 가 있다면 템플릿 콜백 패턴으로 만들어져 있다 생각하면 된다.
'프레임워크 > 스프링' 카테고리의 다른 글
[Spring]스프링 시큐리티 퍼옴 xml 사용안하는 버젼 (0) | 2022.11.13 |
---|---|
[Spring] 프록시, 프록시 패턴, 데코레이터 패턴 (0) | 2022.11.12 |
[Spring] 동시성 문제(쓰레드 로컬) (0) | 2022.11.05 |
[Spring] 로그 추적기 파라미터로 동기화 개발 (0) | 2022.11.01 |
[Spring] 로그 추적기 프로토타입 개발 (0) | 2022.10.31 |