HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
남득윤 학습 저장소
/
토비의 스프링 3.1 Vol.1 스프링의 이해와 원리
토비의 스프링 3.1 Vol.1 스프링의 이해와 원리
/
3️⃣
3장 - 템플릿
3️⃣

3장 - 템플릿

 
@참고)
  • 인프런 김영한 - 스프링-핵심-원리-고급편
 

Jdbc 조회 기능의 예회처리

public int getCount() throws SQLException { Connection c = null; PreparedStatement ps = null; ResultSet rs = n try{ c = dataSource.getConnection(); ps = c.prepareStatement("select count(*) from users"); rs = ps.executeQuery(); rs.next(); return rs.getInt(1); } catch(SQLException e){ throw e; } finally{ JdbcUtils.closeResultSet(rs); JdbcUtils.closeStatement(ps); JdbcUtils.closeConnection(c); } }
사용자 조회 쿼리 메서드 구현
위 메서드를 보기만 해도 숨이 턱턱 막힌다.
 
끔찍한 try catch 구문으로 감까져 있기 때문에 실제 쿼리를 날리는 부분과 jdbc 자원을 관리하는 부분을 메서드로만 분리하는것은 큰 의미가 없다.
 
디자인 패턴을 적용해 보면 어떨까?
 

템플릿 메소드 패턴의 적용

  • 템플릿 메소드 패턴은 상속을 통해 기능을 확장해서 사용하는 것!
  • 변하지 않는 부분은 슈퍼클래스에 두고
  • 변하는 부분은 추상 메서드로 정의해 서브클래스에서 재정의해 쓰도록 하는것!
📐
Template Method Pattern
 

전략 패턴의 적용

  • 전략패턴은 변하는 부분을 별도의 클래스로 두어 추상화된 인터페이스를 통해 컨텍스트에서 사용하도록 하는것
  • 컨텍스트는 구체 전략이 무엇인지 관심을 가지지 않는다.
Strategy Pattern
Strategy Pattern
 
 

템플릿 콜백 패턴

  • 전략 패턴의 기본 구조에 익명 내부 클래스를 활용한 방식
  • 이런 방식을 스프링 에서는 템플릿/콜백 패턴이라고 부른다.
  • 전략 패턴의 컨텍스트를 템플릿이라 부르고, 익명 내부 클래스로 만들어지는 오브젝트를 콜백이라고 부른다.
    • 최근에는 주로 람다로 이루어진다
  • 보통 템플릿 메서드에 인자로 넘겨서 사용