[Spring] 템플릿과 콜백
template and callback
[Spring] 템플릿과 콜백
프로그램에서 공통 흐름은 항상 동일하지만 일부 단계에서만 다른 코드를 실행해야 할 때가 있다. 매번 거의 똑같은 코드를 반복 작성하기보다 스켈레톤이 되는 흐름을 템플릿으로 정의하고 바뀌는 부분만 콜백으로 전달하면 시간을 절약할 수 있다.
🤔 템플릿과 콜백이란?
템플릿은 전체 흐름의 뼈대를 정의한 틀이다.
콜백은 템플릿에서 특정 시점에 호출할 코드 조각이다 (보통 함수 1-2개?).
템플릿이 공통 로직을 처리하고 콜백이 세부 로직을 수행하므로 코드가 깔끔해진다.
메소드 호출 주입
설정 파일을 수정하지 않고 메소드를 실행할 때 필요한 객체를 파라미터로 넘겨 주입한다. 빠르게 부분 교체가 필요할 때 유용하다.
Spring의 주요 템플릿
- JdbcTemplate
데이터베이스 연결, 쿼리 실행, 결과 매핑, 연결 해제 등 반복 작업을 대신 처리한다.
개발자는 SQL과 결과 처리 로직(RowMapper)만 구현하면 된다.
- RestTemplate
HTTP 요청을 간단한 메소드 호출로 처리한다.
GET 요청은
getForObject(), POST 요청은postForEntity()로 호출한다.
- TransactionTemplate
여러 데이터 조작 작업을 하나의 트랜잭션으로 묶어서 처리한다.
트랜잭션 경계 설정과 롤백/커밋을 자동으로 관리한다.
정리
공통 로직은 템플릿에 가변 로직은 콜백에 분리한다.
Spring은 JDBC, HTTP, 트랜잭션 등 자주 쓰는 템플릿을 제공하므로 사용하면 코드가 간단해진다.
템플릿 활용으로 유지보수와 확장성이 향상된다.
This post is licensed under CC BY 4.0 by the author.
