개요 2장에서는 올바른 객체지향 개발에 대해서 알아보았고, 3장에서는 객체지향 설계의 핵심에 대해서 얘기하였다. 4장 부터는 객체지향 설계를 왜 해야하는지에 대한 관점에서부터 출발하여 객체지향 설계를 안했을 때의 단점을 하나 하나 살펴본다. 이번 4장에서는 데이터 중심의 관점으로 객체의 상태에 초점을 맞추는 데이터 중심의 설계를 살펴보면서 객체 지향적인 설계의 구조와의 차이점을 알아보고자 한다. 결론부터 말하자면, 데이터 중심의 관점은 객체의 상태에 초점을 맞추기 때문에 객체 자체를 독립된 데이터로 보고, 구현 자체가 객체의 상태에 종속되기 때문에 변경에 취약해진다. 설계의 품질을 판단하기 위한 척도 설계의 품질은 판단하기 위한 척도로 캡슐화, 응집도, 결합도를 이용하여 판단이 가능하다. 캡슐화 변경 가..
템플릿 메서드 패턴은 생각보다 우리 주변에서 굉장히 많이 사용되고 있습니다. 그 중에서 백엔드에서 스프링을 사용한다면 데이터베이스와 연동해서 어떠한 작업을 할 때 JdbcTemplate 라고 들어봤을 거에요. JdbcTemplate는 템플릿 메서드 패턴의 단점을 해결한 전략패턴과 스프링의 템플릿 메서드 콜백 패턴을 이용한 방식입니다. 템플릿 메서드 패턴이란 GOF에서 말하는 템플릿 메서드 패턴의 정의는 다음과 같습니다. 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 이전한다. 하위 클래스가 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의 할 수 있다. 어떤 얘기인지 잘 이해가 안될텐데 다음 예시 코드를 한 번 살펴봅시다. @Test void templateMethodV0() { lo..